来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件

岭回归的求解

岭回归就是 基于 L2L_2 约束的最小二乘法,它的损失函数为:

loss=i=1m(yiwTxi)2+λw2 loss = \sum_{i=1}^m (y_i - w^Tx_i)^2 + \lambda \| w \|^2

我们将损失函数表示成矩阵形式:

loss=(ywTX)2+λw2 loss = (y - w^TX)^2 + \lambda w^2

和最小二乘的正规方程解法一样,我们对 ww 求偏导:

wloss=2XT(Xwy)+2λw \frac {\partial}{\partial w}loss = 2X^T(Xw-y)+2 \lambda w

令其等于 0,求得损失函数最小时 ww 的解析解:

w^=(XTX+λI)1XTy \hat{w} = (X^TX + \lambda I)^{-1}X^Ty

一般 L2L_2 约束的最小二乘求解

在前面介绍岭回归的时候,我们不仅介绍了 L2L_2 约束,还将其扩展到更一般的情况:

minθJ(θ),θTGθR \mathop{\min}_{\theta}J(\theta), \theta^TG\theta \leqslant R

它的损失函数可以表示成:

loss=(ywTX)2+λwTGw loss = (y - w^TX)^2 + \lambda w^TGw

我们可以对其求偏导,得到 ww 的解析解:

w^=(XTX+λG)1XTy \hat{w} = (X^TX + \lambda G)^{-1}X^Ty

LASSO 回归的求解

LASSO 回归是 基于 L_1 约束的最小二乘法,它的损失函数为:

loss=i=1m(yiwTxi)2+λw loss = \sum_{i=1}^m (y_i - w^Tx_i)^2 + \lambda \| w \|

这里的 w\| w \| 是对所有的 wiw_i 绝对值进行求和,我们知道绝对值函数不能求导,所以不能像上面那样通过求偏导来求解。

  1. 解法一:通过二次函数在绝对值函数的上方进行控制
θθ22c+c2 |\theta| \leqslant \frac{\theta^2}{2c} + \frac{c}{2}

得到 θ\theta 的迭代更新公式:

θ:=(XTX+λΘ)1XTy \theta := (X^TX + \lambda\Theta^\dagger)^{-1}X^Ty

其中,Θ=diag(θ1,,θb)\Theta = diag(|\theta_1|, \dots, |\theta_b|)Θ\Theta^\dagger 表示 Θ\Theta 的广义逆。

具体的求解过程参见《图解机器学习》p45.

  1. 解法二:使用近端梯度下降(Proximal Gradient Descent,简称 PGD)

L-Lipschitz 条件、二阶泰勒展开

参见《机器学习》p253.

  1. 解法三:拟牛顿法

BFGS、L-BFGS、Armijo 搜索准则、Sherman-Morrison 公式