9. 正则化线性模型

  • Ridge Regression 岭回归

  • Lasso 回归

  • Elastic Net 弹性网络

  • Early stopping

1 Ridge Regression (岭回归,又名 Tikhonov regularization)

岭回归是线性回归的正则化版本,即在原来的线性回归的 cost function 中添加正则项(regularization term):

αi=1nθi2\alpha \sum_{i=1}^n \theta_i^2

以达到在拟合数据的同时,使模型权重尽可能小的目的,岭回归代价函数:

J(θ)=MSE(θ)+αi=1nθi2J(\theta)=\operatorname{MSE}(\theta)+\alpha \sum_{i=1}^n \theta_i^2

J(θ)=1mi=1m(θTx(i)y(i))2+αi=1nθi2J(\theta)=\frac{1}{m} \sum_{i=1}^m\left(\theta^T \cdot x^{(i)}-y^{(i)}\right)^2+\alpha \sum_{i=1}^n \theta_i^2
  • α=0:岭回归退化为线性回归

2 Lasso Regression(Lasso 回归)

Lasso 回归是线性回归的另一种正则化版本,正则项为权值向量的ℓ1范数。

Lasso回归的代价函数 :

J(θ)=MSE(θ)+αi=1nθiJ(\theta)=\operatorname{MSE}(\theta)+\alpha \sum_{i=1}^n\left|\theta_i\right|

【注意 】

  • Lasso Regression 的代价函数在 θi=0\theta_i=0处是不可导的.

  • 解决方法:在 θi=0\theta_i=0 处用一个次梯度向量(subgradient vector)代替梯度,如下式

  • Lasso Regression 的次梯度向量

g(θ,J)=θMSE(θ)+α(sign(θ1)sign(θ2)sign(θn)) where sign(θi)={1 if θi<00 if θi=0+1 if θi>0g(\theta, J)=\nabla_\theta \operatorname{MSE}(\theta)+\alpha\left(\begin{array}{c} \operatorname{sign}\left(\theta_1\right) \\ \operatorname{sign}\left(\theta_2\right) \\ \vdots \\ \operatorname{sign}\left(\theta_n\right) \end{array}\right) \text { where } \operatorname{sign}\left(\theta_i\right)= \begin{cases}-1 & \text { if } \theta_i<0 \\ 0 & \text { if } \theta_i=0 \\ +1 & \text { if } \theta_i>0\end{cases}

Lasso Regression 有一个很重要的性质是:倾向于完全消除不重要的权重。

例如:当α 取值相对较大时,高阶多项式退化为二次甚至是线性:高阶多项式特征的权重被置为0。

也就是说,Lasso Regression 能够自动进行特征选择,并输出一个稀疏模型(只有少数特征的权重是非零的)。

3 Elastic Net (弹性网络)

弹性网络在岭回归和Lasso回归中进行了折中,通过 混合比(mix ratio) r 进行控制:

  • r=0:弹性网络变为岭回归

  • r=1:弹性网络便为Lasso回归

弹性网络的代价函数 :

J(θ)=MSE(θ)+rαi=1nθi+1r2αi=1nθi2J(\theta)=\operatorname{MSE}(\theta)+r \alpha \sum_{i=1}^n\left|\theta_i\right|+\frac{1-r}{2} \alpha \sum_{i=1}^n \theta_i^2

一般来说,我们应避免使用朴素线性回归,而应对模型进行一定的正则化处理,那如何选择正则化方法呢?

小结:

  • 常用:岭回归

  • 假设只有少部分特征是有用的:

    • 弹性网络

    • Lasso

    • 一般来说,弹性网络的使用更为广泛。因为在特征维度高于训练样本数,或者特征是强相关的情况下,Lasso回归的表现不太稳定。

  • api:

4 Early Stopping [了解]

Early Stopping 也是正则化迭代学习的方法之一。

其做法为:在验证错误率达到最小值的时候停止训练。

Last updated