MachineLearning(Hsuan-Tien Lin)第四讲

本文探讨了机器学习在面对不同判断标准时可能遇到的困境,并通过概率的方法解释了如何用样本估计总体,以及在机器学习中用样本估计总体与学习的关系。文章指出,当样本数量足够大时,可以通过样本的表现推断总体,这种方法在机器学习中是'probably approximately correct'。然而,文章强调在选择模型时要避免过拟合,通过多个抽样和综合评估来选取表现良好的假设。
摘要由CSDN通过智能技术生成

第四讲

Learning 是否可行?

1、机器学习不可行?

做个有意思的题。先给你一些资料,如图所示,上面三幅图是y=-1,下面三幅图是y=+1。让你学习。

 

现在,再给你一幅图(下图),问你它的y是多少?

 

你说是-1。然后,我们公布答案说你错了。因为根据是否对称来判断。上三幅图不对称是-1,下三幅对称是+1,所以新给的图是对称的,是+1。

你说是-1。我们又公布答案说你错了。因为根据左上角第一个格子是否是黑色来判断。上三幅左上角第一个格子都是黑色的,是-1,下面三幅都不是黑色的,是+1。新给的图左上角第一个格子是黑色的,是+1。

所以,判断的标准不一样,好像什么答案都可以说是错的。

 

再看一个例子:

输入是一个三维的向量,且每个维度只能是0或1。比如x1={0,0,0},x2={0,0,1}。输出是o(+1)或x(-1)。


每一个输出都有2种结果+1和-1。

这样一共有种假设。组成了假设的集合h。

现在,给了5笔资料

 

问你,这个f(xn)是h中的哪一个?

我们很容易这样想,找出满足上面5笔资料输入后,输出和yn一样的h。

经过一番努力,我们发现这样的h居然有8个

 

为什么会有8个?因为,对于上面没有给出的3种输入,每一种输入都有两种结果。

 


对于输入{1,0,1} f1、f2、f3和f4输出+1;而f5、f6、f7和f8都输出-1

对于输入{1,1,0} f1、f2、f5和f6输出+1;而f3、f4、f7和f8都输出-1.

对于输入{1,1,1} f1、f3、f5和f7输出+1;而f2、f4、f6和f8都输出-1.

我们在做预测的时候,不是对已经给的数据D做预测,而是对没有的数据。比如选了f1为g时,当新的数据是{1,1,1}时,我们就会说输出是o(+1)。但是,标准答案告诉我们,错了,是x(-1),因为真正的g是f2”。

这种感觉就像在做智力题,怎么都是错的,搞得好像真的低智商^_^。

 

2、用概率的方法推论

上面的问题让我们觉得机器学习好像不可行,那有没有办法让它可行呢?


看这个图,假设它是一个装了很多很多很多弹珠的罐子,现在问你,绿色弹珠的比例是多少?

你会怎么做呢?

你不会把一罐子的弹珠都看一遍,分别数出两种颜色的弹珠的个数吧( 

你大概会这样做:


你会随机抓一把出来,比如10个,然后数一下,这10个中,橘色和绿色的比例,上图所示,绿色7个,橘色3个,你就说“我估计,这个罐子的弹珠,橘色:绿色=3:7。即橘色占了30%,绿色的有70%”

这个方法,如果是学过概率统计的童鞋,就会明白就是样本估计总体,你抓出来的弹珠就是样本(sample)。

由上可知,“绿色弹珠占70%”这个概率是我们的样本算出来的,我们给它一个名字ν。对于总体中绿色弹珠的概率,我们称为μ。

用样本估计总体就是说μ≈ν。

那你就会问,一定能有μ≈ν?如果我就抓了一个弹珠,是绿色的,你就说罐子里全是绿色的弹珠?

当然不是。


如上图,抓的弹珠的数量要够大,比如N,如果抓了一罐子弹珠,那么N就是总体。

即使N很大,也不是随随便便就说μ≈ν。也要计算一下二者的差距。用:

 

上式称为Hoeffding’s  Inequality。这个式子是说,如果N很大,ν和μ很接近,它们之间差的比ε多(ε是个很小的值)的概率是很小的。当N很大的时候,不等式右边是一个很小的数,而此时,ν和μ差的比ε还要多的概率是很小的。
所以,如果我们抽样比较大,抽样的估计和实际的估计其实差不太多。我们想要的最好的结果是μ=ν,我们抽样有70%的绿色弹珠,罐子就有70%绿色弹珠。这句话大概是对的,就是说对的概率很大,差不多是对的,就是两个概率很接近,比如罐子里其实是71%或者69%的绿色弹珠。所以,由样本(N够大时)来推总体是:probably approximately correct(大概差不多是对的!)

那么,这个有什么用?我们本来要做的是求罐子里绿色弹珠的概率μ,但是觉得很难。于是我们说了一堆之后,得出了一个结论,μ=ν这个大概可能是对的。所以,我们就根本不用去求μ了,直接求ν,然后就说是要求的μ。

3、用样本估计总体和学习的关系

在机器学习中,我们不知道的是f。现在,我们有一个假设的集合h={h1,h2,h3,h4……},不知道哪个h是f。那怎么办?

我们可以这样做:


我们把所有的数据都放到h中算一遍,和f一模一样的h,就是f。

但是,这里有两个问题,f我们不知道,所有的数据就像是上面所说的罐子,是个数量很大的数据集。

所以,我们通过计算h犯错的多少来判断和f的接近程度。我们用抽样的方法来解决数据很多的问题。

我们抽了10个样本(这里举例子,就假装N=10就是N很大了)


我们看到,抽样出来后,h1中有3个分类不对了,就是说h1对x2,x7,x8这三笔资料犯错了。错误率是30%。

这和罐子抽样是不是很像。

所以,我们抽样的资料够多,就是D够大,要判断一个h和f接不接近,只要看h在D中的表现。

这样我们的模型,就变成了:


这里,p on X 这里的p是概率。这个概率用在两个地方,第一个就是取样产生了样本D。即


第二个用途就是,判断h和f接不接近,看h犯错率。


Eout就是h和f在整个罐子里接不接近。相当于μ,我们不知道。

我们知道,在抽样的D上,h和f接不接近,即Ein我们知道。

所以,我们用知道的来推论不知道的,即用Ein来推论Eout。

同样的,我们用Hoeffding’s  Inequality


对于机器学习中的概率,我们也同样不需要知道Eout,只要我们的N够大,用一个很小的ε,就可以来算,就可以说Ein就是Eout。这句话也是大概可能是对的。


Ein是在抽样的时候h的犯错率,如果犯错很小,就说h和f很接近。如果N够大,ε又很小,我们就说这样的Ein可以用,它就是Eout。Eout是总体数据中h和f的接近程度。因为Ein很小,Eout≈Ein,所以Eout也很小,这样在总体中h和f也是很接近的。

但是,到这里,还不是学习,因为真正的机器学习的选择是要帮我们选出g 。上面都是在说,如果选出来的h是和f接近的,那它会这样这样……,但是怎么从h中选出最后的假设呢?

 

4、真正的学习


假设,我们从假设集合中也选了10个h,接着分别在样本D上看表现。但是,现在出现的问题就是,像h10,它在样本D上的表现太好了,全都是对的。那要不要选这个h?

这样看,比如一个班150个同学,全班每个人都拿一枚硬币,丢5次。其中,至少有一个人5次全都是正面的概率是。居然是大于99%。我们能说硬币只有正面吗?

这时很容易产生偏见,对于硬币,我们有直观认识,知道硬币有正反面,但是,对于h,我们看到在D上全对的h,很容易觉得它更好。

Hoeffding’s Inequality告诉我们,Ein和Eout差很远,就是不好的抽样。所以,如果只有一个h,我们就可以算一个Ein。但是如果有选择,有可能就选到那个全对的h,让我们觉得Ein=0,但是Eout却不是0,这样Ein和Eout差很远,坏事就发生了“BAD”。

所以,为了防止这种,一次抽样D在某一个h上全对这件事,我们多给几个抽样,综合起来判断一个h好不好。

 

如上图,我们对于一个h,用上千个D来看它的表现,综合起来看概率。

如果一个h在所有的抽样D上的综合表现是好的,我们才说这个h是好的(就是上面写红色BAD的格子要很少)

 

BAD,就是Ein和Eout差很多。

所以,我们的h有很多,D也要有很多,才能比较公平的选出好的h。算法既要能在假设集合中自由的选出h,又要防止出现“全都是正面”的情况。

这里“全都是正面”更确切的说是Ein和Eout差很远,即坏事发生BAD。

 

那么,全都是正面发生的概率是多少呢?如果概率很大,我们就说根本不用做机器学习了,因为不管h选什么总是会有全都是正面的情况。所以,为了让机器学习可以安心的进行,我们要算一下“全都是正面的概率”。

如上图,我们只要一个h在一个D中表现了BAD,就说这个D是不好的,然后把不好的D加起来,看看对于所有的h而言,全都是正面(坏事发生)的概率是多少。

 

一个h只要在一个D上发生BAD,我们可以算一个Hoeffding’s Inequality,每一行就是一个h会发生BAD的总概率(就是它在所有D上发生了BAD的概率和)。我们要求总体BAD,就把所有h的BAD概率加起来。

注意两个所有,一个h在所有D上BAD和,再把所有h的BAD加起来。

所以,如果最后求出的概率很小,我们就可以说,可以放心了吧,A选到好h的概率很大。如果M是有限的,抽样的资料N够大,总体BAD发生的概率很小很小,我们总是能基本上做机器学习。

如果M无限呢?请听下回分解。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值