背景:为什么需要次模函数
本文基于一篇关于机器学习中次模性的综述论文,旨在介绍 Submodular Functions(次模函数) 及其在人工智能领域的应用。
作者的核心观点非常明确:很多机器学习问题本质上是离散优化问题。
例如:
- 特征选择(Feature Selection):从原始特征中筛选最有信息量的子集,降低维度并提升模型性能。
- 数据集子集选择(Dataset Subset Selection):从大规模数据中选取代表性样本,降低成本同时保持性能。
- 主动学习(Active Learning):让模型主动选择最有价值的数据进行标注,以最小成本最大化效果。
- 聚类(Clustering):根据内在相似性将未标记数据分组。
- 数据摘要(Data Summarization):生成简洁的摘要来捕捉大型数据集的核心信息。
这些问题的共同点在于决策变量是 集合(Set) 而非连续变量。比如从 1000 个数据里选 100 个,组合数量是指数级的。因此我们需要一种结构,使得在指数空间的问题上仍能高效优化。这就是 Submodular Function 的意义。
可以做一个类比:
| 连续优化 | 离散优化 |
|---|---|
| Convex Function | Submodular Function |
简单来说,Submodular ≈ 离散版本的凸/凹结构,尽管其数学性质更为复杂。
核心定义:边际收益递减
论文给出的正式定义针对集合函数 $f: 2^V \rightarrow R$(输入为集合的子集,输出为数值)。若满足以下不等式对所有集合 $A, B$ 成立:
$$f(A) + f(B) \ge f(A \cup B) + f(A \cap B)$$
则称其为 Submodular Inequality(次模不等式)。
更直观的理解是:Submodularity = Diminishing Returns(边际收益递减)。
数学表达为:当 $A \subseteq B$ 时,
$$f(A \cup {e}) - f(A) \ge f(B \cup {e}) - f(B)$$
这意味着:同一个元素 $e$ 加入小集合的价值 ≥ 加入大集合的价值。

上图展示了曲线特点:一开始增长很快,后面越来越平。随着集合大小增加,$f(S)$ 的增长量逐渐变小,这正是边际收益递减的体现。

这张图更关键,它直接画出了每增加一个元素带来的新增价值 $f(S \cup {x}) - f(S)$。可以看到第一个元素增益最大,后面越来越小。这就是 Submodular 的本质图像。
直观理解:从生活到数学
'朋友的价值'
设 $f(S)$ 为朋友集合 $S$ 的价值。如果你已经有很多朋友,再增加一个朋友的价值会变小;如果朋友很少,新朋友的相对价值更大。


