机器学习第三周(下): 过拟合与正则化

1、拟合程度

  • 对于线性回归:
    在这里插入图片描述
  • 对于逻辑回归:
    在这里插入图片描述
    左图欠拟合,高偏差。中图正合适。右图过拟合,高方差。

1.1、过拟合

1.1.1、原因

  1. 由上面的右图可知,特征太多(线性回归中四个特征: x x x x 2 x^2 x2 x 3 x^3 x3 x 4 x^4 x4;逻辑回归中特征更多,不赘述),虽然能够贴合训练集中的样本,但是无法“泛化”(也即无法将模型应用到新的样本中)。
  2. 样本数量不够

1.1.2、理论解决方法

  1. 减少特征数量:手动选取特征或者采用模型选择算法(之后的博文会提到)。
  2. 减小模型参数 θ \theta θ,如:正则化

1.1.3、实际解决方法之一:正则化

  1. 主要思想:减小模型参数 θ \theta θ
  2. 正则化的概念:正则化方法是在训练数据不够多时,或者over training时,常常会导致过拟合(overfitting)。 这时向原始模型引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称
  3. 具体操作:在代价函数中添加惩罚项
    如果假设函数如下所示:
    h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + ⋯ + θ 4 x 4 h_\theta(x)=\theta_0+\theta_1x+\theta_2x^2+\cdots+\theta_4x^4 hθ(x)=θ0+θ1x+θ2x2++θ4x4
    则代价函数可添加惩罚项 1000 θ 3 2 1000\theta_3^2 1000θ32 1000 θ 4 2 1000\theta_4^2 1000θ42
    J ( θ → ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) 2 + 1000 θ 3 2 + 1000 θ 4 2 ] J(\overrightarrow{\theta})=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))^2 + 1000\theta_3^2+1000\theta_4^2] J(θ )=2m1[i=1m(hθ(x(i)y(i)))2+1000θ32+1000θ42]
    这样,在求目标函数(使代价函数最小)时,会要求 θ 3 \theta_3 θ3 θ 4 \theta_4 θ4的值变小,因为这两个值对代价函数的值有一定影响,一定程度上弱化了与这两个模型参数对应的特征( x 2 x^2 x2 x 3 x^3 x3)在假设函数中的作用。
1.1.3.1、正则化线性回归
  • 惩罚项为: λ ∑ j = 1 n θ j 2 \lambda\sum_{j=1}^n\theta_j^2 λj=1nθj2,其中, λ \lambda λ为正规化参数,如果设置过大,则各模型参数过于接近零(除了 θ 0 \theta_0 θ0),相当于假设函数 h θ ( x ) = θ 0 h_\theta(x)=\theta_0 hθ(x)=θ0

PS: 注意惩罚项的累加符号是从 j = 1 j=1 j=1开始的,也就是说从 θ 1 \theta_1 θ1开始,对 θ 0 \theta_0 θ0没有影响,因为 θ 0 \theta_0 θ0并没有对应的特征 x x x

  • 代价函数如下:
    J ( θ → ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\overrightarrow{\theta})=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))^2 + \lambda\sum_{j=1}^n\theta_j^2] J(θ )=2m1[i=1m(hθ(x(i)y(i)))2+λj=1nθj2]
  • 梯度下降中的偏导数如下:
    θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) ( x 0 ( i ) ) θ j : = θ j − α [ 1 m ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) ( x j ( i ) ) + λ m θ j ] ( f o r j = 1 至 n ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))(x^{(i)}_0) \\ \theta_j:=\theta_j-\alpha[\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))(x^{(i)}_j)+\frac{\lambda}{m}\theta_j] \quad (for\quad j = 1至n) θ0:=θ0αm1i=1m(hθ(x(i)y(i)))(x0(i))θj:=θjα[m1i=1m(hθ(x(i)y(i)))(xj(i))+mλθj](forj=1n)
    PS: x 0 ( i ) = 1 ; j 为 0 至 n x^{(i)}_0=1;j为0至n x0(i)=1j0n

上面第二条公式可以化为:
θ j : = θ j ( 1 − λ m ) − α m ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) ( x j ( i ) ) ( f o r j = 1 至 n ) \theta_j:=\theta_j(1-\frac{\lambda}{m})-\frac{\alpha}{m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))(x^{(i)}_j) \quad (for\quad j = 1至n) θj:=θj(1mλ)mαi=1m(hθ(x(i)y(i)))(xj(i))(forj=1n)
1 − λ m &lt; 1 1-\frac{\lambda}{m}\lt1 1mλ<1可知,相比原来的代价函数减小了 θ j \theta_j θj的值。
1 − λ m &lt; 1 1-\frac{\lambda}{m}\lt1 1mλ<1的原理为:因为 λ \lambda λ不可能是负数,
如果是负数,则 λ ∑ j = 1 n θ j 2 \lambda\sum_{j=1}^n\theta_j^2 λj=1nθj2这个项也是负数,在求解目标函数时可以取无穷大的模型参数,使代价函数无穷小,进而不存在真正的最小值,不合理。

1.1.3.2、正则化正规方程法
  1. 原式子:
    θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)1XTy
  2. 正则化后的式子:
    θ = ( X T [ 0 0 … 0 0 1 0 ⋮ ⋮ 0 1 0 0 … 0 1 ] X ) − 1 X T y \theta = (X^T \begin{bmatrix} 0 &amp; 0 &amp; \dots &amp; 0 \\ 0 &amp; 1 &amp; 0 &amp; \vdots \\ \vdots &amp; 0 &amp; 1 &amp; 0 \\ 0 &amp; \dots &amp; 0 &amp; 1 \end{bmatrix} X)^{-1}X^Ty θ=(XT000010010001X)1XTy
    PS:该式可以解决 X T X X^TX XTX不可逆的问题,新添加的矩阵大小为(n+1)*(n+1)
1.1.3.3、正则化逻辑回归
  • 惩罚项:与线性回归相同
  • 代价函数如下:
    J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta) = -\frac{1}{m} \sum_{i=1}^m [y^{(i)}\log(h_\theta(x^{(i)}) ) +(1-y^{(i)})\log(1-h_\theta(x^{(i)})) ] + \frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2
    -梯度下降的偏导数与线性回归中的一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值