次模函数(Submodular Function)核心概念与机器学习应用
这是一篇关于次模函数(Submodular functions)在机器学习与人工智能中应用的综述论文解读。
一、为什么需要次模函数?
很多机器学习问题本质上是离散优化问题。比如特征选择、数据集采样、主动学习等。决策变量是集合而非连续值。从 1000 个数据里选 100 个,组合数量是指数级的。我们需要一种结构,让指数空间的问题能高效优化。
这里有一个很好的类比:
| 连续优化 | 离散优化 |
|---|---|
| Convex Function | Submodular Function |
简单来说,Submodular ≈ 离散版本的凸/凹结构,虽然更复杂一些。
二、什么是 Submodular Function?
形式化定义针对集合函数 $f: 2^V \rightarrow \mathbb{R}$。输入是集合的子集,输出是数值。满足以下不等式:
$$f(A) + f(B) \ge f(A \cup B) + f(A \cap B)$$
对所有集合 $A, B$ 成立。这被称为次模不等式。
直觉理解:边际收益递减
论文强调的核心思想是:Submodularity = Diminishing Returns(边际收益递减)。
数学表达为:当 $A \subseteq B$ 时, $$f(A \cup {e}) - f(A) \ge f(B \cup {e}) - f(B)$$
意思是:同一个元素 $e$ 加入小集合的价值 $\ge$ 加入大集合的价值。
这就好比曲线增长:一开始很快,后面越来越平。每增加一个元素带来的'新增价值'都在下降。

这张图表示:
f(S) = 集合 S 的'价值' |S| = 集合大小(选了多少个元素)
曲线特点:一开始增长很快,后面越来越平。
| 集合大小 | f(S) | 增长 |
|---|---|---|
| 0 → 1 | 0 → 1 | +1 |
| 1 → 2 | 1 → 1.41 | +0.41 |
| 2 → 3 | 1.41 → 1.73 | +0.32 |
| ... | ... | 越来越小 |



