机器学习基石笔记

第一课:学习的问题

机器学习三个条件:有潜在的模式可以学习,潜在的模式无法用规则来表达出来,有数据
定义符号:

符号 含义
xX,yY\vec x \in \mathcal X, y \in \mathcal Y 输入和输出
f:XYf:\mathcal X \to \mathcal Y 未知的真实函数,需要学习的结果尽可能拟合这个函数
D={(x1,y1),(x2,y2),...,(xn,yn)}\mathcal D = \{(\vec x_1, y_1),(\vec x_2, y_2), ..., (\vec x_n,y_n)\} 数据集、训练集
g:XY\mathcal g: \mathcal X\to\mathcal Y 学习到的假设
H={hk}\mathcal H =\{h_k\} 所有假设的集合,gH\mathcal g\in \mathcal H

第二课

简单的学习算法:PLA
在有噪声的情况下:pochet algorithm

第三课

classification、regression、structured
supervised、un/semi-supervised、reinforcement
batch、online、active
concrete、raw、abstract

第四课

no free lunch定理:如果没有具体问题,就学不到东西

罐子中抽小球的问题:假设罐子中有无限的黄球和绿球,抽出来一批样本,黄色比例是ν\nu,罐子中黄球的真实比例是μ\mu,可不可以用ν\nu估计μ\mu
hoeffdings’s inequalityP[νμ>ϵ]2exp(2ϵ2N)\mathbb P[|\nu-\mu|>\epsilon]\le2exp(-2\epsilon^2N)
由hoeffdings不等式可以得到“ν=μ\nu=\mu”是probably approximately correct(PAC),当样本量N足够大的时候,可以认为μ=ν\mu=\nu

将罐子里抽小球的问题对应到机器学习问题:

μ\mu fixed hupothesis h(x)=?f(x)h(x) \overset{?}{=}f(x)
罐子中的小球 样本xX\vec x\in\mathcal X
黄球 KaTeX parse error: Undefined control sequence: \nef at position 5: h(x)\̲n̲e̲f̲(x)
绿球 h(x)=f(x)h(x)=f(x)
N个iid抽样 在数据集D={(xn,yn)}\mathcal D=\{(\vec x_n,y_n)\}上检查hh,满足iid

对于确定的h,可以概率上通过已知的Ein(h)=1Nn=1Nh(x)f(x)E_{in}(h)=\frac{1}{N}\sum_{n=1}^N\llbracket h(x)\ne f(x) \rrbracket去推断unknown Eout(h)=xPϵh(x)f(x)E_{out}(h)=\overset{\epsilon}{x\sim P}\llbracket h(x)\ne f(x)\rrbracketEinE_{in}就是抽样得到的小球,即训练样本,EoutE_{out}是罐子中的小球,即真实的ff

根据hoeffding不等式,可以得到P[EinEout>ϵ]2exp(2ϵ2N)\mathbb P[|E_{in}-E_{out}|>\epsilon]\le2exp(-2\epsilon^2N)
也就是把hoeffdin不等式里面ν\nuμ\mu替换掉了

再来看一个扔硬币的问题,如果让150个学生扔硬币,每个人扔5次,这150个人中,由一个得到5次头像的概率是1(3132)150>99%1-(\frac {31} {32})^{150}>99\%,但是一个硬币正反面的概率应该都是0.5的。在使用机器学习算法的时候,我们通常会选择在EinE_{in}上表现较好的模型。那么也就有很大可能会选到EinE_{in}EoutE_{out}差很远的hh。这里人头像对应的是在训练集上跑正确,五个正面就是在训练集上全对。这5个正面的数据就是一次不好的抽样。

对于一个假设hh,抽到不好的抽样的概率是P[\mathbb P[BAD D]=all possible DP(D)\mathcal D]=\sum_{all\ possible\ \mathcal D}\mathbb P(\mathcal D)\cdot\llbracketBAD D\mathcal D\rrbracket,对于一个假设hh,取到坏样本的概率可以用hoeffding不等式来算上界
机器学习基石笔记
对于M个假设,只要其中一个hh对应的D\mathcal D是不好的,这个D\mathcal D就认为是不好的,那么不小心得到这样的抽样的概率是PD[BAD D]=PD[BAD D for h1 OR BAD D for h2... OR BAD D for hM]2exp(2ϵ2N)+2exp(2ϵ2N)+...+2exp(2ϵ2N)=2Mexp(2ϵ2N)\mathbb P_{\mathcal D}[BAD\ \mathcal D]=\\ \mathbb P_{\mathcal D}[{\color{red} BAD}\ \mathcal D\ for\ h_1\ {\bf OR}\ {\color{red} BAD}\ \mathcal D\ for\ h_2...\ {\bf OR}\ {\color{red} BAD}\ \mathcal D\ for\ h_M]\\ \le2exp(-2\epsilon^2N)+2exp(-2\epsilon^2N)+...+2exp(-2\epsilon^2N)\\ =2Mexp(-2\epsilon^2N)
这个值也就是对于一个假设的集合,EinEoutE_{in}\ne E_{out}的上界。

但是这里就留了一个问题,这里将M当作了一个有限值,但是实际上,比如PLA算法,画线的数量可以是无限大的,那么对无限的M这个仍然可以bound住这个值吗?

第五课

这几节课主要就围绕第四课里面M无限的问题。

第四课得到了一个不等式:P[EinEout>ϵ]2Mexp(2ϵ2N)\mathbb P[|E_{in}-E_{out}|>\epsilon]\le2\cdot M\cdot exp(-2\epsilon^2N)
对于较小的M,可以得到训练集测试集结果很接近的概率很大,但是算法的选择就很少,很难将EinE_{in}减小,对于较大的M,可以降低EinE_{in},但是很难保证训练和测试的结果接近
对于一个固定的假设集合H\mathcal H,尝试使用mHm_{\mathcal H}来代替M,因此就得到了P[EinEout>ϵ]?2mHexp(2ϵ2N)\mathbb P[|E_{in}-E_{out}|>\epsilon]\overset{?}{\le}2\cdot m_{\mathcal H}\cdot exp(-2\epsilon^2N)

B\mathscr BAD evendBm:Ein(hm)Eout(hm)>ϵ\mathscr B_m:|E_{in}(h_m)-E_{out}(h_m)|>\epsilon
引入M的过程是将所有的H\mathcal H中取union,使用了直接加和,这里就假设了所有的B\mathscr B全部没有重叠
机器学习基石笔记
如果将类似的hypotheses聚合起来,也就是将重叠删掉,有没有可能得到稍微紧一些的upper bound?

在PLA算法中,一个平面上的直线数量是无限大的,但是对于一个样本点,这些线能够划分的结果只是让这个点等于⚪或者×。也就是hypotheses set大小只有2。在一个平面上的两个点,可能有4中情况,3个点有8中情况,到了4个点的时候,就只有14中情况而不是16种了。这里所有情况有多少种都代表了hypothesis set的大小。
effective(N)effective(N)代替上面的mHm_{\mathcal H},得到P[Ein(g)Eout(g)>ϵ]2effective(N)exp(2ϵ2N)\mathbb P[|E_{in}(g)-E_{out}(g)|>\epsilon]\le 2\cdot effective(N)\cdot exp(-2\epsilon^2N)
如果effective(N)<<2Neffective(N) << 2^N,在不等式的右边一个远小于指数的函数除以一个指数函数,就可以得到bound了。
先来看几个简单例子

  1. positive rays:这是一条射线,取一个阈值a,大于a的取正号,小于1的取负号。即h(x)=sign(xa)h(x)=sign(x-a)。这个例子中mH(N)=N+1m_{\mathcal H}(N)=N+1
  2. Positive intervals在一个区间内是正号,以外是负号。h(x)={+1iff x[l,r)1otherwiseh(x)=\begin{cases} +1& \text{iff}\ x\in [\mathscr l,r) \\ -1& \text{otherwise} \end{cases}。这里mH=12n2+12N+1m_{\mathcal H}=\frac 1 2 n^2 + \frac 12 N + 1
  3. convex sets:一种情况是N个点在一个圆上面,这时可以有mH(N)=2Nm_\mathcal H(N) =2^N

引入break point的概念,就是在某一个k的时候,保证mH(k)<2km_{\mathcal H}(k)<2^k最小的k
机器学习基石笔记

第六课

首先探讨break point的一些性质。如果break point为2时,一个点的时候应该有两种可能;两个点的时候应该有小于4种可能;在3个点时,应该保证任意两个点都不能有4种可能(因为如果有其中两个点有4种可能,那么去掉一个点,就一定有其中k>2了)

定义一个Bounding Function B(N,K)B(N,K),在break point为k时最大可能的mH(N)m_{\mathcal H}(N)
那么首先可以确定的是,k=1的时候,B(N,K)B(N,K)一定等于1,这是根据定义得到的。当N<kN<k时,一定有B(N,k)=2kB(N,k)=2^k,这也是根据定义得到的。在N=kN=k的时候,由于要保证mH(N)<2km_{\mathcal H}(N)<2^k,那么简单地-1即可,也就是从所有地组合中删除一种情况,就可以保证不回出现所有情况地组合了。剩下的内容就是填写当N>kN>k时候的表中的内容。

视频中推导的Bounding Function最终的表格是这样的:
机器学习基石笔记
这个bounding function也就是mH(N)m_{\mathcal H}(N)的上界

在使用hoefding不等式的时候,有P[hHs.t. Ein(h)Eout(h)>ϵ]2mH(N)exp(2ϵ2N)\mathbb P[\exists h \in \mathcal H s.t.\ |E_{in}(h)-E_{out}(h)|>\epsilon]\le 2 {\color{orange} m_{\mathcal H}(N)}\cdot exp(-2\epsilon^2N)
这里Eout(h)E_{out}(h)是一个样本无限的值,因为在前面的假设中罐子中球的数量是无限的。需要使用一个有限量EinE'_{in}代替。EinE'_{in}就相当于验证集。就是ppt 22页的step1。这里具体的理由没有看太懂。
因为在使用验证集的时候,默认验证集也有N个样本,就把hoefding不等式中的N变成了2N,就是step 2
step 3中代入hoeffding不等式中,就得到了P[h Hs.t. Ein(h)Eout(h)>ϵ]4mH(2N)exp(18ϵ2N)\mathbb P[\exists h\in \mathcal\ H s.t.\ |E_{in}(h)-E_{out}(h)|>\epsilon]\le4m_{\mathcal H}(2N)exp(-\frac 1 8 \epsilon^2N)
这个就是VC bound
(实际上这三步没怎么看懂)

第七课

在第六课中得到了一个不等式
mH(N)B(N,k)=i=0k1(Ni)Nk1m_{\mathcal H}(N)\le B(N,k)=\sum_{i=0}^{k-1}\tbinom{N}{i}\le N^{k-1}
hoeffding不等式中的mH(2N)m_{\mathcal H}(2N)就可以替换成(2N)k1(2N)^{k-1}
PD[Ein(g)Eout(g)>ϵ]PD[hH s.t. Ein(h)Eout(h)>ϵ]4mH(2N)exp(18ϵ2N)if k exists4(2N)k1exp(18ϵ2N)\mathbb P_{\mathcal D}[|E_{in}(g)-E_{out}(g)|>\epsilon]\\ \le \mathbb P_{\mathbb D}[\exists h\in \mathcal H\ s.t.\ |E_{in}(h)-E{out}(h)|>\epsilon]\\ \le4m_{\mathcal H}(2N)exp(-\frac 1 8\epsilon^2N)\\ \overset{\text{\color{orange}if k exists}}{\le}4(2N)^{k-1}exp(-\frac 1 8 \epsilon^2 N)
根据这个公式,可以得到如果

  1. mH(N)m_{\mathcal H}(N)有break point k,
  2. 并且N足够大保证EinE_{in}EoutE_{out}大致相等,
  3. 学习算法A\mathcal A能够让EinE_{in}足够小,

就有可能学到东西。

然后引入VC Dimension的概念。H\mathcal H的VC dimension用dvc(H)d_{vc}(\mathcal H)表示,代表使mH(N)=2Nm_{\mathcal H}(N)=2^N最大的N。
从定义来看,dvc=(minimum k)1d_{vc}= (minimum\ k) -1

之前的四种hypothesis set的VC dimension是下图
机器学习基石笔记
这个VC dimension和学习算法无关,和数据分布无关,和最终得不到的那个目标函数无关,因此可以当作generalization过程中的最宽泛的bound

在2D perceptrons中,dvc=3d_{vc}=3,那在更高维度的感知机里面VC dimension是多少呢?
一个猜想是dvc=?d+1d_{vc}\overset{?}{=}d+1,要证明这个东西,可以分成两步,先证明dvcd+1d_{vc}\ge d+1,再证明dvcd+1d_{vc}\le d+1

要证明dvcd+1d_{vc}\ge d+1只需要证明存在d+1个输入,能够找到2d+12^{d+1}种情况
机器学习基石笔记
要证明dvcd+1d_{vc}\le d+1,需要证明d+2个样本时所有的情况都不可以shatter
机器学习基石笔记
因为在构造的这个X里面,行数大于列数了,所以xd+2x_{d+2}一定可以由其他的向量线性表示,假设线性表示时每个向量前面乘的系数就是αi\alpha_i。然后等式两边同时乘以wTw^T,一样应该成立。等式的右边就一定大于0。所以在这种情况下,如果满足了前d+1个样本,最后一个样本一定没法是×,也就无法构成2d+22^{d+2}种可能性。

这里的d+1实际上就是perceptron的维度。一个perceptron的权重向量w有d+1个维度,也就可以理解成模型中可以调节的变量的数量。vc dimension大致就可以认为是hypothesis中的*度。大部分情况下,dvc#free parametersd_{vc}\approx \text{\#free parameters},但是并不总对。
这里就可以使用dvcd_{vc}代替第五节课中的M。
PD[Ein(g)Eout(g)>ϵ]4(2N)dvcexp(18ϵ2N)\mathbb P_{\mathcal D}[|E_{in}(g)-E_{out}(g)|>\epsilon]\le4(2N)^{d_{vc}}exp(-\frac 1 8 \epsilon^2 N)
把不等式右边设为δ\delta,可以得到8Nln(4(2N)dvcδ)=ϵ\sqrt{\frac 8 N ln(\frac {4(2N)^{d_{vc}}} \delta)}=\epsilon
Ein(g)ϵEout(g)Ein(g)+ϵE_{in}(g)-\epsilon\le E_{out}(g) \le E_{in}(g)+\epsilonϵ\epsilon也可以看作是对model complexity的惩罚,和N,H\mathcal H以及δ\delta有关
机器学习基石笔记
在理论上,大致需要10000倍的dvcd_{vc}才行,但是实际上会发现只需要10倍左右就够了。
造成这种差距的原因是在求VC Bound的时候采取了很多loosen的方法,首先hoeffding是针对任何分布,任何target function;使用成长函数mH(N)m_{\mathcal H}(N)代替H(x1,...,xN)|\mathcal H(x_1,...,x_N)|,确保任何数据都可以覆盖;使用多项式NdvcN^{d_{vc}}代替mH(N)m_{\mathcal H}(N)来做上限的上限的上限,来保证任何dvcd_{vc}的hypothesis都可以覆盖;使用union bound来保证算法A\mathcal A产生的任何选择都可以覆盖。

第八课

这一课主要是用来处理noise的情况。前面讨论中,全部都是线性可分且没有噪声。
之前有target function ff,由于引入了噪声,可以认为yi.i.dP(yx)y\overset {i.i.d}{\sim} P(y|\vec x)在这种情况下VC仍然是对的。

再后面讲了一些关于不同情况下对于错误处理的问题,比如CIA的门禁应当对false accept的惩罚大于false reject。
不同权重的惩罚可以通过将这种错误的样本重复很多次来达到目的。

总结

这门课主要介绍了机器学习的理论保证。
几个比较重要的符号、概念:mHm_{\mathcal H},break point,VC,hoeffding不等式,Bounding Function B(N,k)B(N,k)

第八课作业超详细解答:
https://www.dazhuanlan.com/2019/12/20/5dfc1dec84521/