Submodular function次模函数 概念——AI学习

Submodular function次模函数 概念——AI学习

论文名称:Submodularity In Machine Learning and Artificial Intelligence


一、综述论文

这篇文章是一篇 综述论文(survey)

核心目标是:

介绍 Submodular functions(次模函数) 以及它们在 机器学习与人工智能中的应用

作者想说明一个非常重要的观点:

很多机器学习问题其实是“离散优化问题”。

例如:

  • Feature Selection:属于数据预处理问题,旨在从原始特征中筛选出最相关、最有信息量的子集,以降低维度、提升模型性能与可解释性。
  • Dataset Subset Selection:属于数据采样或核心集选择问题,旨在从大规模数据中选取一个具有代表性的子集,以降低计算和存储成本,同时保持模型性能。
  • Active Learning:属于机器学习训练策略问题,通过让模型主动选择最有价值的数据进行标注,以最少的标注成本最大化模型性能。
  • Clustering:属于无监督学习问题,旨在根据数据的内在相似性,将未标记的数据自动分组为不同的类别或簇。
  • Data summarization:属于信息压缩与呈现问题,旨在通过生成简洁的摘要(如关键点、代表性样本或可视化)来捕捉大型数据集或复杂数据的核心信息。

这些问题的共同特点:决策变量是 集合 (set) 不是连续变量。

例如:从1000个数据里选100个,从100个特征里选20个,组合数量是指数级的。

因此:

需要一种结构,使得 指数空间的问题仍然能高效优化

这就是 Submodular Function 的意义。

作者提出一个很重要的类比:

连续优化离散优化
convex functionsubmodular function

可以简单理解为:Submodular ≈ 离散版本的 convex/concave 结构 但其实更复杂。


二、什么是 Submodular Function(核心)

论文给出的正式定义是:

对于集合函数:

f:2^V \rightarrow R

即:

输入:集合的子集

输出:一个数值

满足:

f(A)+f(B) \ge f(A\cup B)+f(A\cap B)

对所有集合 A,B。

这叫:

Submodular inequality


更直觉的理解

论文强调:

Submodularity = Diminishing Returns

即:

边际收益递减

数学表达:

f(A \cup \{e\}) - f(A) \ge f(B \cup \{e\}) - f(B)

当:

A \subseteq B

意思是:

同一个元素 e 加入 小集合 的价值 ≥ 加入 大集合 的价值

这就是 submodular 的核心思想


可视化解释

这张图表示:

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

...

...

越来越小

这正是:边际收益递减(Diminishing Returns)


这张图更关键,它直接画的是:每增加一个元素,带来的“新增价值”

也就是:

f(S ∪ {x}) − f(S)

可以看到:

  • 第一个元素 → 增益最大(≈1)
  • 后面越来越小(0.4 → 0.3 → 0.2 → ...)

这张图就是 Submodular 的本质图像


三、论文给出的例子

“朋友的价值”

设:f(S) = 朋友集合 S 的价值

如果你已经有很多朋友:再增加一个朋友的价值会==》 变小。如果你朋友很少那么==》新朋友价值 更大

例如:

第 1个朋友:价值 10

第10个朋友:价值 1

所以:

f({}) → f({A}) 增量很大

f({A,B,C,D}) → f({A,B,C,D,E}) 增量较小

这就是传说中的:边际收益递减


四、论文里的复杂例子(咖啡、牛奶、茶)

论文用一个比较复杂的例子说明:

物品之间可能存在三种关系:

1 Submodular(替代关系)

例如: coffee + tea 两者功能类似。

所以:

f(coffee, tea) < f(coffee) + f(tea)

因为它们是 substitutes替代品


2 Supermodular(互补关系)

例如:coffee + milk 组合更好。

所以:

f(coffee, milk) > f(coffee) + f(milk)

叫:complementarity互补者


3 Modular(独立)

例如:lemon + milk 互不影响

f(A,B) = f(A) + f(B)


所以:

类型数学
Submodulardiminishing returns
Supermodularincreasing returns
Modularlinear

五、信息论里的经典例子:Entropy

论文给了一个非常重要的结论:

Entropy 是 submodular 函数

设:f(S) = H(X_S)

即:某个变量集合的 entropy。

满足:

f(A)+f(B) \ge f(A\cup B)+f(A\cap B)

原因:互信息非负。

这在信息论里叫:Shannon inequality香农不等式


六、常见 Submodular Function 类型

论文列了一些机器学习里常见的:


1 concave over cardinality

例如:

f(S)=\sqrt{|S|}

因为:

\sqrt{x}

是 concave。

所以:边际增长递减。


2 Feature-based function

形式:

f(S)=\sum_i g_i(\sum_{j\in S}w_{ij})

其中:

g_i

是 concave

常见于:

NLP

document summarization


3 Facility Location(重要)

定义:

f(S)=\sum_{i\in V}\max_{j\in S} sim(i,j)

含义:每个点 i,找 S 中最像的点

用于:

  • data summarization
  • clustering
  • representative subset

4 Set Cover

f(S)=|\cup_{i\in S}C_i|

含义:S 覆盖的元素数量。

常见:

document summarization

sensor placement


七、Submodular 为什么重要

因为它有 优化保证

对于:

Submodular Maximization子模最大化

例如:

max f(S)

s.t. |S| ≤ k

使用:

Greedy algorithm贪心

可以保证:

$$(1 - 1/e) \approx 0.63$$

近似最优。

这是一个 非常强的理论保证


八、机器学习中的应用

论文后半部分主要讲应用:

1 文本摘要

从 100 句新闻选 5 句。目标是覆盖尽量多信息,避免重复

这种目标函数很适合:submodular


2 数据集压缩

例如:100万训练样本,选1万代表样本

目标:覆盖整个数据分布


3 特征选择

例如:1000 个特征,选50 个

目标:信息最多,冗余最少


4 Active Learning

有 100 万未标注数据。

选择:最有信息的 1000 个去标注


九、总结

Submodular function 的本质:

一种具有“边际收益递减”性质的集合函数,使得许多指数级的离散优化问题可以高效近似求解。

它在机器学习中的作用类似于:convex function 在连续优化中的作用

拙见:

很多 AI 问题都是“从一堆东西里选一个子集”

例如:选数据、选句子、选特征、选代表点

如果目标函数是submodular、那么 用 greedy 算法就能得到接近最优的解

所以:submodular = 让组合优化变得可解


(WenJGo^_^全文完)

Read more

【2025年度创作】分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件

【2025年度创作】分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件

一年一度的ZEEKLOG博客之星活动现已开启!时光飞逝,2025的代码即将合上尾页,指针向前,2026的技术新篇静待启封。这一年,我依然坚持在ZEEKLOG平台持续创作,也见证了AI与智能体领域的持续升温,特别是MCP(模型上下文协议)技术带来的崭新突破。 值此ZEEKLOG平台年度技术盛会之际,博主将撰写一篇技术实战总结型文章,系统分享如何利用AI高效开发MCP服务插件,涵盖从本地调试、线上部署到智能体使用的全流程。 目录 * MCP简介 * 安装插件 * MCP开发 * 创建表 * 提示词 * 启动服务 * 本地部署MCP * 调用测试 * 线上部署 * 上传源码 * 安装Python * 安装依赖 * 启动服务 * nginx反向代理 * 本地测试 * 上架MCP * 使用MCP * MCP和API区别 * 总结 MCP简介 MCP(Model Context Protocol,模型上下文协议) 是专为大语言模型(LLM)应用设计的开放协议,旨在实现 LLM 与外部工具和数据源的无

AI 编程工具 Claude Code 实战

AI 编程工具 Claude Code 实战

随着本人应用 AI 编程进行深度应用后,发现 Cursor 处理复杂问题时候还是很欠缺,同时由于 Cursor 更改了 Pro 用户的使用规则,导致每个月中开始就无法使用 Cursor 中的一些高级模型。 今天就来介绍一下最近特别火而且本人也在应用的 AI 编程工具 Claude Code。 Claude Code Claude Code 是由 Anthropic 开发的可在本地运行的自动化 AI 编程命令行工具,他基于 Claude 4 系列模型获得强大的能力. 能理解您的代码库,执行命令,自动化管理Git仓库,调用您的 Model Context Protocol (MCP)。 能按照您的想法创造、修改项目,出色地完成撰写文档,转写语言等您平时十分繁重的工作。 它通过命令行界面(CLI)运行,允许开发者通过自然语言命令处理编码任务、Git 工作流和调试。

PyTorch生成式人工智能(12)——StyleGAN详解与实现

PyTorch生成式人工智能(12)——StyleGAN详解与实现

PyTorch生成式人工智能(12)——StyleGAN详解与实现 * 0. 前言 * 1. StyleGAN * 1.1 模型介绍 * 1.2 模型策略分析 * 2. 实现 StyleGAN * 2.1 生成图像 * 2.2 风格迁移 * 小结 * 系列链接 0. 前言 StyleGAN (Style-Generative Adversarial Networks) 是生成对抗网络 (Generative Adversarial Networks, GAN) 的变体,是一种无监督学习模型,用于生成逼真且高分辨率的图像。与传统 GAN 不同,StyleGAN 引入了两个关键概念:样式迁移和逐渐增强。样式迁移允许生成网络控制图像的风格和外观,从而生成具有不同特征的图像。逐渐增强则是指生成网络逐层地生成图像,先生成粗略的细节,然后逐渐添加更多细节和结构,从而获得更加逼真的图像。