Machine Learning Foundations 8: Noise and Error

Machine Learning Foundations 8: Noise and Error


 
 

如何在有noise的情况衡量错误。

 
 

内容:

再有杂讯的情况下,我们使用probabilistic函数来做描述(就是y由直接公式得到变成了几率分布)。

错误的衡量方式方式是和使用场景强相关的,我们考虑plausible/friendly的方式来挑选。

最后说 weighted classification 的理论。

 
 


 
 

到上一节,我们已经讲完了机器学习最重要的工具Dvc。

如果我们的H集合的Dvc是有限的,我们有足够多的资料,且Ein又很低,那么我们就大概学到了东西。

 
 

这里我们将说的是在原来Dvc推倒的时候设立了一些假设,我们怎么样放宽一些假设让Dvc可以应用到更广泛的机器学习问题中去。

 
 


 
 

以前讲到:

我们有一个 distribuction,由此得到 examples 的 x,未来做测试的时候我们采用的也是同样的 distribuction。

我们有一个 target function,这个target function会产生一堆的 examples 的 y。

我们需要通过这些带有 (x,y) 的资料,在一堆 h集合里面找出好的 h (Ein 很小,且 Ein 等于 Eout)

 
 

在这基础之上我们来考虑noise,会不会对之前的整个理论推到产生影响呢?

 
 


 
 

资料存在 noise 是非常常见的。

举例:银行发信用卡,可能因为用户资料的的填写错误,收集的资料不准确;对于同一个用户申请两次,也有可能因为人为的原因一个发,一个不发。这些都会导致模型产生noise。

 
 


 
 

我们需要看一下 VC bound 在有 noise 的时候还会不会work。

 
 

来考虑 VC bound的核心,我们是从下面的例子引出来的:如果我们要估计罐子里面的弹珠数量,我们可以从里面抓一把,然后通过分析抓出来的来估计罐子里面的结果。

每一颗单株看作是x;从某一个几率p抽出来,我们来看这里通过example得出的预测和目标函数是否一致,不一样就切成橘色,一样就是绿色。

 
 

noise表示的是今天我们存在有些x不满足条件 fx = hx。

因此我们可以引入一种特别的弹珠:颜色会不断的发生变化。但是如果我们从整个罐子来看,橘色和绿色弹珠的比例还是基本保证一个恒定的状态。

我们怎么知道这个比例:做抽样的动作,抽出来记录抽出的瞬间的弹珠颜色。通过记录这个瞬间抽出来的弹珠的颜色比例来估计这个瞬间罐子里面的弹珠颜色比例。

这里就有杂讯的发生:原来是绿色瞬间是橘色,原来是橘色瞬间是绿色。

 
 

既然我们还是同样使用抽样的方式来做估计,那么原来的整个分析过程还是统统可以采用的,VC bound还是work的。区别在于在这里我们不仅仅x是取样来的,y也同样是取样来的。

 
 


 
 

P(y|x) 叫做 target distribuction.也就是说这里不再说目标函数,而是一个目标分布。也就是说我们原来对于 x来说通过函数获得y,这里我们对于每一个x都有一个理想的对应y,但是因为存在的是分布,也就使的这个x可能获得分布中任意的y。

最理想的是y,不理想的是杂讯。

 
 

譬如上面的例子 0.7 表示的是想要的分布情况,但是y落入0.3的时候这个 (x,y)点 就是杂讯。

 
 

另外这个目标分布可以看作是 二分的:


y与目标函数结论一致的时候就是有效数据点,不等的时候就是杂讯。

 
 

所以学习的目标是:

P(x) 告诉你的是哪些点是重要的,值大代表经常会被sample到,Ein里面经常遇到,计算权重大,因此要预测的接近mini target(P(y|x))。

 
 


 
 

因此更新一下learning图:左上角从目标函数替换成了target distribuction,产生的y用来training,我们用同样的distribuction来产生测试数据,来看学到的和产生的一样不一样。

 
 

Pocket 算法: 让Ein 越小越好,就是让Eout越小越好,这个结论还是成立的。

 
 


 
 

小练习:选正确的

 
 


 
 

讲了noise的来历,来看看整个learning里面的最后一步:g约等于f。

 
 

之前g的特性:

  1. Out of sample;这里衡量的数据是这个model来说还没有使用过的数据
  2. pointwise:我们可以在每一个x单独衡量
  3. classification:我们衡量的是对或者不对(0/1分类)

 
 


 
 

很多时候我们所碰到的错误衡量的方式都是pointwise的方式:就是每个点独立的可以衡量。这里用 err 来表示pointwise error measure。

 
 

所以我们的 Ein 就可以标示为上面所示;Eout 也就可以标示为上面的结果。我们衡量的是 g 和 y 差别到底是多少。

 
 

这种错误的衡量方式是最常用的。

 
 


 
 

有哪些pointwaise的方式:

 
 

  1. 已经涉及的:0/1 看对还是错,通常用在classification
  2. Squred error:你今天的预测和目标y的差距的平方,同样用在regression

 
 

未来会涉及到更多的错误衡量方式,我们对错误的衡量会影响到学习。

 
 


 
 

举例子来说明错误的衡量方式会影响到学习过程。

 
 

上面有三个可能的输出,我们分别采用上面讲的两种错误衡量方式,来计算各个可能的y的错误率。左边的例子错误率最小的是2,右边却是1.9。

 
 


 
 

再来看学习的flow里面,我们必须要告诉演算法的是错误衡量方式。

 
 

这里还要说的是:VC的理论和精神,对于不同的h和err来说,都会work。

VC bound 理论是非常非常的通用的。

 
 


 
 

练习

 
 


 
 

这里呢我们采用一个例子来和大家说怎样去选择错误衡量方式。

 
 

要做一个指纹辨识的问题:正负1表示是不是你的指纹。

 
 

分类器可能会犯两种不同的错误:

  1. False accept:你应该不可以用,但是电脑判断你可以用。
  2. False reject:你应该可以用,但是电脑判断你不可以用。

 
 

如果只采用第一种简单的 0/1 判断错误的方式,这两种错误是一样的。

 
 


 
 

但是实际应用场景,例如超市会员的识别,如果一个顾客是会员但是识别不出来导致没有折扣,这是一个很大的损失;另外如果一个顾客不是会员但是给了折扣,这是一个不大的损失。

 
 

因此还需要存在一个成本表来衡量错误的严重性,付出的代价是多少。

 
 


 
 

再举个例子如果是 CIA 判断某个员工能不能进入机密系统,那么他的成本表会完全不一样。

 
 


 
 

所以错误衡量方式是基于应用场景的

 
 

在我们设计演算法的时候我们要考虑错误衡量方式,但是这个不容易做。譬如CIA那个1000倍是如何衡量出来的,很难有理论依据,也没有人会告诉你到底应该是多少。

 
 

因此选择的原则可以是:

 
 

plausible(考虑原因来说服自己):

  1. 找一些有意义的衡量方式,譬如01对错判断
  2. 相信noise是高斯分布,采用平方衡量法

 
 

friendly(为了比较好优化算法的错误衡量方式):

  1. 算解容易
  2. 凸的

 
 


 
 

修正一下图,原来的err变成了 err上划线,表示的是经过人为考虑依据使用场景优化的err。

 
 


 
 

小测验

 
 


 
 

不同的错误有不同的重要性,因此带来了带权重的classification。

引入 Cost Matrix/Error Matrix/Loss Matrix(成本矩阵)

 
 

这里使用上面CIA的例子,列出其Ein/Eout,原来的错误计算公式+权重。

 
 


 
 

我们怎么求解这样的问题。VC任然可以用,也就是说我们要考虑的是Ein要最小,因此我们来看Ein。

 
 

这个时候来看:

  1. PLA:不用管权重直接跑也就有结果
  2. pocket:如果今天找到的比我口袋里的还好,就换掉口袋里的。这里比好坏使用的是加权错误。

    那是不是这样做就好了?

    pocket原来理论上的保证是可以让Ein(01)最好,今天换成带权重的还能保证吗?

 
 


 
 

这里讲我们怎么样修改pocket演算法,来得到和原来的pocket一样有类似的保证。

 
 

要让Win(w)和Ein(01)扯上关系:

我们可以考虑的是一个一个考虑资料,如果是正的我们不做修正,如果资料是负的我们复制1000倍,这样我们就得到了新的数据资料库。

那么对于这个新的数据库,如果其中一个负的点犯错误,就会发生1000个点犯错误的情况,但对于每个资料来说就不存在权重的问题,也就是等于原来的权重的表示。任何一个负的资料都会是这样。

就是说 新的资料的Ein(01) = 旧的资料的Ein(w),也就是说带权重的pocket演算法也是可以保证的。

 
 


 
 

因此你就可以得到 weighted pocket 算法。这里比起pocket算法来说需要做的修改是:

  1. 使用 Ein(w) 来做错误检查
  2. 拜访权重高的点的几率要增加,对应资料复制n次

 
 

Systematic route: 系统的将方法做延伸扩展。

 
 


 
 

小测验

 
 


 
 

总结:

再有杂讯的情况下,我们使用probabilistic函数来做描述(就是y由直接公式得到变成了几率分布)。

错误的衡量方式方式是和使用场景强相关的,我们考虑plausible/friendly的方式来挑选。

最后说 weighted classification 的理论。

 
 

到此机器学习理论部分结束,接下来讲机器学习算法。

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

1 Comment for “Machine Learning Foundations 8: Noise and Error”

Comments are closed.