林轩田-机器学习基石 课堂笔记(八) Noise and Error

1、Noise and Probabilistic Target 


经过之前一段时间的学习,机器学习流程图如上,之前的数据集没有noise存在,那么我们现在考虑样本数据中存在噪音与错误的情况。 


同样结合之前银行办理信用卡的例子,当银行错误的估计了是否为客户办理信用卡的情况时;当对应同一个客户产生了不同的输出时;当银行记录了错误的客户信息时等都会产生噪音。

再结合之前的罐子和弹珠的例子,我们知道VC bound的实质是罐子中橘色弹珠的数量(目标函数推导出的值与实际值不一样),这时罐中的弹珠颜色一定,即不存在噪音,我们称为deterministic marbles,那如果例子中存在噪音(样本的输出与目标函数的输出并不完全一致)要怎么办呢。

我们想象一种特别的弹珠,其颜色不固定,会不断的变化。此时罐中每时刻仍然会有一定数量比例的橘色弹珠。如果在某一瞬间我们抽出一堆弹珠,记录下那个瞬间弹珠颜色的比例,那么这个比例仍然能估计罐中弹珠颜色的比例。这种会变色的弹珠我们称为probabilistic(noisy) marbles,对应到机器学习上,就是可能会有noise的发生的样本。

此时y服从概率分布P(y|x),这一形式被称为目标分布(target distribution)而不再是目标函数,它告诉我们最好的选择是什么,同时在这个分布上存在多少的noise。这种方法称为生成方法。



例如在某个样本点,y=+1的概率为0.7,y=-1的概率为0.3,我们一定会选择错误率小的目标,即y=+1,那么y=-1的概率就是噪音。数学上可以证明如果数据集按照P(y|x)

概率分布且是iid的,那么以前证明机器可以学习的方法依然奏效,VC Dimension有限即可推断Ein和Eout是近似的。不存在噪音的数据集可看作特殊的目标分布,其概率仅为0和1,即y=f(x)和y!=f(x)。 



所以现在我们learning的有两个部分了,第一个部分是P(x),它告诉我们哪个点是重要的,如果某个点的P(x)很大,就代表它常常会被sample到,常在Ein中看到,此时在算Eout时它也会比较重要一点;另一个部分是P(y|x),我们的目标是找到最理想的(错误率最小)目标分布(mini-target)。至此总结一下我们的学习目标:在最常见的样本点上尽可能分类正确。 



现在我们可以在存在noise的情况下重新画出learning的流程图: 



2、Error Measure

我们前面的推导几乎都在证明g跟f到底一不一样,但是之前我们都是通过Eout来衡量误差,下面说明更一般的错误衡量有哪些方式。我们之前使用的g有以下三个特性: 



PS:分类错误又叫0/1错误。


之前我们都是考虑每个点上的对或错然后做一个加权平均,这种方式我们称为pointwise error,用err表示。


 

在未来的学习中我们主要会考虑这种pointwise的错误衡量方式,虽然有很多其他的错误衡量的方式但他们通常比较复杂,因此需要从pointwise的方面出发作简化。

我们现在想想,有哪些pointwise的方法呢?之前已经学习过一个0/1 error(f(x)与g(x)是否一样),通常用于分类;未来还会学习另一种错误衡量方法— —squared error(f(x)与g(x)差的平方,即表示误差的距离),通常用于回归。这是两个基本的错误衡量的方法,未来我们会学习更多的方法。 



mini-target与err有关,也与P(y|x)有关,举个例子: 



我们现在知道有了错误衡量,会影响到最好的f长什么样子,所以今天我们learning的流程图中不能只有我们不知道的p或f,实际上我们必须要告诉演算法我们要用什么样的错误衡量。

我们需要知道VC的整个推导,对很多的hypothesis set和很多的err都会work。例如今天我们不是做分类而是做回归分析,那么我们将VC的推导做一些定义上的修改(例如我们在实数输出上的VC Dimension怎么算),我们是可以得到几乎一样的VC bound。 




3、Algorithmic Error Measure

对于二元分类,其Error有两种:false reject(误将正类认为是负类)和false accept(误将负类认为是正类)。 



对于不同的机器学习问题,这两种错误的权重也不同。

例如对于超市给经常消费的会员折扣,如果出现false accept(给第一次来的用户折扣),超市只是少赚一点钱;如果出现了false reject(拒绝给常来的用户折扣),用户可能非常生气导致超市失去顾客。因此超市对于false reject的错误的权重应该比较高,相对来讲false accept的错误的权重就不那么高了。 



另外一个例子,如果CIA 的员工要查看某资料,如果出现false accept(给权限不够的员工查看的资格),那么可能会导致信息的泄露;如果出现了false reject(拒绝有资格的员工查看权限),员工最多只是抱怨一下。因此这种情况下false accept的错误的权重就更高一些了。 



错误是基于应用情况和用户依赖进行考虑的,所以在我们设计演算法的时候,就应该想办法把错误衡量的方式用进去。当然最好的方法是按照各种错误的具体损失情况来设计错误衡量,但是很多时候我们没有办法确定错误对应的损失具体的值是多少(比如询问CIA在false accept的情况下损失值到底是1000还是2000还是5000是不确定的)。所以在设计演算法时我们常常会用到替代的方法。目前主要有两种替代的原则(基于):


 

当加入err之后,机器学习的流程图如下: 



4、Weighted Classification

下面错误表示方式称为成本矩阵(cost matrix)或损失矩阵(loss matrix)或错误矩阵(error matrix)。



这种错误矩阵分别表示如下的Ein(h)和Eout(h),我们称为Weighted Classification。 



由于VC bound在各种算法中都可以起作用,因此只要使Ein尽可能小,就能保证Eout是小的。我们把权重考虑进来后,Ein表示如下: 



我们怎样让Ein越小越好呢?

如果数据是线性可分的情况,在PLA算法中我们只要不停运行下去,就能找到最小的Ein。

如果数据是线性不可分的情况,对于pocket算法,当初我们的设想是如果我们新找到更好的w比口袋里的好,那么我就把口袋里的w换掉。pocket算法可以让0/1情况下的Ein尽可能小,但是对于加权情况下是是否能使Ein尽可能小却没有被证明。

一种想法是将加权情况下的Ein转化成与0/1情况下的Ein等价的问题。对于CIA那个例子,-1情况下权值为1000,那么我们在xi=-1时,将资料复制1000倍,再将错误矩阵表示为不含加权情况的错误矩阵。这种错误矩阵与0/1情况下的pocket算法的错误矩阵一致,唯一的区别就是当某个样本出错时,会复制出1000倍的损失,后面的步骤与传统的pocket算法一致,这样就可以设计出一个新的pocket算法来适应加权情况。 



当然我们不会真的将数据复制1000倍,实际上我们常采用“virtual copying”的方式。但是在这种情况下,算法搜寻过程中碰到-1的数据样本的概率也增大了1000倍,因此我们要保证抽查-1错误的概率比是抽查+1错误的1000倍。

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值