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

Stable Diffusion 秋叶大神2025最新整合一键安装包

Stable Diffusion 秋叶大神2025最新整合一键安装包

这段时间我在折腾 Stable Diffusion,期间试过很多安装方式。有手动安装的,也有别人做好的整合包。手动安装的方式对环境要求高,步骤也多,系统要装 Python,要装依赖,还要配好运行库,哪一步出错都要重新查资料,挺消耗时间。后来了解到秋叶大神做的整合一键安装包,这个版本省掉了很多折腾,对新手比较友好。 我自己把安装流程整理了一遍,又结合网上的信息,把一些需要注意的地方写下来,希望能帮到想尝试 Stable Diffusion 的人。 这里完整下载链接 秋叶整合包是什么 这个整合包属于别人已经帮你配好的版本,里面把 Stable Diffusion WebUI、模型管理、插件、运行环境都准备好了。下载之后按照提示解压,点一下启动脚本就能跑起来,不需要另外去折腾环境。 整合包里放的 WebUI 是常见的 AUTOMATIC1111 版本,所以大部分教程都能直接用。适合想直接出图、想先体验一下模型效果的人。 系统环境方面 我现在用的是 Windows 电脑,所以下面写的内容主要基于

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

文章目录 * 前言 * 步骤 * 最重要的一步 前言 事实上,Github Copilot马上就要开源了,我原本的认证过期了。但是在我体验了众多的代码补全工具实在是太难用了之后,我觉得一天也等不了了,就去再一次认证了学生认证。 这次严格了很多,要求巨无敌多,这里写一下新认证要干的事情。 一口气认证了八次的含金量谁懂,把要踩的坑全踩完了。。 步骤 (如果你是第一次认证还要额外添加一下自己的学校邮箱,这里我就略过不提了) 在所有的步骤之前,最好确保你的本人就在学校或者在学校附近。当你出现了报错You appear not to be near any campus location for the school you have selected.时,会非常难通过。 而其他的报错可以按我下文这种方式通过。 (对于部分学校,比如华科大)双重认证Two-factor authentication要打开:跳转这个网站https://github.com/settings/security,然后点下一步开启认证,

Copilot登录总失败?这7种情况你必须马上检查

第一章:Copilot登录失败的常见现象与影响 GitHub Copilot 作为广受欢迎的AI编程助手,在实际使用过程中,部分开发者频繁遭遇登录失败的问题。这一问题不仅影响编码效率,还可能导致开发流程中断,尤其在团队协作或紧急修复场景下尤为显著。 典型登录失败现象 * 输入凭据后提示“Authentication failed”但账号密码正确 * VS Code 中 Copilot 图标持续显示加载状态,无法完成初始化 * 浏览器重定向至 GitHub 授权页面时卡顿或返回空白页 * 终端输出错误日志:Copilot service is unreachable 对开发工作流的影响 影响维度具体表现编码效率失去代码补全与建议功能,手动编写耗时增加调试体验无法快速生成测试用例或错误解释团队协同新成员因无法启用 Copilot 导致上手速度下降 基础诊断命令 在 VS Code 终端中执行以下命令可获取当前认证状态: # 查看 Copilot 扩展日志 code --log debug # 检查已安装扩展及版本 code --list-extensions

千米无人机维修服务商

千米无人机维修服务商

引言 随着无人机技术的迅猛发展,其在航拍、植保、安防巡检等领域的应用越来越广泛。然而,随之而来的维修问题也日益凸显。如何快速、高效地解决无人机故障,成为用户最为关注的问题之一。千米快修东北无人机维修基地应运而生,凭借其专业技术和优质服务,为用户提供了一站式的无人机维修解决方案。 行业现状与痛点分析 维修难、配件缺、服务慢 当前,无人机维修市场存在诸多痛点。首先,许多维修门店技术水平参差不齐,无法精准判断和修复飞控、云台、图传等核心部件的故障,导致设备反复维修仍不能正常使用。其次,原厂售后流程繁琐、周期漫长,用户往往需要等待数天甚至数周才能完成维修,严重影响了作业效率。此外,市场上正品配件稀缺,价格混乱,用户难以找到可靠且性价比高的维修服务。 用户需求 用户最核心的需求是快速修好、一次修好、放心修好。然而,现实中多数维修机构无法满足这些需求,导致用户对无人机维修服务的满意度普遍较低。 千米快修东北无人机维修基地的优势 配件优势 千米快修东北无人机维修基地依托全国连锁供应链与标准化服务体系,建立了东北区域无人机核心备件前置仓,覆盖大疆等主流品牌云台、飞控、电池