《机器学习基石》课程学习总结(三)
前面两篇文章要点回顾:
第一篇:机器学习的主要任务是用算法A,利用数据集D从假设集H中挑出一个函数g,使得E_in(g)最小。
第二篇:可以证明,当假设集H的d_vc是有限值,数据集D中样本数量N足够大时,找到的函数g的E_in和E_out很大概率上是近似相等的,因此,E_in很小时可以认为E_out也会很小。也就是说,机器确实从数据中学习到了“知识”。
这篇文章是对第8课内容的总结,比较短,但是很重要。
一、如果数据中有noise
在前面两篇文章中,讨论机器学习时默认有一个前提是成立的,那就是数据集D中的x由某个分布独立产生,y由f(x)产生。现实的数据集D往往不能满足这个条件,而是可能掺杂着noise,以发放银行信用卡为例,noise可能有三种形式:
- 某个样本点(x,y),x仍是由某个分布产生,但y却与f(x)相反,也就是说,按照函数f计算x,应当发放信用卡,现实却是没有发放信用卡(f(x)=1,y=0),反之同理。
- 同样的x,不一样的y,在数据集中,同样的x,有的对应的y为1,有的对应的y为0。
- x有误。样本点中的x不是与其他x产生自同一分布。即顾客个人信息有误。
经过前面各种证明,好不容易得出了机器可以学习的结论,noise的存在,让我们回到原点,我们不得不再次审视,面对有noise的数据集D,机器还可以学习吗?更具体一点,之前推导出的vc bound还有效吗?
所幸的是,尽管有noise的存在,vc bound还是有效的,也就是说,如果我们找出的函数小g,在有noise的数据集D上的E_in很小,那么,它的E_out也有很大的概率是很小的。这里的E_out使用的样本也是同样掺杂着noise的。
从条件概率来看noise,我们可以认为数据集D中的y不是来自f(x),而是来自一个条件分布P(y|x), 只不过P(y = f(x) | x) > P(y != f(x) | x)。此时,对于二元分类问题,我们将f(x)称作ideal mini-target function。因为f(x)就是我们希望尽可能接近的目标函数,使用它做分类预测时,所犯的分类错误率是最小的。
在这种情况下学习到的函数小g也具有了概率的含义,也就是说,给定x,y等于g(x)是一个大概率事件,y不等于g(x)是一个小概率事件。此时的g仍然是在尽可能模仿f,但由于数据中noise不可避免,使得我们的函数小g只能模仿在noise下表现出来的f。
一句话总结:noise可以看成是条件分布P(y|x)。在二元分类问题中,f(x)就是对于给定的x,概率最大的y值,它是机器学习的新目标函数,称为ideal mini-target function
二、错误衡量err
观察上面定义的ideal mini-target function,容易知道,只要我们能够学习到一个函数小g,使它尽可能接近f(x),那么,用小g做二元分类预测时,犯的错误将会最小。这里有一个很容易被我们忽视的问题,那就是衡量小g犯的错误的大小。
在二元分类问题中,衡量小g犯的错误很简单,假设对于x,对应的样本值为y,小g的预测值为g(x),若g(x)==y,则所犯错误为0,若g(x)!=y,则所犯错误为1。这样的错误衡量称为“0/1 error”。
实际上,对于不同的问题,还有许多的错误衡量err,比如在回归问题中常用的平方错误衡量:
err(g(x),y)=(g(x)-y)^2
那么,不同的错误衡量err对我们做机器学习有什么不同的影响呢?
一句话概括就是:P(y|x)和err联合在一起,会决定ideal mini-target function。
比如在二元分类问题中,假如P(y|x)已经确定,err采用“0/1 error” ,那么,ideal mini-target function 就是f(x),即对于给定的x,y为f(x)的概率最大。
在实际的机器学习问题中,P(y|x)是未知的。但是通过选用不同的err,可以隐含地决定ideal mini-target function,也就是我们的算法学习的目标函数。课程视频中有一个简单的小例子来说明这个问题,可用来帮助理解,这里不再赘述。
那么问题来了,如何确定哪个err比较好?
答案是:看你要解决的具体问题,这是评价err好坏的根本标准,但仅仅考虑这一点也是不行的,因为不同的err,在实现算法A时的难度也是不一样的。最后选择的err是在二者之间的一个trade-off。
三、加权分类
这部分内容比较简单,简述如下:
在样本集中,不同的样本(x_n,y_n)有不同的重要性,犯错的代价是不一样的,为了体现出这一点,可以采用“虚拟复制”技术,将其归约为普通的0/1 error问题。