引言
LASSO是由1996年Robert Tibshirani首次提出,全称Least absolute shrinkage and selection operator。该方法是一种压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些回归系数,即强制系数绝对值之和小于某个固定值;同时设定一些回归系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。1
本文立足于普通线性回归模型,首先提及普通最小二乘法(OLS),并说明Lasso与Ridge Regression(岭回归)为OLS的一个延申方法,用于处理OLS无法解决的问题。
本文假设读者已有概率论与数理统计、线性代数以及运筹学的先验知识,并对线性回归模型有着一定的了解。
一、从线性回归说起
线性回归模型是统计学中最基础也是最实用的模型,他旨在给出一个形如
y
=
β
0
+
β
T
x
y=\beta _0+\boldsymbol{\beta }^{T}\boldsymbol{x}
y=β0+βTx
的线性表达式,以表示出自变量
y
y
y与因变量
x
\boldsymbol{x}
x之间的线性关系
(其中
β
\boldsymbol{\beta }
β与
x
\boldsymbol{x}
x都是一个
d
d
d维的列向量)
1.1 模型假设
本文始终按照如下假设,后文不再进行叙述:
现
有
n
组
数
据
样
本
点
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
n
,
y
n
)
}
现有n组数据样本点\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),...,(\boldsymbol{x}_n,y_n)\}
现有n组数据样本点{(x1,y1),(x2,y2),...,(xn,yn)}
其
中
x
i
∈
R
d
是
一
个
d
维
的
列
向
量
,
y
i
∈
R
是
一
个
实
数
也
就
是
说
现
在
有
d
个
自
变
量
与
1
个
因
变
量
,
这
种
情
况
被
称
为
M
u
t
i
p
l
e
L
i
n
e
a
r
R
e
g
r
e
s
s
i
o
n
(
多
元
线
性
回
归
)
需
要
警
惕
不
能
与
M
u
l
t
i
v
a
r
i
a
t
e
L
i
n
e
a
r
R
e
g
r
e
s
s
i
o
n
(
因
变
量
y
亦
为
向
量
)
混
淆
其中\boldsymbol{x}_i \in R^d是一个d维的列向量,y_i \in R是一个实数 \\也就是说现在有d个自变量与1个因变量,这种情况被称为Mutiple~Linear~Regression(多元线性回归)\\需要警惕不能与Multivariate~ Linear~ Regression(因变量y亦为向量)混淆
其中xi∈Rd是一个d维的列向量,yi∈R是一个实数也就是说现在有d个自变量与1个因变量,这种情况被称为Mutiple Linear Regression(多元线性回归)需要警惕不能与Multivariate Linear Regression(因变量y亦为向量)混淆
1.2 普通最小二乘法
1.2.1 历史由来
1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。
高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中。
法国科学家勒让德于1806年独立发明“最小二乘法”,但因不为世人所知而默默无闻。勒让德也曾与高斯为谁最早创立最小二乘法原理发生争执。
1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,因此被称为高斯-马尔可夫定理(OLS估计必定为BLUE)。2
1.2.2 最小二乘法的理论依据
相信大家对最小二乘法已经是非常熟悉了,其本质是一个优化模型,找到最优的回归系数
β
0
\beta_0
β0与
β
\boldsymbol{\beta }
β使得以下这个式子取到最小值
S
S
E
=
∑
i
=
1
n
(
y
i
−
β
0
−
β
T
x
i
)
2
SSE=\sum_{i=1}^n{\left( y_i-\beta _0-\boldsymbol{\beta }^{T}\boldsymbol{x}_i \right) ^2}
SSE=i=1∑n(yi−β0−βTxi)2
上面这个式子称为残差平方和,它在标准误差的估计以及线性回归的检验中还有妙用,不过本文仅仅考虑最小二乘法本身而不深究后续的统计推断,故仅需要知道最小二乘法的本质是找到使残差平方和最小的回归系数。
由于样本量
n
n
n也会对残差平方和的大小产生影响,我们不妨以平均残差平方和为探究目标,即以
Q
(
β
0
,
β
)
=
1
n
∑
i
=
1
n
(
y
i
−
β
0
−
β
T
x
i
)
2
Q(\beta_0,\boldsymbol{\beta })=\dfrac{1}{n}\sum_{i=1}^n{\left( y_i-\beta _0-\boldsymbol{\beta }^{T}\boldsymbol{x}_i \right) ^2}
Q(β0,β)=n1i=1∑n(yi−β0−βTxi)2
为目标函数,故最小二乘法的理论模型可以写为:
(
β
0
∗
,
β
∗
)
=
a
r
g
m
i
n
(
β
0
,
β
)
Q
(
β
0
,
β
)
(\beta_0^{*},\boldsymbol{\beta }^*)=argmin_{(\beta_0,\boldsymbol{\beta })}Q(\beta_0,\boldsymbol{\beta })
(β0∗,β∗)=argmin(β0,β)Q(β0,β)
1.2.3 模型的化简
实际上,我们可以假设
x
i
\boldsymbol{x}_i
xi与
y
i
y_i
yi的均值皆为0,即
∑
i
=
1
n
x
i
=
0
,
∑
i
=
1
n
y
i
=
0
\sum_{i=1}^n \boldsymbol{x}_i=\boldsymbol0,\sum_{i=1}^n {y_i}=0
i=1∑nxi=0,i=1∑nyi=0
以便化简模型,下面我们来证明这个假设是可行的
证
明
证明
证明
由
于
原
模
型
是
一
个
无
约
束
优
化
问
题
,
且
其
目
标
函
数
是
个
处
处
可
导
函
数
,
取
到
极
小
值
必
定
有
各
偏
导
为
0
,
那
我
们
不
妨
尝
试
对
常
数
项
系
数
β
0
进
行
求
导
并
令
其
为
0
由于原模型是一个无约束优化问题,且其目标函数是个处处可导函数,取到极小值必定有各偏导为0,那我们不妨尝\\试对常数项系数\beta_0进行求导并令其为0
由于原模型是一个无约束优化问题,且其目标函数是个处处可导函数,取到极小值必定有各偏导为0,那我们不妨尝试对常数项系数β0进行求导并令其为0
令
∂
Q
(
β
0
,
β
)
∂
β
)
=
−
2
n
∑
i
=
1
n
(
y
i
−
β
0
−
β
T
x
i
)
=
0
令\frac{\partial Q(\beta_0,\boldsymbol{\beta })}{\partial \beta_)}=-\frac{2}{n}\sum_{i=1}^n{\left( y_i-\beta _0-\boldsymbol{\beta }^{T}\boldsymbol{x}_i \right)}=0
令∂β)∂Q(β0,β)=−n2i=1∑n(yi−β0−βTxi)=0
解
得
β
0
=
y
ˉ
−
β
T
x
ˉ
将
其
代
回
Q
(
β
0
,
β
)
,
可
得
Q
(
β
)
=
1
n
∑
i
=
1
n
(
(
y
i
−
y
ˉ
)
−
β
T
(
x
i
−
x
ˉ
)
)
2
故
不
妨
假
设
∑
i
=
1
n
x
i
=
0
,
∑
i
=
1
n
y
i
=
0
,
否
则
取
x
i
∗
=
x
i
−
x
ˉ
,
y
i
∗
=
y
i
−
y
ˉ
此
时
仅
需
研
究
一
个
不
含
常
数
项
的
函
数
Q
(
β
)
在
何
时
取
到
最
小
值
,
再
由
回
代
法
求
出
β
0
∗
解得\beta_0=\bar y-\boldsymbol{\beta }^T \bar{\boldsymbol{x}} \\将其代回Q(\beta_0,\boldsymbol{\beta }),可得 \\Q(\boldsymbol{\beta })=\dfrac{1}{n}\sum_{i=1}^n{\left( (y_i-\bar y)-\boldsymbol{\beta }^{T}(\boldsymbol{x}_i - \bar{\boldsymbol{x}})\right)^2} \\故不妨假设\sum_{i=1}^n \boldsymbol{x}_i=\boldsymbol0,\sum_{i=1}^n {y_i}=0,否则取\boldsymbol{x}_i^* = \boldsymbol{x}_i - \bar{\boldsymbol{x}},y_i^*=y_i-\bar y \\此时仅需研究一个不含常数项的函数Q(\boldsymbol{\beta })在何时取到最小值,再由回代法求出\beta_0^*
解得β0=yˉ−βTxˉ将其代回Q(β0,β),可得Q(β)=n1i=1∑n((yi−yˉ)−βT(xi−xˉ))2故不妨假设i=1∑nxi=0,i=1∑nyi=0,否则取xi∗=xi−xˉ,yi∗=yi−yˉ此时仅需研究一个不含常数项的函数Q(β)在何时取到最小值,再由回代法求出β0∗
由上述证明,下文仅仅讨论不含常数项
β
0
\beta_0
β0的模型,即:
β
∗
=
a
r
g
m
i
n
β
1
n
∑
i
=
1
n
(
y
i
−
β
T
x
i
)
2
\boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}~ \dfrac{1}{n}\sum_{i=1}^n{\left( y_i-\boldsymbol{\beta }^{T}\boldsymbol{x}_i \right)^2}
β∗=argminβ n1i=1∑n(yi−βTxi)2
如果记
y
=
[
y
1
,
y
2
,
.
.
.
,
y
n
]
T
∈
R
n
,
X
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
∈
R
n
×
d
\boldsymbol y =[y_1,y_2,...,y_n]^T\in R^n,\boldsymbol{X}=[\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_n]^T \in R^{n\times d}
y=[y1,y2,...,yn]T∈Rn,X=[x1,x2,...,xn]T∈Rn×d,由矩阵知识可知
∑
i
=
1
n
(
y
i
−
β
T
x
i
)
2
=
∥
y
−
X
β
∥
2
2
\sum_{i=1}^n{\left( y_i-\boldsymbol{\beta }^T\boldsymbol{x}_i \right) ^2}=\lVert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta } \rVert _{2}^{2}
i=1∑n(yi−βTxi)2=∥y−Xβ∥22
其中
∥
α
∥
2
\lVert \boldsymbol{\alpha} \rVert _2
∥α∥2被称作向量的L2-范数,不明其意的读者可在下一章节看见其具体含义。
故线性规划模型可简化为:
β
∗
=
a
r
g
m
i
n
β
1
n
∥
y
−
X
β
∥
2
2
\boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}~ \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta } \rVert _{2}^{2}
β∗=argminβ n1∥y−Xβ∥22
二、Ridge Regression(岭回归)与Lasso
一般来说,回归问题是一个函数拟合的过程,那么我们希望模型不要太复杂,否则很容易发生过拟合现象,所以我们要加入正则化项,而不同的正则化项就产生了不同的回归方法,其中以Ridge Regression (岭回归)和Lasso最为经典,前者是加入了L2正则化项,后者加入的是L1正则化项。
2.1 向量的范数
本文先对向量的L1范数和L2范数进行介绍,以便后面的介绍。
∥
α
∥
1
\lVert \boldsymbol{\alpha} \rVert _1
∥α∥1被称为向量的L1范数,
∥
α
∥
2
\lVert \boldsymbol{\alpha} \rVert _2
∥α∥2被称为向量的L2范数
∥
α
∥
1
=
∑
i
=
1
d
∣
a
i
∣
∥
α
∥
2
=
∑
i
=
1
d
a
i
2
\lVert \boldsymbol{\alpha } \rVert _1=\sum_{i=1}^d{\left| a_i \right|} \\ \lVert \boldsymbol{\alpha } \rVert _2= \sqrt{ \sum_{i=1}^d{a_i^2}}
∥α∥1=i=1∑d∣ai∣∥α∥2=i=1∑dai2
2.2 Ridge Regression与Lasso的模型
Ridge Regression与Lasso都是普通线性回归本质上也是优化模型,而前文提到过,相比于普通线性回归,Ridge Regression加入了L2正则化项,Lasso加入了L1正则化项,故它们的目标函数如下:
L
a
s
s
o
:
β
∗
=
a
r
g
m
i
n
β
1
n
∥
y
−
X
β
∥
2
2
+
λ
∥
β
∥
1
R
i
d
g
e
R
e
g
r
e
s
s
i
o
n
:
β
∗
=
a
r
g
m
i
n
β
1
n
∥
y
−
X
β
∥
2
2
+
λ
∥
β
∥
2
2
Lasso: \boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}\ \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2}+\lambda \lVert \boldsymbol{\beta } \rVert _1 \\Ridge~Regression: \boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}\ \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2}+\lambda \lVert \boldsymbol{\beta } \rVert _{2}^{2}
Lasso:β∗=argminβ n1∥y−Xβ∥22+λ∥β∥1Ridge Regression:β∗=argminβ n1∥y−Xβ∥22+λ∥β∥22
2.3 Ridge Regression与Lasso的差异
Ridge Regression与Lasso作为普通线性回归的改进方法,二者的差异仅仅在于加入的正则化项不同,那么二者的差异在何处呢?它们分别能起到什么样的作用?
2.3.1 模型转化
岭回归模型有一个等价的优化问题,即考虑一个带有约束的线性回归问题,其中约束条件是将系数向量
β
\boldsymbol{\beta }
β限制在一个半径为
t
t
t的超球内部,即下面这个模型是与原问题等价的:
β
∗
=
a
r
g
m
i
n
β
1
n
∥
y
−
X
β
∥
2
2
s
.
t
.
∥
β
∥
2
2
≤
t
\boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}\,\,\dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2} \\~ \\ s.t.\ \lVert \boldsymbol{\beta } \rVert _{2}^{2}\le t
β∗=argminβn1∥y−Xβ∥22 s.t. ∥β∥22≤t
证
明
证明
证明
对
上
面
带
约
束
的
优
化
模
型
使
用
广
义
的
拉
格
朗
日
乘
数
法
,
将
其
转
化
为
无
约
束
优
化
问
题
,
便
有
L
(
β
,
λ
)
=
1
n
∥
y
−
X
β
∥
2
2
+
λ
∥
β
∥
2
2
−
λ
t
当
λ
与
t
给
定
时
,
可
以
看
出
L
(
β
,
λ
)
是
R
i
d
g
e
R
e
g
r
e
s
s
i
o
n
的
目
标
函
数
(
λ
t
是
一
个
常
数
)
故
我
们
证
明
了
上
面
的
优
化
模
型
可
推
得
原
问
题
,
又
由
于
所
求
优
化
问
题
是
一
个
凸
优
化
(
线
性
回
归
是
一
个
典
型
的
凸
优
化
问
题
)
,
具
有
强
对
偶
性
,
故
两
个
模
型
等
价
对上面带约束的优化模型使用广义的拉格朗日乘数法,将其转化为无约束优化问题,便有 \\L(\boldsymbol{\beta },\lambda)=\dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2}+\lambda \lVert \boldsymbol{\beta } \rVert _{2}^{2}-\lambda t \\当\lambda与t给定时,可以看出L(\boldsymbol{\beta },\lambda)是Ridge~Regression的目标函数(\lambda t是一个常数) \\ 故我们证明了上面的优化模型可推得原问题,又由于所求优化问题是一个凸优化(线\\性回归是一个典型的凸优化问题),具有强对偶性,故两个模型等价
对上面带约束的优化模型使用广义的拉格朗日乘数法,将其转化为无约束优化问题,便有L(β,λ)=n1∥y−Xβ∥22+λ∥β∥22−λt当λ与t给定时,可以看出L(β,λ)是Ridge Regression的目标函数(λt是一个常数)故我们证明了上面的优化模型可推得原问题,又由于所求优化问题是一个凸优化(线性回归是一个典型的凸优化问题),具有强对偶性,故两个模型等价
同理地,Lasso也有一个带约束形式的等价优化模型:
β
∗
=
a
r
g
m
i
n
β
1
n
∥
y
−
X
β
∥
2
2
s
.
t
.
∥
β
∥
1
≤
t
\boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}\,\,\dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2} \\~ \\ s.t.\ \lVert \boldsymbol{\beta } \rVert _1\le t
β∗=argminβn1∥y−Xβ∥22 s.t. ∥β∥1≤t
2.3.2 二者差异比较
考虑
d
=
2
d=2
d=2的情况,记
β
=
[
β
1
,
β
2
]
T
\boldsymbol{\beta }=[\beta_1,\beta_2]^T
β=[β1,β2]T,给出一组样本数据:
容易验证这组数据是满足均值为0条件的,即
∑
i
=
1
n
x
i
=
0
,
∑
i
=
1
n
y
i
=
0
\sum_{i=1}^n \boldsymbol{x}_i=\boldsymbol0,\sum_{i=1}^n {y_i}=0
i=1∑nxi=0,i=1∑nyi=0
故我们研究不含常数项的回归模型
β
∗
=
a
r
g
m
i
n
β
Q
(
β
)
=
1
n
∥
y
−
X
β
∥
2
2
\boldsymbol{\beta }^*=argmin_{\boldsymbol{\beta }}~Q(\boldsymbol{\beta })= \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta } \rVert _{2}^{2}
β∗=argminβ Q(β)=n1∥y−Xβ∥22
由于此时
β
=
[
β
1
,
β
2
]
T
\boldsymbol{\beta }=[\beta_1,\beta_2]^T
β=[β1,β2]T,则
Q
Q
Q是
β
1
,
β
2
\beta_1,\beta_2
β1,β2的函数,不妨作出其函数图像
可以看出该函数有且仅有一个极小值,为更加直观的观察,我们绘制出其等值线图
等值线中,红色点是
Q
Q
Q的极小值点,同一颜色的圈代表着
Q
Q
Q在该圈上函数值相同,越靠近红色点则
Q
Q
Q的值越小,很显然对于这个问题而已普通线性回归的解就是红色点。
下面我们来看看Ridge Regression与Lasso的解,从它们的带约束条件的优化模型可以看出,在
d
=
2
d=2
d=2场合下,Ridge Regression将可行解约束在一个圆内,而Lasso将可行解约束在一个菱形内,具体情况可见下图:
从上图可以看见,Ridge Regression的最优解在某条等值线与约束圆的切点上取到,而Lasso的最优解通常在约束菱形的端点处取到(即坐标轴上),也就是说Lasso可能会使某个或某些回归系数为0,也就是说达到了“属性约简”或是“特征提取”的效果。而Ridge Regression会导致“权值衰减”。
三、求解方法
从目标函数的表达式就可以看出,普通线性回归与Ridge Regression的目标函数是处处可导的,而Lasso目标函数就没有那么好的性质了。实际上,我们可以给出前两个模型的解析解,而Lasso仅能给出迭代解法。
3.1 矩阵解法
3.1.1 矩阵的迹及其导数
矩阵的迹大家应该非常了解,即对角线元素相加(要求是方阵):
t
r
(
A
)
=
∑
i
=
1
n
a
i
i
tr(A) = \sum_{i=1}^n{a_{ii}}
tr(A)=i=1∑naii
下面介绍矩阵迹的一些性质,仅仅叙述,不加以证明
性质1:
t
r
(
A
B
)
=
t
r
(
B
A
)
tr(AB)=tr(BA)
tr(AB)=tr(BA)
性质2:
∂
t
r
(
A
B
)
∂
(
A
)
=
∂
t
r
(
B
A
)
∂
(
A
)
=
B
T
\dfrac{\partial tr(AB)}{\partial(A)}=\dfrac{\partial tr(BA)}{\partial(A)}=B^T
∂(A)∂tr(AB)=∂(A)∂tr(BA)=BT
性质3:
∂
t
r
(
A
T
B
)
∂
(
A
)
=
∂
t
r
(
B
A
T
)
∂
(
A
)
=
B
\dfrac{\partial tr(A^TB)}{\partial(A)}=\dfrac{\partial tr(BA^T)}{\partial(A)}=B
∂(A)∂tr(ATB)=∂(A)∂tr(BAT)=B
性质4:
∂
t
r
(
A
T
B
)
∂
(
A
)
=
∂
t
r
(
B
A
T
)
∂
(
A
)
=
B
\dfrac{\partial tr(A^TB)}{\partial(A)}=\dfrac{\partial tr(BA^T)}{\partial(A)}=B
∂(A)∂tr(ATB)=∂(A)∂tr(BAT)=B
性质5:
∂
t
r
(
A
T
A
)
∂
(
A
)
=
∂
t
r
(
A
A
T
)
∂
(
A
)
=
2
A
\dfrac{\partial tr(A^TA)}{\partial(A)}=\dfrac{\partial tr(AA^T)}{\partial(A)}=2A
∂(A)∂tr(ATA)=∂(A)∂tr(AAT)=2A
性质6:
∂
t
r
(
A
T
B
A
)
∂
(
A
)
=
(
B
+
B
T
)
A
\dfrac{\partial tr(A^TBA)}{\partial(A)}=(B+B^T)A
∂(A)∂tr(ATBA)=(B+BT)A
性质7:
∂
t
r
(
A
B
A
T
)
∂
(
A
)
=
A
(
B
+
B
T
)
\dfrac{\partial tr(ABA^T)}{\partial(A)}=A(B+B^T)
∂(A)∂tr(ABAT)=A(B+BT)
性质8:
∂
t
r
(
B
A
A
T
B
T
)
∂
(
A
)
=
(
A
T
B
T
B
)
T
+
B
T
B
A
=
2
B
T
B
A
\dfrac{\partial tr(BAA^TB^T)}{\partial(A)}=(A^TB^TB)^T+B^TBA=2B^TBA
∂(A)∂tr(BAATBT)=(ATBTB)T+BTBA=2BTBA
向量的L2-范数与矩阵的迹有着密不可分的关系,容易证明下式:
若
α
是
d
维
列
向
量
,
则
有
∥
α
∥
2
2
=
α
T
α
=
t
r
(
α
α
T
)
若\boldsymbol{\alpha}是d维列向量,则有 \\ \lVert \boldsymbol{\alpha} \rVert_{2}^2=\boldsymbol{\alpha}^T \boldsymbol{\alpha} =tr(\boldsymbol{\alpha}\boldsymbol{\alpha}^T)
若α是d维列向量,则有∥α∥22=αTα=tr(ααT)
3.1.2 最小二乘法的矩阵解
由向量L2-范数与矩阵迹的关系,可以将最小二乘法的目标函数改写为:
Q
(
β
)
=
1
n
∥
y
−
X
β
∥
2
2
=
1
n
t
r
[
(
y
−
X
β
)
(
y
−
X
β
)
T
]
=
1
n
t
r
[
(
y
−
X
β
)
(
y
T
−
β
T
X
T
)
]
=
1
n
t
r
[
y
y
T
−
y
β
T
X
T
−
X
β
y
T
+
X
β
β
T
X
T
]
Q(\boldsymbol{\beta })= \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta } \rVert _{2}^{2}=\dfrac{1}{n}tr[(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta })(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta })^T] \\ =\dfrac{1}{n}tr[(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta })(\boldsymbol{y}^T-\boldsymbol{\beta}^T\boldsymbol{X}^T)] \\ = \dfrac{1}{n} tr[\boldsymbol{y}\boldsymbol{y}^T-\boldsymbol{y}\boldsymbol{\beta}^T\boldsymbol{X}^T-\boldsymbol{X}\boldsymbol{\beta }\boldsymbol{y}^T+\boldsymbol{X}\boldsymbol{\beta }\boldsymbol{\beta}^T\boldsymbol{X}^T]
Q(β)=n1∥y−Xβ∥22=n1tr[(y−Xβ)(y−Xβ)T]=n1tr[(y−Xβ)(yT−βTXT)]=n1tr[yyT−yβTXT−XβyT+XββTXT]
再
令
∂
Q
(
β
)
∂
β
=
1
n
∂
t
r
[
y
y
T
−
y
β
T
X
T
−
X
β
y
T
+
X
β
β
T
X
T
]
∂
β
=
1
n
[
0
−
X
T
y
−
X
T
y
+
2
X
T
X
β
]
=
2
n
(
X
T
X
β
−
X
T
y
)
=
0
再令\dfrac{\partial Q(\boldsymbol{\beta })}{\partial\boldsymbol{\beta }}=\dfrac{1}{n} \dfrac{\partial{tr[\boldsymbol{y}\boldsymbol{y}^T-\boldsymbol{y}\boldsymbol{\beta}^T\boldsymbol{X}^T-\boldsymbol{X}\boldsymbol{\beta }\boldsymbol{y}^T+\boldsymbol{X}\boldsymbol{\beta }\boldsymbol{\beta}^T\boldsymbol{X}^T]}}{\partial\boldsymbol{\beta }} \\ = \dfrac{1}{n} [0-\boldsymbol X^T\boldsymbol y-\boldsymbol X^T\boldsymbol y+2\boldsymbol X^T\boldsymbol X\boldsymbol \beta] \\ = \dfrac{2}{n} (\boldsymbol X^T\boldsymbol X\boldsymbol \beta-\boldsymbol X^T\boldsymbol y)=0
再令∂β∂Q(β)=n1∂β∂tr[yyT−yβTXT−XβyT+XββTXT]=n1[0−XTy−XTy+2XTXβ]=n2(XTXβ−XTy)=0
得
β
O
L
S
=
(
X
T
X
)
−
1
X
T
y
得\boldsymbol \beta^{OLS}=(\boldsymbol X^T\boldsymbol X)^{-1}\boldsymbol X^T\boldsymbol y
得βOLS=(XTX)−1XTy
3.1.3 Ridge Regression的矩阵解
从最小二乘法解的形式可以看出,要求
X
T
X
\boldsymbol X^T\boldsymbol X
XTX是一个非奇异阵,即要求影响变量之间不存在共线性,一旦变量之间出现了共线性,最小二乘法就难以实施,Ridge Regression就此而生。
同样地,将Ridge Regression的目标函数写为
R
(
β
)
=
1
n
∥
y
−
X
β
∥
2
2
+
λ
∥
β
∥
2
2
=
Q
(
β
)
+
λ
t
r
(
β
β
T
)
R({\boldsymbol{\beta }}) =\ \dfrac{1}{n}\lVert \boldsymbol{y}-\boldsymbol{X\beta } \rVert _{2}^{2}+\lambda \lVert \boldsymbol{\beta } \rVert _{2}^{2} \\ = Q(\boldsymbol{\beta })+\lambda tr(\boldsymbol{\beta } \boldsymbol{\beta } ^T)
R(β)= n1∥y−Xβ∥22+λ∥β∥22=Q(β)+λtr(ββT)
令
∂
R
(
β
)
∂
β
=
∂
Q
(
β
)
∂
β
+
λ
∂
t
r
(
β
β
T
)
∂
β
=
2
n
(
X
T
X
β
−
X
T
y
)
+
2
λ
β
=
0
令\dfrac{\partial R(\boldsymbol{\beta })}{\partial\boldsymbol{\beta }}=\dfrac{\partial Q(\boldsymbol{\beta })}{\partial\boldsymbol{\beta }}+\lambda\dfrac{\partial{tr(\boldsymbol{\beta}\boldsymbol{\beta}^T)}}{\partial{\boldsymbol{\beta}}} \\ = \dfrac{2}{n} (\boldsymbol X^T\boldsymbol X\boldsymbol \beta-\boldsymbol X^T\boldsymbol y)+2\lambda\boldsymbol \beta=0
令∂β∂R(β)=∂β∂Q(β)+λ∂β∂tr(ββT)=n2(XTXβ−XTy)+2λβ=0
得
β
R
i
d
g
e
=
(
X
T
X
+
λ
n
I
)
−
1
X
T
y
得\boldsymbol{\beta}^{Ridge}=(\boldsymbol X^T\boldsymbol X+\lambda n \boldsymbol I)^{-1}\boldsymbol X^T\boldsymbol y
得βRidge=(XTX+λnI)−1XTy
可以看见,通过适当的选择
λ
\lambda
λ的值,可以使得原本是奇异阵的
X
T
X
\boldsymbol X^T\boldsymbol X
XTX变为一个可逆矩阵
X
T
X
+
λ
n
I
\boldsymbol X^T\boldsymbol X+\lambda n \boldsymbol I
XTX+λnI,而
λ
\lambda
λ的值可以人为设定,称为岭回归的参数(也有时称
α
=
λ
n
\alpha=\lambda n
α=λn为岭回归参数),从模型中可以看出,
λ
\lambda
λ越大则对正则化约束越为看重,当
λ
\lambda
λ较小时,可以得到一个与线性回归几乎一样的解。
3.2 Lasso的求解方法
3.2.1 解析解法
Lasso的目标函数不是一个处处可导的函数,且对向量的L1-范数求导需要引入次梯度的概念,且还需要假设
X
T
X
=
I
\boldsymbol X^T\boldsymbol X=\boldsymbol I
XTX=I,也就是任意两个特征向量相互正交,才能导出Lasso的解析解,由于条件过于苛刻,在实际运用中几乎不可能用到解析解,在此仅仅给出结论,省去推导过程。
β
i
L
a
s
s
o
=
s
i
g
n
(
β
i
O
L
S
)
(
∣
β
i
O
L
S
∣
−
λ
n
2
)
+
\beta_{i}^{Lasso}=sign(\beta_i^{OLS})(|\beta_i^{OLS}|-\dfrac{\lambda n}{2})_+
βiLasso=sign(βiOLS)(∣βiOLS∣−2λn)+
注:其中
s
i
g
n
sign
sign表示符号函数,
(
x
)
+
(x)_+
(x)+表示
x
x
x的正部
3.2.2 数值解法
坐标下降法是用来求解Lasso的一个经典方法,它适用于在1维场合容易解决但高维场合难以解决的问题,下面对算法进行叙述
S
t
e
p
1
:
随
机
化
确
定
β
(
0
)
=
(
β
1
(
0
)
,
β
2
(
0
)
,
.
.
.
,
β
d
(
0
)
)
Step1:随机化确定\boldsymbol \beta ^{(0)} = (\beta_1^{(0)},\beta_2^{(0)},...,\beta_d^{(0)})
Step1:随机化确定β(0)=(β1(0),β2(0),...,βd(0))
S
t
e
p
2
:
假
设
现
在
有
β
(
k
)
=
(
β
1
(
k
)
,
β
2
(
k
)
,
.
.
.
,
β
d
(
k
)
)
,
则
根
据
如
下
公
式
进
行
迭
代
:
β
i
(
k
+
1
)
=
a
r
g
m
i
n
β
i
L
(
β
1
(
k
)
,
β
2
(
k
)
,
.
.
.
,
β
i
−
1
(
k
)
,
β
i
,
β
i
+
1
(
k
)
,
.
.
.
,
β
d
(
k
)
)
,
这
里
L
是
L
a
s
s
o
的
目
标
函
数
(
也
就
是
说
此
时
只
有
β
i
是
变
量
,
其
他
都
为
常
量
,
是
一
个
一
维
搜
索
问
题
,
可
采
用
一
维
搜
索
方
法
求
解
或
直
接
使
用
3.2.1
中
提
到
的
解
析
解
)
Step2:假设现在有\boldsymbol \beta ^{(k)} = (\beta_1^{(k)},\beta_2^{(k)},...,\beta_d^{(k)}),则根据如下公式进行迭代: \\ \beta_i^{(k+1)}=argmin_{\beta_i}~L(\beta_1^{(k)},\beta_2^{(k)},...,\beta_{i-1}^{(k)},\beta_i,\beta_{i+1}^{(k)},...,\beta_d^{(k)}),这里L是Lasso的目标函数\\(也就是说此时只有\beta_i是变量,其他都为常量,是一个一维搜索问题,可采用一维搜索方法求解或直接使用3.2.1中\\提到的解析解)
Step2:假设现在有β(k)=(β1(k),β2(k),...,βd(k)),则根据如下公式进行迭代:βi(k+1)=argminβi L(β1(k),β2(k),...,βi−1(k),βi,βi+1(k),...,βd(k)),这里L是Lasso的目标函数(也就是说此时只有βi是变量,其他都为常量,是一个一维搜索问题,可采用一维搜索方法求解或直接使用3.2.1中提到的解析解)
S
t
e
p
3
:
对
∀
i
,
若
∣
β
i
(
k
+
1
)
−
β
i
(
k
)
∣
<
ϵ
,
则
跳
出
循
环
,
否
则
回
到
S
t
e
p
2
Step3:对\forall i,若|\beta_i^{(k+1)}-\beta_i^{(k)}|<\epsilon,则跳出循环,否则回到Step2
Step3:对∀i,若∣βi(k+1)−βi(k)∣<ϵ,则跳出循环,否则回到Step2
四、程序实现
下面介绍一下如何用Matlab软件实现上述模型。先给出一个背景,我们来研究这样一个问题:
例1 :财政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关。下表列出了1952-1981年的原始数据,试构造预测模型。
4.1 线性回归
只要你的Matlab版本不低于2012,那么它就帮你集成了lasso这个函数(线性回归与Ridge Regression更是在更老的版本就有了),先从最简单的线性回归说起。
线性回归在Matlab中的命令为regress,其基本用法为:
b = regress(y,X)
其中y为因变量组成的列向量,X为自变量组成的矩阵(还有更多用法,读者请自行探索)
%% 读取数据
data = [1952 598 349 461 57482 20729 44 184
1953 586 455 475 58796 21364 89 216
1954 707 520 491 60266 21832 97 248
1955 737 558 529 61465 22328 98 254
1956 825 715 556 62828 23018 150 268
1957 837 798 575 64653 23711 139 286
1958 1028 1235 598 65994 26600 256 357
1959 1114 1681 509 67207 26173 338 444
1960 1079 1870 444 66207 25880 380 506
1961 757 1156 434 65859 25590 138 271
1962 677 964 461 67295 25110 66 230
1963 779 1046 514 69172 26640 85 266
1964 943 1250 584 70499 27736 129 323
1965 1152 1581 632 72538 28670 175 393
1966 1322 1911 687 74542 29805 212 466
1967 1249 1647 697 76368 30814 156 352
1968 1187 1565 680 78534 31915 127 303
1969 1372 2101 688 80671 33225 207 447
1970 1638 2747 767 82992 34432 312 564
1971 1780 3156 790 85229 35620 355 638
1972 1833 3365 789 87177 35854 354 658
1973 1978 3684 855 89211 36652 374 691
1974 1993 3696 891 90859 37369 393 655
1975 2121 4254 932 92421 38168 462 692
1976 2052 4309 955 93717 38834 443 657
1977 2189 4925 971 94974 39377 454 723
1978 2475 5590 1058 96259 39856 550 922
1979 2702 6065 1150 97542 40581 564 890
1980 2791 6592 1194 98705 41896 568 826
1981 2927 6862 1273 100072 73280 496 810];
%% 数据处理
x = data(1:end-5,2:end-1); % 留5个用于预测
y = data(1:end-5,end); % 留5个用于预测
X = [ones(size(y)) x]; % 加上常数项
b_OLS = regress(y,X) % 线性回归
运行结果为:
【output】
b_OLS =
365.5804
0.5610
0.0137
-0.5819
-0.0021
-0.0050
0.0713
即 β 0 = 365.5804 , β 1 = ( 0.5610 , 0.0137 , − 0.5819 , − 0.0021 , − 0.0050 , 0.0713 ) T \beta_0=365.5804,\boldsymbol{\beta_1}=(0.5610,0.0137,-0.5819,-0.0021,-0.0050,0.0713)^T β0=365.5804,β1=(0.5610,0.0137,−0.5819,−0.0021,−0.0050,0.0713)T
4.2 Ridge Regression
b = ridge(y,X,k,scaled)
这是岭回归的命令,其中y表示因变量组成的向量,X表示自变量组成的向量(无需带有常数项),k为岭回归参数,scaled表示是否输出标准化系数(0为否,1为是)
b_Ridge = ridge(y,x,1,0) % Ridge
首先选用岭回归参数=1进行岭回归,可以发现结果与线性回归相去甚远
【output】
b_Ridge =
47.0837
0.1266
0.0305
-0.0705
0.0006
0.0017
0.5002
若选用岭回归参数=0.001,输出结果为:
b_Ridge =
363.9392
0.5577
0.0140
-0.5781
-0.0021
-0.0049
0.0744
这个结果与线性回归的结果非常接近了!