上节课介绍VC Dimension的定义,从有限的dvcd_{vc}dvc推导出VC bound,但其实基于Data Set是在没有Noise的情况下,本节课讨论如果Data Set本身存在Noise,那VC Dimension的推导是否还成立呢?
一、Noise and Probabilistic Target
- 仍然以银行是否给客户发放信用卡为例,说明Noise的来源主要有三类:
- noise in y:由于人为因素,正类被误分为负类,或者负类被误分为正类;
- noise in y:同样特征的样本被模型分为不同的类;
- noise in x:样本的特征被错误记录和使用。
- 在之前无noise的data set中,我们称这个data set是确定分布的,即deterministic;
- 当data set存在noise时,这时候data不再是deterministic确定分布的,而是存在一定的概率分布,对每个(x,y)出现的概率是P(y|x);
- 数学上可以证明如果数据集按照P(y|x)概率分布且是iid的,那么以前证明机器可以学习的方法依然奏效;
- i.i.d.:independently and identically distributed,即独立同分布。
在概率统计理论中,指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布。
机器学习都是基于独立同分布这样的假设基础上的。
输入空间X中的所有样本服从一个隐含未知的分布,训练数据所有样本都是独立地从这个分布上采样而得。 ——周志华西瓜书
- P(y|x) 称之为目标分布(Target Distribution),它实际上告诉我们最好的预测是什么,同时伴随多少比例的noise;
- 基于目标分布,对于一个输入x,我们最理想的预测结果称之为ideal mini-target;
- 对于deterministic确定分布,可以看成是特殊的概率分布,它的P(y|x)取值为1或0;
二、Error Measure
- 机器学习的目的在于获得一个hypothesis g≈f,之前我们一直使用Eout来对g进行误差估计,而更一般的情况是使用error measure E(g,f),:
- out-of-sample:样本外的未知数据
- pointwise:对每个数据点x进行测试
- classification:看prediction与target是否一致,classification error通常称为0/1 error
- pointwise error measure:实际上就是对数据集的每个点计算错误,并计算其平均,使用err对其进行表示;
- 使用err()改写Ein和Eout如上图;
- pointwise error measure一般可以分成两类如上图:0/1 error和squared error:
- 0/1 error通常用在分类(classification)问题上,判断预测结果正确与否;
- squared error通常用在回归(regression)问题上,判断预测结果与正确结果的相近程度。
- 对于相同的分布,如果使用不同的error measure策略,可能会得到不同的结果;
- 对于0/1 error,我们预测应该选择P(y|x)最大的那个y;
- 而对于squared error,我们预测则应该选择靠近平均期望的那个y;
三、Algorithmic Error Measure
- 对于二元分类问题,根据g和f是否相同可以分为如上4种情况,这样的结果我们称之为混淆矩阵(confusion matrix),其中的error有两种:false accept和false reject;
- false accept(错误接受)意思是误把负类当成正类,false reject(错误拒绝)是误把正类当成负类;
- 根据不同的机器学习问题,不同类型的错误所造成的后果可能不同,因此false accept和false reject应该有不同的代价权重,我们称之为代价矩阵(cost matrix);
- 例如超市优惠,那么false reject代价更大一些,因此代价权重应该设的大一些;如果是安保系统,那么false accept应该设的大一些。
- 机器学习演算法A的cost function error估计有多种方法,真实的err一般难以计算,常用的方法可以采用plausible或者friendly,根据具体情况而定。
- 引入algorithm error measure之后,学习流程图如下:
四、Weighted Classification
- 上一小节中引入了错误的表示方式——代价矩阵(cost matrix),有时候也称之为损失矩阵(loss matrix)或错误矩阵(error matrix);
- 这种错误矩阵分别表示如上的Ein(h)和Eout(h),我们称为Weighted Classification。
- 我们希望让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倍。