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

基本概念

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

正则化损失函数

正则化是通过向损失函数中添加惩罚项以限制参数大小的一种方法。假设我们有如下多项式线性回归模型:
h θ ( x ) θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 h_\theta(x)\theta_0 + \theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4 hθ(x)θ0+θ1x+θ2x2+θ3x3+θ4x4
为了避免模型过于复杂,我们需要削弱 θ 3 x 3 \theta_3x^3 θ3x3 θ 4 x 4 \theta_4x^4 θ4x4对模型的影响。因此,我们需要对这两项进行“惩罚”,避免它们过大。所以,我们把这两个参数乘以一个较大的系数,加到损失函数中:
min ⁡ θ 1 2 n ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) + 1000 ⋅ θ 3 2 + 1000 ⋅ θ 4 2 \min_{\theta} \frac{1}{2n}\sum_{i=1}^n\left(h_\theta(x^{(i)})-y^{(i)}\right) + 1000 \cdot \theta_3^2+ 1000 \cdot \theta_4^2 θmin2n1i=1n(hθ(x(i))y(i))+1000θ32+1000θ42
这样一来,为了求解损失函数的最小值,式中 θ 3 \theta_3 θ3 θ 4 \theta_4 θ4的值就不能过大,也就限制了模型的复杂度。如果要限制所有的参数,那么损失函数就是下面这种形式:
min ⁡ θ 1 2 n ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) + λ ∑ j = 1 d θ j 2 \min_{\theta} \frac{1}{2n}\sum_{i=1}^n\left(h_\theta(x^{(i)})-y^{(i)}\right) + \lambda\sum_{j=1}^d\theta_j^2 θmin2n1i=1n(hθ(x(i))y(i))+λj=1dθj2
其中 λ > 0 \lambda \gt 0 λ>0是正则化参数。下面,我们将正则化应用到之前所学的线性回归和对数几率回归中。

线性回归
梯度下降法

损失函数:
J ( θ ) = 1 2 n [ ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 d θ j 2 ] J(\theta) = \frac {1}{2n}\left[ \sum_{i=1}^n \left( h_\theta (x^{(i)}) - y^{(i)} \right)^2 + \lambda\sum_{j=1}^d\theta_j^2\right] J(θ)=2n1[i=1n(hθ(x(i))y(i))2+λj=1dθj2]
今天懒得推导了(其实这个和不带正则化项的推导差不多),直接写更新方程吧:
Repeat  {      θ 0 ≔ θ 0 − α   1 n   ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i )      θ j ≔ θ j − α   [ ( 1 n   ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ) + λ n θ j ]            j ∈ { 1 , 2... d } } \begin{aligned} & \text{Repeat}\ \lbrace \\ & \ \ \ \ \theta_0 \coloneqq \theta_0 - \alpha\ \frac{1}{n}\ \sum_{i=1}^n (h_\theta(x^{(i)}) - y^{(i)})x_0^{(i)} \\ & \ \ \ \ \theta_j \coloneqq \theta_j - \alpha\ \left[ \left( \frac{1}{n}\ \sum_{i=1}^n (h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)} \right) + \frac{\lambda}{n}\theta_j \right] &\ \ \ \ \ \ \ \ \ \ j \in \lbrace 1,2...d\rbrace\\ & \rbrace \end{aligned} Repeat {    θ0:=θ0α n1 i=1n(hθ(x(i))y(i))x0(i)    θj:=θjα [(n1 i=1n(hθ(x(i))y(i))xj(i))+nλθj]}          j{1,2...d}

正规方程法

θ = ( X T X + λ ⋅ L ) − 1 X T y , where   L = [ 0 1 1 ⋱ 1 ] ( d + 1 ) × ( d + 1 ) \begin{aligned} & \theta = \left( X^TX + \lambda \cdot L \right)^{-1} X^Ty \text{, where}\ \ L = \begin{bmatrix} 0 & & & & \\ & 1 & & & \\ & & 1 & & \\ & & & \ddots & \\ & & & & 1 \\ \end{bmatrix}_{(d+1)\times(d+1)} \end{aligned} θ=(XTX+λL)1XTy, where  L=0111(d+1)×(d+1)
X T X + λ ⋅ L X^TX + \lambda \cdot L XTX+λL这个东西必定可逆。

首先,因为 u ⃗ T A T A u ⃗ = ∥ A u ⃗ ∥ 2 ≥ 0 \vec{u}^TA^TA\vec{u}=\|A\vec{u}\|^2 \ge0 u TATAu =Au 20,所以 A T A A^TA ATA是半正定矩阵,即 A T A A^TA ATA的所有特征值 μ i ≥ 0 \mu_i\ge 0 μi0。由 A T A u ⃗ = μ i u ⃗ A^TA\vec{u}=\mu_i \vec{u} ATAu =μiu 可以推出 ( A T A + λ I ) u ⃗ = ( μ i + λ ) u ⃗ (A^TA+\lambda I)\vec{u}=(\mu_i+\lambda)\vec{u} (ATA+λI)u =(μi+λ)u ,因此 A T A + λ I A^TA+\lambda I ATA+λI的特征值为 μ i + λ \mu_i+\lambda μi+λ。又因为 λ > 0 \lambda \gt 0 λ>0,所以 μ i + λ > 0 \mu_i+\lambda\gt0 μi+λ>0。由于 A T A + λ I A^TA+\lambda I ATA+λI的所有特征值都是大于 0 0 0的,因此矩阵 A T A + λ I A^TA+\lambda I ATA+λI一定可逆。

对数几率回归

损失函数:
J ( θ ) = − 1 n ∑ i = 1 n [ y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) + λ 2 ∑ j = 1 d θ j 2 ] J(\theta) = -\frac{1}{n} \sum _{i=1}^n \left[ y^{(i)} \log h_\theta(x^{(i)}) + (1-y^{(i)})\log(1 - h_\theta(x^{(i)})) +\frac{\lambda}{2}\sum_{j=1}^d\theta_j^2\right ] J(θ)=n1i=1n[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))+2λj=1dθj2]
更新方程与线性回归类似,这里就不写了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值