台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

红色石头的个人网站:redstonewill.com

前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件:

  • 假设空间H的Size M是有限的,即当N足够大的时候,那么对于假设空间中任意一个假设g, EoutEin E o u t ≈ E i n
  • 利用算法A从假设空间H中,挑选一个g,使 Ein(g)0 E i n ( g ) ≈ 0 ,则 Eout0 E o u t ≈ 0

这两个条件,正好对应着test和trian两个过程。train的目的是使损失期望 Ein(g)0 E i n ( g ) ≈ 0 ;test的目的是使将算法用到新的样本时的损失期望也尽可能小,即 Eout0 E o u t ≈ 0

正因为如此,上次课引入了break point,并推导出只要break point存在,则M有上界,一定存在 EoutEin E o u t ≈ E i n

本次笔记主要介绍VC Dimension的概念。同时也是总结VC Dimension与 Ein(g)0 E i n ( g ) ≈ 0 Eout0 E o u t ≈ 0 ,Model Complexity Penalty(下面会讲到)的关系。

一、Definition of VC Dimension

首先,我们知道如果一个假设空间H有break point k,那么它的成长函数是有界的,它的上界称为Bound function。根据数学归纳法,Bound function也是有界的,且上界为 Nk1 N k − 1 。从下面的表格可以看出, N(k1) N ( k − 1 ) 比B(N,k)松弛很多。

这里写图片描述

则根据上一节课的推导,VC bound就可以转换为:

这里写图片描述

这样,不等式只与k和N相关了,一般情况下样本N足够大,所以我们只考虑k值。有如下结论:

  • 若假设空间H有break point k,且N足够大,则根据VC bound理论,算法有良好的泛化能力

  • 在假设空间中选择一个矩g,使 Ein0 E i n ≈ 0 ,则其在全集数据中的错误率会较低

这里写图片描述

下面介绍一个新的名词:VC Dimension。VC Dimension就是某假设集H能够shatter的最多inputs的个数,即最大完全正确的分类能力。(注意,只要存在一种分布的inputs能够正确分类也满足)。

shatter的英文意思是“粉碎”,也就是说对于inputs的所有情况都能列举出来。例如对N个输入,如果能够将 2N 2 N 种情况都列出来,则称该N个输入能够被假设集H shatter。

根据之前break point的定义:假设集不能被shatter任何分布类型的inputs的最少个数。则VC Dimension等于break point的个数减一。

这里写图片描述

现在,我们回顾一下之前介绍的四种例子,它们对应的VC Dimension是多少:

这里写图片描述

dvc d v c 代替k,那么VC bound的问题也就转换为与 dvc d v c 和N相关了。同时,如果一个假设集H的 dvc d v c 确定了,则就能满足机器能够学习的第一个条件 EoutEin E o u t ≈ E i n ,与算法、样本数据分布和目标函数都没有关系。

这里写图片描述

二、VC Dimension of Perceptrons

回顾一下我们之前介绍的2D下的PLA算法,已知Perceptrons的k=4,即 dvc=3 d v c = 3 。根据VC Bound理论,当N足够大的时候, Eout(g)Ein(g) E o u t ( g ) ≈ E i n ( g ) 。如果找到一个g,使 Ein(g)0 E i n ( g ) ≈ 0 ,那么就能证明PLA是可以学习的。

这里写图片描述

这是在2D情况下,那如果是多维的Perceptron,它对应的 dvc d v c 又等于多少呢?

已知在1D Perceptron, dvc=2 d v c = 2 ,在2D Perceptrons, dvc=3 d v c = 3 ,那么我们有如下假设: dvc=d+1 d v c = d + 1 ,其中d为维数。

要证明的话,只需分两步证明:

  • dvcd+1 d v c ≥ d + 1
  • dvcd+1 d v c ≤ d + 1

这里写图片描述

首先证明第一个不等式: dvcd+1 d v c ≥ d + 1

在d维里,我们只要找到某一类的d+1个inputs可以被shatter的话,那么必然得到 dvcd+1 d v c ≥ d + 1 。所以,我们有意构造一个d维的矩阵 X X 能够被shatter就行。X是d维的,有d+1个inputs,每个inputs加上第零个维度的常数项1,得到 X X 的矩阵:

这里写图片描述

矩阵中,每一行代表一个inputs,每个inputs是d+1维的,共有d+1个inputs。这里构造的X很明显是可逆的。shatter的本质是假设空间H对 X X 的所有情况的判断都是对的,即总能找到权重W,满足XW=y W=X1y W = X − 1 ∗ y 。由于这里我们构造的矩阵 X X 的逆矩阵存在,那么d维的所有inputs都能被shatter,也就证明了第一个不等式。

这里写图片描述

然后证明第二个不等式:dvcd+1

在d维里,如果对于任何的d+2个inputs,一定不能被shatter,则不等式成立。我们构造一个任意的矩阵 X X ,其包含d+2个inputs,该矩阵有d+1列,d+2行。这d+2个向量的某一列一定可以被另外d+1个向量线性表示,例如对于向量Xd+2,可表示为:

Xd+2=a1X1+a2X2++ad+1Xd+1 X d + 2 = a 1 ∗ X 1 + a 2 ∗ X 2 + ⋯ + a d + 1 ∗ X d + 1

其中,假设 a1>0 a 1 > 0 a2,,ad+1<0 a 2 , ⋯ , a d + 1 < 0 .

那么如果 X1 X 1 是正类, X2,,Xd+1 X 2 , ⋯ , X d + 1 均为负类,则存在 W W ,得到如下表达式:
Xd+2W= a1X1W a 1 ∗ X 1 ∗ W + a2X2W a 2 ∗ X 2 ∗ W + + ad+1Xd+1W a d + 1 ∗ X d + 1 ∗ W >0 > 0

因为其中蓝色项大于0,代表正类;红色项小于0,代表负类。所有对于这种情况, Xd+2 X d + 2 一定是正类,无法得到负类的情况。也就是说,d+2个inputs无法被shatter。证明完毕!

这里写图片描述

综上证明可得 dvc=d+1 d v c = d + 1

三、Physical Intuition VC Dimension

这里写图片描述

上节公式中 W W 又名features,即自由度。自由度是可以任意调节的,如同上图中的旋钮一样,可以调节。VC Dimension代表了假设空间的分类能力,即反映了H的自由度,产生dichotomy的数量,也就等于features的个数,但也不是绝对的。

这里写图片描述

例如,对2D Perceptrons,线性分类,dvc=3,则 W={w0,w1,w2} W = { w 0 , w 1 , w 2 } ,也就是说只要3个features就可以进行学习,自由度为3。

介绍到这,我们发现M与 dvc d v c 是成正比的,从而得到如下结论:

这里写图片描述

四、Interpreting VC Dimension

下面,我们将更深入地探讨VC Dimension的意义。首先,把VC Bound重新写到这里:

这里写图片描述

根据之前的泛化不等式,如果 |EinEout|>ϵ | E i n − E o u t | > ϵ ,即出现bad坏的情况的概率最大不超过 δ δ 。那么反过来,对于good好的情况发生的概率最小为 1δ 1 − δ ,则对上述不等式进行重新推导:

这里写图片描述

ϵ ϵ 表现了假设空间H的泛化能力, ϵ ϵ 越小,泛化能力越大。

这里写图片描述

至此,已经推导出泛化误差 Eout E o u t 的边界,因为我们更关心其上界( Eout E o u t 可能的最大值),即:

这里写图片描述

上述不等式的右边第二项称为模型复杂度,其模型复杂度与样本数量N、假设空间H( dvc d v c )、 ϵ ϵ 有关。 Eout E o u t Ein E i n 共同决定。下面绘出 Eout E o u t 、model complexity、 Ein E i n dvc d v c 变化的关系:

这里写图片描述

通过该图可以得出如下结论:

  • dvc d v c 越大, Ein E i n 越小, Ω Ω 越大(复杂)

  • dvc d v c 越小, Ein E i n 越大, Ω Ω 越小(简单)

  • 随着 dvc d v c 增大, Eout E o u t 会先减小再增大

所以,为了得到最小的 Eout E o u t ,不能一味地增大 dvc d v c 以减小 Ein E i n ,因为 Ein E i n 太小的时候,模型复杂度会增加,造成 Eout E o u t 变大。也就是说,选择合适的 dvc d v c ,选择的features个数要合适。

下面介绍一个概念:样本复杂度(Sample Complexity)。如果选定 dvc d v c ,样本数据D选择多少合适呢?通过下面一个例子可以帮助我们理解:

这里写图片描述

通过计算得到N=29300,刚好满足 δ=0.1 δ = 0.1 的条件。N大约是 dvc d v c 的10000倍。这个数值太大了,实际中往往不需要这么多的样本数量,大概只需要 dvc d v c 的10倍就够了。N的理论值之所以这么大是因为VC Bound 过于宽松了,我们得到的是一个比实际大得多的上界。

这里写图片描述

值得一提的是,VC Bound是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,令人欣慰的一点是,VC Bound基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习的可行性还是没有太大影响。

五、总结

本节课主要介绍了VC Dimension的概念就是最大的non-break point。然后,我们得到了Perceptrons在d维度下的VC Dimension是d+1。接着,我们在物理意义上,将 dvc d v c 与自由度联系起来。最终得出结论 dvc d v c 不能过大也不能过小。选取合适的值,才能让 Eout E o u t 足够小,使假设空间H具有良好的泛化能力。

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

关注公众号并输入关键字“jspdf”获得该笔记的pdf文件哦~

更多AI资源请关注公众号:红色石头的机器学习之路(ID:redstonewill)
这里写图片描述

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
sklearn是一个Python机器学习库,其中包含了许多用于机器学习和数据挖掘的工具和算法。吴恩达是一位著名的机器学习专家,他在机器学习领域有着丰富的经验和知识。他在一些课程中介绍了机器学习的基本概念和算法,并提到了一些使用sklearn库进行机器学习的实例和案例。他的课程包括《Introduction to machine learning with scikit-learn》、《林轩机器学习》和《李宏毅机器学习》等。 在这些课程中,吴恩达也提到了一些机器学习中常用的算法和方法,例如正规方程法。正规方程法是一种在数据量不大时比较适用的方法,它不需要进行归一化。在多变量线性回归中,正规方程法可以用来求解最优的模型参数。 如果你想使用sklearn来训练逻辑回归模型,你可以按照以下步骤进行操作: 1. 导入sklearn库以及需要的数据集: ```python import numpy as np from sklearn.linear_model import LogisticRegression X = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]]) y = np.array([0, 0, 0, 1, 1, 1]) ``` 2. 创建并拟合逻辑回归模型: ```python lr_model = LogisticRegression() lr_model.fit(X, y) ``` 这样你就可以使用sklearn库中的逻辑回归模型进行训练并得到模型参数。请注意,这只是一个简单的示例,实际应用中可能需要更多的数据预处理和模型调优步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [DJH-ML:机器学习记录,Apachecn,sklearn,基百科](https://download.csdn.net/download/weixin_42126677/18303041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [吴恩达机器学习课后作业ex1(python实现)](https://blog.csdn.net/weixin_55037029/article/details/127620509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【吴恩达机器学习】初识sklearn函数](https://blog.csdn.net/qq_21506765/article/details/126061868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红色石头Will

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值