[深度之眼机器学习训练营第四期]过拟合与正则化
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 ]
]
更新方程与线性回归类似,这里就不写了。
以上是关于[深度之眼机器学习训练营第四期]过拟合与正则化的主要内容,如果未能解决你的问题,请参考以下文章