LASSO非常实用,但由于它的惩罚项不可以常规地进行求导,使得很多人以为它无法显式地求出解析解。但其实并不是这样的。
1 单变量情形:软阈值法
1.1 软阈值的分类讨论
将NNN个样本的真实值记为NNN维向量yyy,将NNN个样本的自变量记为zzz,假设我们已经将自变量做过标准化,即z′ℓN=0z' \ell_N=0z′ℓN=0,z′z/N=1z'z/N=1z′z/N=1,这也意味着在LASSO模型中截距项为000。系数β\betaβ是要优化的参数,惩罚项参数为λ>0\lambda\gt 0λ>0。
LASSO就是要求解
arg minβ12N(y−zβ)′(y−zβ)+λ∣β∣(1) \argmin_\beta \dfrac{1}{2N}(y-z\beta)'(y-z\beta)+\lambda |\beta| \tag{1} βargmin2N1(y−zβ)′(y−zβ)+λ∣β∣(1)
忽略常数项后,上式等价于
arg minβ12β2−y′zNβ+λ∣β∣ \argmin_\beta \dfrac{1}{2}\beta^2 -\dfrac{y'z}{N}\beta+ \lambda |\beta| βargmin21β2−Ny′zβ+λ∣β∣
将损失函数写成分段函数形式:
f(β)={
f1(β)=12β2−(y′zN+λ)β,β<0f2(β)=12β2−(y′zN−λ)β,β≥0 f(\beta)=\begin{cases} f_1(\beta) = \dfrac{1}{2}\beta^2 -\left(\dfrac{y'z}{N} + \lambda\right)\beta , \beta \lt 0\\ f_2(\beta) = \dfrac{1}{2}\beta^2 -\left(\dfrac{y'z}{N}- \lambda\right)\beta, \beta \geq 0 \end{cases} f(β)=⎩⎪⎪⎨⎪⎪⎧f1(β)=21β2−(Ny′z+λ)β,β<0f2(β)=21β2−(Ny′z−λ)β,β≥0
分类讨论:
- 若y′zN>λ\dfrac{y'z}{N}\gt \lambdaNy′z>λ,则f1(β)>0f_1(\beta) \gt 0f