机器学习基石2(noise和error)

文章目录

  • 一、什么是noise?
  • 二、什么是error?
  • 三、常用error


一、什么是noise?

 
我们之前的讨论都是一种理想化的说明,比如数据来源于目标函数 f f f,似乎我们手里拿到的数据是这样得来的,随机取一个输入,放入f中,获得一个输出,这样一个(输入,输出)pair就组成了一个样本。
 
但是实际过程不可能是这样的,误差存在于方方面面,

  1. 首先对于输入,可能存在测量误差,比如我们手里拿到的一个数值10.5,有可能这个真实的数值是10。
  2. 其次对于输出,也存在和输入一样的情况(对于连续值),当然对于分类任务,输出可能是错误的类别, 这也是noise。

 
在有噪音的情况下,机器学习流程如下:
 
机器学习基石2(noise和error)_第1张图片
 
现在换一种说法,在理想情况下,给定某个输入 x x x,输出是确定的 y = f ( x ) y=f(x) y=f(x),但是加上noise,输出就不是一个确定的值,而是一个分布 p ( y ∣ x ) p(y|x) p(yx),机器学习流程图可以表述成如下形式:
 
机器学习基石2(noise和error)_第2张图片
 
可喜可贺的是,PAC机器学习框架和上一篇内容介绍的vc理论在有noise的情况下也是成立的,也就是说,即使有噪声,机器学习仍然是可行的。

二、什么是error?

 
和noise不同,noise是无法避免的,但是error是我们自定义用来衡量机器学习结果和期望结果之间的差别的。针对不同的任务,不同的算法设计,error也不同:

  1. 对于分类问题,常见的error就是误分类点的个数;
  2. 当然,我们最常用的error还是用距离来度量的error,这种error在分类问题和回归问题上都可以用得到。常见的距离度量见此文章距离的度量。
     

error的设计不仅要考虑针对具体任务的合理性,也要考虑该error是否对于算法是易于优化的,通常我们希望error是可导的,所以距离度量型的error更常用。
 

三、常用error

 

  1. 0/1损失
    e r r o r = c o u n t ( y ^ ≠ y ) error=count(\hat{y} \neq y) error=county^=y
     
  2. 均方差损失MSE N N N个样本误差
    e r r o r = 1 N ∑ i = 0 N − 1 ( y i ^ − y i ) 2 error=\frac{1}{N} \sum_{i=0}^{N-1}(\hat{y_i}-y_i)^2 error=N1i=0N1(yi^yi)2

 
3. 交叉熵损失cross entropy,针对 k k k分类问题,单个样本误差
e r r o r = − ∑ i = 1 k y i l o g ( p i ) error=-\sum_{i=1}^{k}y_ilog(p_i) error=i=1kyilog(pi)
其中 p i p_i pi表示模型将样本预测为类别 i i i的概率,如果样本真实类别为 i i i,则 y i = 1 y_i=1 yi=1,否则 y i = 0 y_i=0 yi=0
所有样本的误差是取平均。
 

你可能感兴趣的:(机器学习,人工智能,深度学习)