0


深入理解机器学习——偏差(Bias)与方差(Variance)

分类目录:《深入理解机器学习》总目录


偏差(Bias)与方差(Variance)是解释学习算法泛化性能的一种重要工具。偏差方差分解试图对学习算法的期望泛化错误率进行拆解,我们知道,算法在不同训练集上学得的结果很可能不同,即便这些训练集是来自同一个分布,对测试样本

     x 
    
   
  
    x 
   
  
x,令 
 
  
   
    
    
      y 
     
    
      D 
     
    
   
  
    y_D 
   
  
yD​为在数据集中的标记, 
 
  
   
   
     y 
    
   
  
    y 
   
  
y为 
 
  
   
   
     x 
    
   
  
    x 
   
  
x的真实标记 
 
  
   
   
     f 
    
   
     ( 
    
   
     x 
    
   
     ; 
    
   
     D 
    
   
     ) 
    
   
  
    f(x;D) 
   
  
f(x;D)为训练集 
 
  
   
   
     D 
    
   
  
    D 
   
  
D上学得模型 
 
  
   
   
     f 
    
   
  
    f 
   
  
f在上的预测输出。以回归任务为例,学习算法的期望预测为:

  
   
    
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
     
     
       E 
      
     
       D 
      
     
    
      [ 
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ; 
     
    
      D 
     
    
      ) 
     
    
      ] 
     
    
   
     f(x)=E_D[f(x;D)] 
    
   
 f(x)=ED​[f(x;D)]

使用样本数相同的不同训练集产生的方差为:

      Var 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
     
     
       E 
      
     
       D 
      
     
    
      [ 
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ; 
     
    
      D 
     
    
      ) 
     
    
      − 
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      ] 
     
    
   
     \text{Var}(x)=E_D[f(x;D)-f(x)] 
    
   
 Var(x)=ED​[f(x;D)−f(x)]

噪声为:

       ϵ 
      
     
       2 
      
     
    
      = 
     
     
     
       E 
      
     
       D 
      
     
    
      [ 
     
    
      ( 
     
     
     
       y 
      
     
       D 
      
     
    
      − 
     
    
      y 
     
     
     
       ) 
      
     
       2 
      
     
    
      ] 
     
    
   
     \epsilon^2=E_D[(y_D-y)^2] 
    
   
 ϵ2=ED​[(yD​−y)2]

期望输出与真实标记的差别称为偏差(Bias),即:

       bias 
      
     
       2 
      
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      = 
     
    
      ( 
     
    
      f 
     
    
      ( 
     
    
      x 
     
    
      ) 
     
    
      − 
     
    
      y 
     
     
     
       ) 
      
     
       2 
      
     
    
   
     \text{bias}^2(x)=(f(x) - y)^2 
    
   
 bias2(x)=(f(x)−y)2

为便于讨论,假定噪声期望为零,即

      E 
     
    
      D 
     
    
   
     [ 
    
   
     ( 
    
    
    
      y 
     
    
      D 
     
    
   
     − 
    
   
     y 
    
   
     ) 
    
   
     ] 
    
   
     = 
    
   
     0 
    
   
  
    E_D[(y_D-y)]=0 
   
  
ED​[(yD​−y)]=0。通过简单的多项式展开合并,可对算法的期望泛化误差进行分解:

  
   
    
     
      
       
        
         
         
           E 
          
         
           D 
          
         
        
          [ 
         
        
          ( 
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          ; 
         
        
          D 
         
        
          ) 
         
        
          − 
         
         
         
           y 
          
         
           D 
          
         
         
         
           ) 
          
         
           2 
          
         
        
          ] 
         
        
       
      
      
       
        
         
        
          = 
         
         
         
           E 
          
         
           D 
          
         
        
          [ 
         
        
          ( 
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          ; 
         
        
          D 
         
        
          ) 
         
        
          − 
         
         
         
           f 
          
         
           ˉ 
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          + 
         
         
         
           f 
          
         
           ˉ 
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          − 
         
         
         
           y 
          
         
           D 
          
         
         
         
           ) 
          
         
           2 
          
         
        
          ] 
         
        
       
      
     
     
      
       
        
       
      
      
       
        
         
        
          = 
         
         
         
           E 
          
         
           D 
          
         
        
          [ 
         
        
          ( 
         
        
          f 
         
        
          ( 
         
        
          x 
         
        
          ; 
         
        
          D 
         
        
          ) 
         
        
          − 
         
         
         
           f 
          
         
           ˉ 
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          ] 
         
        
          + 
         
        
          ( 
         
         
         
           f 
          
         
           ˉ 
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          − 
         
        
          y 
         
         
         
           ) 
          
         
           2 
          
         
        
          + 
         
         
         
           E 
          
         
           D 
          
         
        
          [ 
         
        
          ( 
         
         
         
           y 
          
         
           D 
          
         
        
          − 
         
        
          y 
         
         
         
           ) 
          
         
           2 
          
         
        
          ] 
         
        
       
      
     
     
      
       
        
       
      
      
       
        
         
        
          = 
         
         
         
           bias 
          
         
           2 
          
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          + 
         
        
          Var 
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          + 
         
         
         
           ϵ 
          
         
           2 
          
         
        
       
      
     
    
   
     \begin{align*} E_D[(f(x; D) - y_D)^2] &= E_D[(f(x; D) - \bar{f}(x) + \bar{f}(x) - y_D)^2]\\ &= E_D[(f(x; D) - \bar{f}(x)] + (\bar{f}(x) - y)^2 + E_D[(y_D - y)^2]\\ &= \text{bias}^2(x) + \text{Var}(x) + \epsilon^2 \end{align*} 
    
   
 ED​[(f(x;D)−yD​)2]​=ED​[(f(x;D)−fˉ​(x)+fˉ​(x)−yD​)2]=ED​[(f(x;D)−fˉ​(x)]+(fˉ​(x)−y)2+ED​[(yD​−y)2]=bias2(x)+Var(x)+ϵ2​

也就是说,泛化误差可分解为偏差、方差与噪声之和。回顾偏差、方差、噪声的含义:偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。偏差方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小一般来说,偏差与方差是有冲突的,这称为偏差方差窘境(Bias-Variance Dilemma)。下图给出了一个示意图。给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率:在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合,
偏差与方差

参考文献:
[1] 周志华. 机器学习[M]. 清华大学出版社, 2016.


本文转载自: https://blog.csdn.net/hy592070616/article/details/129389832
版权归原作者 von Neumann 所有, 如有侵权,请联系我们删除。

“深入理解机器学习——偏差(Bias)与方差(Variance)”的评论:

还没有评论