其他分享
首页 > 其他分享> > 机器学习(十)偏差和方差问题

机器学习(十)偏差和方差问题

作者:互联网

文章目录


应用机器学习时的建议——advice for applying machine learning


Log

2022.01.25开始学习第十章
2022.01.26继续学习
2022.01.27明天弄完
2022.01.28结束第十章


一、决定下一步做什么(Deciding what to try next)

1. 关注的问题

2. 改进算法性能的方法

二、评估假设(Evaluating a hypothesis)

1. 过拟合问题

2. 数据分割

3. 训练和测试的步骤

①线性回归

− L e a r n    p a r a m e t e r    θ    f r o m    t r a i n i n g    d a t a    ( m i n i m i z i n g      t r a i n i n g    e r r o r    J ( θ ) )    − C o m p u t e    t e s t    s e t    e r r o r : J t e s t ( θ ) = 1 2 m t e s t ∑ i = 1 m t e s t ( h θ ( x t e s t ( i ) ) − y t e s t ( i ) ) 2 \begin{aligned} &-Learn\ \ parameter\ \ \theta\ \ from\ \ training\ \ data\ \ (minimizing\\\ \ &\quad \ training\ \ error\ \ J(\theta))\ \ \\ &-Compute\ \ test\ \ set\ \ error:\\ &\qquad\large J_{test}(\theta)=\frac{1}{2m_{test}}\sum^{m_{test}}_{i=1}(h_\theta(x^{(i)}_{test})-y^{(i)}_{test})^2 \end{aligned}   ​−Learn  parameter  θ  from  training  data  (minimizing training  error  J(θ))  −Compute  test  set  error:Jtest​(θ)=2mtest​1​i=1∑mtest​​(hθ​(xtest(i)​)−ytest(i)​)2​

②逻辑回归

− L e a r n    p a r a m e t e r    θ    f r o m    t r a i n i n g    d a t a − C o m p u t e    t e s t    s e t    e r r o r : J t e s t ( θ ) = − 1 m t e s t [ ∑ i = 1 m t e s t ( y t e s t ( i ) l o g h θ ( x t e s t ( i ) ) + ( 1 − y t e s t ( i ) ) l o g ( 1 − h θ ( x t e s t ( i ) ) ) ) ]   − M i s c l a s s i f i c a t i o n    e r r o r    ( 0 / 1    m i s c l a s s i f i c a t i o n    e r r o r ) : e r r ( h θ ( x ) , y ) = { 1 if    h θ ( x ) ≥ 0.5            y = 0 or  if     h θ ( x ) < 0.5      y = 1 0 otherwise    T e s t    e r r o r = 1 m t e s t ∑ i = 1 m t e s t e r r ( h θ ( x t e s t ( i ) ) , y t e s t ( i ) ) \begin{aligned} &-Learn\ \ parameter\ \ \theta\ \ from\ \ training\ \ data\\ &-Compute\ \ test\ \ set\ \ error:\\ &\qquad\large J_{test}(\theta)=-\frac{1}{m_{test}}\left[\sum^{m_{test}}_{i=1}(y^{(i)}_{test}logh_\theta(x^{(i)}_{test})+(1-y^{(i)}_{test})log(1-h_\theta(x^{(i)}_{test})))\right]\\\ \\ &-Misclassification\ \ error\ \ (0/1\ \ misclassification\ \ error):\\ &\qquad err(h_\theta(x),y)= \begin{cases} 1 &\text{if } \ \ h_\theta(x)\ge0.5\ \ \ \ \ \ \ \ \ \ y=0 \\ &\text{or\ \ if } \ \ \ h_\theta(x)<0.5\ \ \ \ y=1\\ 0 &\text{otherwise } \end{cases}\\\ \\ &\qquad Test\ \ error=\frac{1}{m_{test}}\sum^{m_{test}}_{i=1}err(h_\theta(x^{(i)}_{test}),y^{(i)}_{test}) \end{aligned}   ​−Learn  parameter  θ  from  training  data−Compute  test  set  error:Jtest​(θ)=−mtest​1​⎣⎡​i=1∑mtest​​(ytest(i)​loghθ​(xtest(i)​)+(1−ytest(i)​)log(1−hθ​(xtest(i)​)))⎦⎤​−Misclassification  error  (0/1  misclassification  error):err(hθ​(x),y)=⎩⎪⎨⎪⎧​10​if   hθ​(x)≥0.5          y=0or  if    hθ​(x)<0.5    y=1otherwise ​Test  error=mtest​1​i=1∑mtest​​err(hθ​(xtest(i)​),ytest(i)​)​

三、模型选择和训练、验证、测试集(Model selection and training/validation/test sets)

1. 过拟合问题

2. 模型选择问题

①确定模型

②测定泛化能力(数据分割)

M o d e l    h θ ( x )    ( d = i ) ( u s e    t r a i n i n g    s e t ) ⇒    min ⁡ θ J ( θ ) ⇒    θ ( i ) ⇒ ( u s e    v a l i d a t i o n    s e t ) ⇒    J c v ( θ ( i ) ) ⇒ ( u s e    t e s t    s e t ) ⇒    P i c k    d = 4 ⇒    E s t i m a t e    g e n e r a l i z a t i    o n    e r r o r    f o r    t e s t    s e t    J t e s t ( θ ( 4 ) ) \begin{aligned} &Model\ \ h_\theta(x)\ \ (d=i)(use\ \ training\ \ set)\\ \Rightarrow \ \ &\min\limits_\theta J(\theta)\\ \Rightarrow \ \ &\theta^{(i)}\qquad\Rightarrow (use\ \ validation\ \ set)\\ \Rightarrow \ \ &J_{cv}(\theta^{(i)})\Rightarrow (use\ \ test\ \ set)\\ \Rightarrow \ \ &Pick\ \ d=4\\ \Rightarrow \ \ &Estimate\ \ generalizati\ \ on\ \ error\ \ for\ \ test\ \ set\ \ J_{test}(\theta^{(4)}) \end{aligned} ⇒  ⇒  ⇒  ⇒  ⇒  ​Model  hθ​(x)  (d=i)(use  training  set)θmin​J(θ)θ(i)⇒(use  validation  set)Jcv​(θ(i))⇒(use  test  set)Pick  d=4Estimate  generalizati  on  error  for  test  set  Jtest​(θ(4))​

四、诊断偏差与方差(Diagnosing bias vs. variance)

1. 偏差与方差

在这里插入图片描述

2. 判断方法

在这里插入图片描述

五、正则化和偏差方差(Regularization and bias/variance)

1. 不同程度大小正则化参数对应的情况

Model: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 + θ 4 x 4 4 Learning    algorithm    objective   : J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ j = 1 n θ j 2 \begin{aligned} &\textbf{Model:}\\ &\qquad h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2^2+\theta_3x_3^3+\theta_4x_4^4\\ &\textbf{Learning\ \ algorithm\ \ objective :}\\ &\qquad J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_θ(x^{(i)})-y^{(i)})^2+\red{\frac{λ}{2m}\sum_{j=1}^nθ_j^2} \end{aligned} ​Model:hθ​(x)=θ0​+θ1​x1​+θ2​x22​+θ3​x33​+θ4​x44​Learning  algorithm  objective :J(θ)=2m1​i=1∑m​(hθ​(x(i))−y(i))2+2mλ​j=1∑n​θj2​​

  1. 第一种情形(上图左)是非常大的正则化参数 λ(比如 λ 取 10000 或者其他比较大的值),在这种情况下,所有这些参数包括 θ1、θ2、θ3 等等将被惩罚很重。其结果是这些参数大部分都接近于零,并且这个假设 h(x) 将等于或近似等于 θ0。因此,最终得到的假设函数大致近似是一条水平的直线。
  2. 另一种极端的情况(上图右)是,如果有非常小的 λ,比如说等于 0,在这种情况下,如果要拟合一个高阶多项式的话,通常会出现过拟合的情况;如果没有进行正则化或者正则化程度很小的话,通常会得到高方差(过拟合)的结果,因为通常来说的值等于零,相当于没有正则化,因此会对假设过拟合。
  3. 只有当我们取一个大小适中、既不大也不小的值时(上图中),才能得到一组对数据拟合比较合理的参数值

2. 如何自动选择出一个最适合的正则化参数

①定义:训练集、交叉验证集以及测试集误差

②自动选择正则化参数 λ 的方法(模型选择在选取正则化参数时的应用)

M o d e l ⟹ min ⁡ θ J ( θ ) ⟹ θ ( i ) ⟹ J c v ( θ ( i ) ) ⟹ J t e s t ( θ ( 5 ) ) \begin{aligned} Model\Longrightarrow \min\limits_\theta J(\theta)\Longrightarrow \theta^{(i)}\Longrightarrow J_{cv}(\theta^{(i)})\Longrightarrow J_{test}(\theta^{(5)}) \end{aligned} Model⟹θmin​J(θ)⟹θ(i)⟹Jcv​(θ(i))⟹Jtest​(θ(5))​

③交叉验证误差和训练误差随正则化参数 λ 的变化图像

在这里插入图片描述

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ j = 1 n θ j 2 J t r a i n ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J c v ( θ ) = 1 2 m c v ∑ i = 1 m c v ( h θ ( x c v ( i ) ) − y c v ( i ) ) 2 \begin{aligned} &J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_θ(x^{(i)})-y^{(i)})^2+\red{\frac{λ}{2m}\sum_{j=1}^nθ_j^2}\\ &J_{train}(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_θ(x^{(i)})-y^{(i)})^2\\ &J_{cv}(\theta)=\frac{1}{2m_{cv}}\sum_{i=1}^{m_{cv}}(h_θ(x^{(i)}_{cv})-y^{(i)}_{cv})^2\\ \end{aligned} ​J(θ)=2m1​i=1∑m​(hθ​(x(i))−y(i))2+2mλ​j=1∑n​θj2​Jtrain​(θ)=2m1​i=1∑m​(hθ​(x(i))−y(i))2Jcv​(θ)=2mcv​1​i=1∑mcv​​(hθ​(xcv(i)​)−ycv(i)​)2​

六、学习曲线(Learning curves)

1. 绘制学习曲线

2. 不同情况下的学习曲线

①高偏差情况下的学习曲线

在这里插入图片描述

②高方差情况下的学习曲线

在这里插入图片描述

七、决定接下来做什么(Deciding what to try next【revisited】)

1. 如何判断哪些方法有效

  1. 使用更多的训练样本:
    这种方法对于解决高方差问题 是有帮助的。如果想要选择这种方法,应该先画出学习曲线,并且发现发现模型至少有那么一点方差问题(交叉验证误差应该比训练误差大一点)。
  2. 尝试选用更少的特征:
    用更少的特征这种方法同样是对高方差时有效 ,换句话说,如果通过绘制学习曲线或者别的方法看出模型处于高偏差问题,就应该立即试图从已有的特征中挑出一小部分来使用,把时间用在刀刃上。
  3. 尝试选用更多的特征:
    通常增加特征是解决高偏差问题的一个方法。对应情况产生的通常是因为当前的假设太简单,因此,想要更多的特征来使假设更好地拟合训练集。
  4. 尝试增加多项式特征
    增加多项式特征实际上也是属于增加特征,因此这是另一种修正高偏差问题的方式。
  5. 减小正则化参数 λ 的值
    解决高偏差问题
  6. 减小正则化参数 λ 的值
    解决高方差问题

2. 以上内容与神经网络的联系

总结

标签:偏差,机器,训练,误差,方差,正则,拟合,theta,aligned
来源: https://blog.csdn.net/weixin_53312629/article/details/122677395