1,机器什么时候可以学习
2,为什么机器可以学习
3,机器怎么学习
4,机器怎么样才能学得更好
用机器学习的方法去解决问题时,本质是解决以下两个子问题:
1,确保我们通过某个算法A寻找到的输入和输出的关系g,在已有的样本训练集上的误差Ein和g在输入整体分布的误差Eout是相近的,g在训练集的表现可以代表它在训练集之外的表现。
2,在1的前提下,想办法找到一个g,让Ein=y-g(x)尽可能小
问题2会在后续的学习中解决。课堂笔记2中解决了一部分问题1,即如果假设空间够小,样本量够大,根据hoeffding不等式可以保证Ein和Eout很接近这件事是probably approximately correct的。但太小的样本空间对机器学习意义不大,因为这很难保证Ein是很小的,也就是机器没有学到数据的模式,根据x不能准确地预测y。很多时候假设空间是无线大的(比如课堂笔记1中的PLA,其实可以有无数条线)。
根据hoeffding不等式:
M是假设空间中假设的数量。M无穷大的时候,这个式子不能保证Ein和Eout很接近。但如果可以想办法把M替换掉,变成一个有限大的数,那么就又可以通过增加样本量,使得不等式左边趋近于0,从而保证Ein约等于Eout了。
1,为什么可以换?M是假设空间的大小,可以有无限多个假设,但假设存在的目的是为了解决问题:根据X得到Y。我们可以给假设分类,对相同的X,如果Y=h1(X)=h2(X),那对于我们的问题而言,这两个假设可以看成一类(同一种)假设。只要问题只有有限类(可能是无限多)个假设,对我们的问题,这个假设空间的假设数量其实是有限多个的。
所以我们想把hoeffding换成这样:
mH是和样本空间有关的有限值。
2,怎么换?这是一个需要更加详细讨论的问题。之后的几次笔记都将记录替换M的过程
以二分类问题为例,先引入一些概念:
1,Dichotomies:我们有N笔输入X1 ... XN,假设空间H的假设h将这些输入映射为0,1. ,即使有无限多个假设h,对于这个特定的问题和这些特定数量N的输入,至多只有2^N多种假设(因为对于每个点Xi,可以将其分为0或1,2种可能。那么对于N个点,就是N个2相乘),记H(X1 ... XN) = all dichotomies implemented by H on X1...XN
2,Growth Function:|H(X1 ... XN)|, 即有多少类假设(dichotomy的数量)。为了不让这个数值被特定数据X1 ... XN影响,取max(H(X1 ... XN))。即在样本量为N时,取任意数据点,最大的假设种类数和N的关系就是growth function。对于一个二分类问题,Growth Function的上限为2^N
值得注意的是,2^N是二分类假设空间的上限,并不是每种假设空间的growth function都那么大。
比如假设空间H1:X在一个一维数轴上,对某个阈值a,大于a的点都是1,小于a的都是0. 那么N个点最多只有N+1种假设
当然,也有可能对于某种假设空间,当样本大小为N时,存在某种数据样本,使得H有2^N种假设。例如X是二维平面上的点,假设空间是凸集合(convex set):在一个凸的区域内的X的映射结果是1,否则是0。那么就可以找到某种X1...XN,使得假设空间有2^N种假设(下图):
对于这种情况,称作这N个输入可以被假设空间H打散(shattered)。mH=2^N就是存在N个输入,可以被shattered
如果用mH替换了M,我们希望mH越小越好。有的mH是多项式(如N+1),有的是指数形式(如2^N)。多项式是我们想要的结果,因为随着N的增大,hoeffding可以保证等式右边接近0
3,Break Point:不同的H能shatter的样本量是不同的。如果有一个最小的样本量N,假设空间H不能shatter它,则这个样本量N叫做break point
比如对于笔记1种提到的PLA假设,样本量N=4时,存在以下情形的输出永远不可能出现,Break Point=4:
圈代表1,叉代表0
当Break Point=N时,所有大于N的样本,H也不能Shatter(可用反证法证明)
Break Point存在的意义就是,当样本量大于N时,我们可以想办法用多项式作为mH的上界,而非2^N。这对于缩小hoeffding的上界,从而保证Ein和Eout接近是更有帮助的
在有了Break Point的概念以后,需要解决以下问题:
Growth Function和Beak Point的关系是怎样的?我们要找到方法,通过Break Point来约束Growth Function的上界,使其接近多项式。
如何利用Hoeffding不等式+growth functiont约束来保证Ein和Eout非常接近。即完成我们想要的替换:
Growth Function和Beak Point的关系是怎样的:成长函数的上界函数
如果某个growth function mH(N)的break point=k, 记B(N,k)=max(mH(N)),为bounding function。目标是上界函数B(N,K)<=Polynomial(N)
1,若N<k,B(N,K)=2^N
2,若N=k,B(N,K)=2^N-1
3,若N>k,需要证明
可以用数学归纳法证明,B(N,k)<=B(N-1,k)+B(N-1,k-1). 根据这个递归式,可以证明B(N,k)的上界是一个多项式,最高项为N^(k-1)
如何利用Hoeffding不等式+growth function约束来保证Ein和Eout非常接近(课件截图):
VC Bound:
所以,如果可以知道某个假设集合H的break point是k,由于mH是多项式且最高项为k-1次方,可以用VC Bound确保Ein和Eout是接近的