Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js

计算学习原理


参考资料


Hoefiding不等式

N:样本量
v:样本均值
u:总体均值

P[vu


学习的联系:单个假设

符号 描述说明
H 该机器学习方法的假设空间
g 表示我们求解的用来预测的假设(g属于H)
f 理想的方案(可以是一个函数,也可以是一个分布)
D 样本集
N 样本量
A 算法
机器学习的过程就是:通过算法 A,在假设空间 H 中,根据样本集 D,选择最好的假设作为 g ,选择标准是 g 近似于 f
01

设定,h(x)是我们预估得到的某一个目标函数,h(x)是假设空间H中的一个假说。

  • {E_{out}}(h):(out-of-sample)总体损失期望
  • {E_{in}}(h):(in-of-sample)样本损失期望

基于hoeffding不等式,可得到下面公式,当样本量N足够大时,{E_{out}}(h){E_{in}}(h)将非常接近

P\left [ |{E_{out}}(h)-{E_{in}}(h)|\geqslant \varepsilon \right ]\leqslant e^{-2\varepsilon ^{2}N}


学习的联系:多个假设

注意在上面推导中,我们是针对某一个特定的解h(x)。在我们的假设空间H​中,往往有很多个假设函数(甚至于无穷多个)

让我们先来理解下单个假设h的上限,其公式中的2e^{-2\varepsilon ^{2}N}超出我们设定的 \varepsilon 的样本集就是坏样本)就是这个假设h遇上坏样本的上限(上限只是最坏的打算,大部分情况不会达到上限 )

01

当多个假设存在,我们希望任意选择一个h都是没问题的,此时就需要标注出所有的坏数据集情况(对任意一个h是坏的,我就标注它是坏的)。那么我们任意选择一个h遇上坏样本的上限:就是所有h遇上坏样本的上限的并集

01

任意选择一个h遇上坏样本的上限 如下图所示,但有个新问题,就是我们没法计算交集部分的大小(反正我不会)

注:灰色部分是每个h遇上坏样本的上限,而彩色部分是实际的概率

01

既然无法计算,但我们却知道每个单独的h遇上坏样本的上限:2e^{-2\varepsilon ^{2}N},既然这样,我们只能计算其上限的上限了,交集就只剩简单的加法了

01

好,公式推导如下

01

我们根据样本集D,随机从假设空间H(假设有M个假设)中选取一个h,都会满足下面的公式

P\left [ |{E_{out}}(h)-{E_{in}}(h)|\geqslant \varepsilon \right ]\leqslant Me^{-2\varepsilon ^{2}N}


学习的可行性:两个核心条件

P\left [ |{E_{out}}(h)-{E_{in}}(h)|\geqslant \varepsilon \right ]\leqslant Me^{-2\varepsilon ^{2}N}

根据上一节得到的公式,我们得到学习可行的两个条件:

  • 如果假设空间H的size M是有限的,当N足够大时,那么对假设空间中任意一个g{E_{out}}(h)约等于{E_{in}}(h).
  • 利用算法A从假设空间H中,挑选出一个g,使得{E_{in}}(h)接近于0,{E_{out}}(h)也接近为0.

上面这两个核心条件,也正好对应着test和train这两个过程。train过程希望损失期望(即{E_{in}}(h) )尽可能小;test过程希望在真实环境中的损失期望也尽可能小,即{E_{in}}(h)接近于{E_{out}}(h)


Growth Function

证明了学习的可行后(满足两个核心条件),新问题又来了:M的大小!

条件一 条件二
M太小 容易满足{E_{out}}(h)约等于{E_{in}}(h) 不容易找到一个{E_{in}}(h)足够小的
M太大 不同意满足 选择多了,容易找到{E_{in}}(h)足够小的

对于一个假设空间,M可能是无穷大的。要能够继续推导下去,那么有一个直观的思路,能否找到一个有限的因子 m_H 来替代不等式bound中的M.

P\left [ |{E_{out}}(h)-{E_{in}}(h)|\geqslant \varepsilon \right ]\leqslant 2 m_{H}e^{-2\varepsilon ^{2}N}

在第三节中,我们把每个假设的代价都做了独立分离,但实际它们都是有重叠的部分,其中有一些甚至是完全重叠,我们可以把几乎重叠的假设归为一类,但把所有假设归类后,我们就能得到有效的假设数量Effective Number of Hypotheses——m_H

01

01

将所有假设进行分类的依据又是什么呢?答案就在样本集D,例如在H有两个假设(M中的两个,废话),它们作用于样本集后,得出的结果一致,我们就可以将它们两归为一类;反过来讲,根据样本集D我们能得出这一类的假设(m_H的一个)。

所以,m_H是一个比M小很多的数,而且它会是个根据样本集D数量N多项式增长的数,它的增长公式称为**成长公式Growth Function*

P\left [ |{E_{out}}(h)-{E_{in}}(h)|\geqslant \varepsilon \right ]\leqslant 2\cdot {effective}(N) e^{-2\varepsilon ^{2}N}

成长公式的解释还没想好,就这样,next.

反正随着N增长,遇上坏样本的上限2\cdot {effective}(N) e^{-2\varepsilon ^{2}N}中一个是跟着多项式增长,一个跟着指数下降,指数必然打败多项式,所以总的来说随着N的增长,我们遇上坏样本的概率就会越来越低,{E_{out}}(h)也就会越接近{E_{in}}(h). That's good!


Break Point 和 Shatter

先切断一些,看看两个概念:shatter 和 break point.

Shatter的概念:当假设空间H作用于N个样本时,产生的dichotomies数量(二分类)等于这N个点总的组合数2N 时,就称:这N个样本被H给shatter.掉了。
要注意到 shatter 的原意是“打碎”,在此指“N个点的所有(碎片般的)可能情形都被H产生了”。所以{m_H}(N)=2N 的情形是即为“shatter”。

Break Point的概念:对于给定的成长函数{m_H}(N),从N=1出发,N慢慢变大,当增大到k时,出现{m_H}(N)<2k的情形,则我们说k是该成长函数的break poin.

N的数量大于k时,H都没有办法再shatter他们了。


VC Bound

有了Break Point的概念后,如果break point存在(有限的正整数),对与任意的样本集,我们都可以得到成长函数的上界,经过推导可得:

m_{H}(N)=\sum_{i=0}^{k-1}\binom{N}{i}

多项式增长! 多项式的最高幂次项为: N^{k–1} .
很开心,终于圆会Growth Function那一节的结论。

阶段性成果:能否用{m_H}(N)直接替换M?

既然得到了m(N)的多项式上界,我们希望对之前的不等式中M 进行替换,用m_H(N)来替换M。这样替换后,当break point存在时,N足够大时,该上界是有限的。

然而直接替换是存在问题的,主要问题是:E_{in}的可能取值是有限个的,但E_{out}的可能取值是无限的。可以通过将E_{out}替换为验证集(verification set) 的E_{in} 来解决这个问题。 下面是推导过程:

01


VC Dimension

最后,VC维!暂时不想写,再理理!

posted @   stream886  阅读(947)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示