[深度之眼机器学习训练营第四期]过拟合与正则化

Posted littleorange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[深度之眼机器学习训练营第四期]过拟合与正则化相关的知识,希望对你有一定的参考价值。

基本概念

机器学习模型面临的两个主要问题是欠拟合与过拟合。欠拟合,即模型具有较高的偏差,说明模型没有从数据中学到什么,如下左图所示。而过拟合,即模型具有较高的方差,意味着模型的经验误差低而泛化误差高,对新数据的泛化能力差,如下右图所示。
技术图片
通常,欠拟合是由于模型过于简单或使用数据集的特征较少导致的。相反,过拟合则是模型过于复杂或特征过多引起的。欠拟合的问题比较容易解决,而过拟合的问题则有些棘手。一般而言,解决过拟合的方法包括降维正则化

正则化损失函数

正则化是通过向损失函数中添加惩罚项以限制参数大小的一种方法。假设我们有如下多项式线性回归模型:
[ h_ heta(x) heta_0 + heta_1x+ heta_2x^2+ heta_3x^3+ heta_4x^4 ]
为了避免模型过于复杂,我们需要削弱( heta_3x^3)( heta_4x^4)对模型的影响。因此,我们需要对这两项进行“惩罚”,避免它们过大。所以,我们把这两个参数乘以一个较大的系数,加到损失函数中:
[ min_{ heta} frac{1}{2n}sum_{i=1}^nleft(h_ heta(x^{(i)})-y^{(i)} ight) + 1000 cdot heta_3^2+ 1000 cdot heta_4^2 ]
这样一来,为了求解损失函数的最小值,式中( heta_3)( heta_4)的值就不能过大,也就限制了模型的复杂度。如果要限制所有的参数,那么损失函数就是下面这种形式:
[ min_{ heta} frac{1}{2n}sum_{i=1}^nleft(h_ heta(x^{(i)})-y^{(i)} ight) + lambdasum_{j=1}^d heta_j^2 ]
其中(lambda gt 0)是正则化参数。下面,我们将正则化应用到之前所学的线性回归和对数几率回归中。

线性回归

梯度下降法

损失函数:
[ J( heta) = frac {1}{2n}left[ sum_{i=1}^n left( h_ heta (x^{(i)}) - y^{(i)} ight)^2 + lambdasum_{j=1}^d heta_j^2 ight] ]
今天懒得推导了(其实这个和不带正则化项的推导差不多),直接写更新方程吧:
[ egin{aligned} & ext{Repeat} lbrace & heta_0 := heta_0 - alpha frac{1}{n} sum_{i=1}^n (h_ heta(x^{(i)}) - y^{(i)})x_0^{(i)} & heta_j := heta_j - alpha left[ left( frac{1}{n} sum_{i=1}^n (h_ heta(x^{(i)}) - y^{(i)})x_j^{(i)} ight) + frac{lambda}{n} heta_j ight] & j in lbrace 1,2...d brace & brace end{aligned} ]

正规方程法

[ egin{aligned} & heta = left( X^TX + lambda cdot L ight)^{-1} X^Ty ext{, where} L = egin{bmatrix} 0 & & & & & 1 & & & & & 1 & & & & & ddots & & & & & 1 end{bmatrix}_{(d+1) imes(d+1)} end{aligned} ]
(X^TX + lambda cdot L)这个东西必定可逆。

首先,因为(vec{u}^TA^TAvec{u}=|Avec{u}|^2 ge0),所以(A^TA)是半正定矩阵,即(A^TA)的所有特征值(mu_ige 0)。由(A^TAvec{u}=mu_i vec{u})可以推出((A^TA+lambda I)vec{u}=(mu_i+lambda)vec{u}),因此(A^TA+lambda I)的特征值为(mu_i+lambda)。又因为(lambda gt 0),所以(mu_i+lambdagt0)。由于(A^TA+lambda I)的所有特征值都是大于(0)的,因此矩阵(A^TA+lambda I)一定可逆。

对数几率回归

损失函数:
[ J( heta) = -frac{1}{n} sum _{i=1}^n left[ y^{(i)} log h_ heta(x^{(i)}) + (1-y^{(i)})log(1 - h_ heta(x^{(i)})) +frac{lambda}{2}sum_{j=1}^d heta_j^2 ight ] ]
更新方程与线性回归类似,这里就不写了。

以上是关于[深度之眼机器学习训练营第四期]过拟合与正则化的主要内容,如果未能解决你的问题,请参考以下文章

[深度之眼机器学习训练营第四期]对数几率回归

[深度之眼机器学习训练营第四期]神经网络之参数学习

深度之眼PyTorch训练营第二期---14正则化

机器学习:过拟合与正则化

Python机器学习及实践——进阶篇3(模型正则化之欠拟合与过拟合)

Python机器学习及实践——进阶篇3(模型正则化之欠拟合与过拟合)