回归分析是机器学习里面基本的算法,最小二乘估计,岭回归与矩阵的Moore有着内在联系。为方便说明,假定设计矩阵(高维样本的自变量样本值矩阵,也称自变量)为 X∈Rn∗p X ∈ R n ∗ p ,因变量为 Y∈Rn∗1 Y ∈ R n ∗ 1 ,其线性回归模型为 Y=X∗β,β∈Rp Y = X ∗ β , β ∈ R p .
一 最小二乘估计
最小二乘估计来自于最小化损失函数:
可以看到,损失函数是参数 β β 的二次函数。最小化目标函数 Q(β) Q ( β ) ,只需要将损失函数对参数求导即可:
求得
β=(XTX)−1XTY
β
=
(
X
T
X
)
−
1
X
T
Y
,这就是最小二乘法的解法。
但是问题是
XTX
X
T
X
可能接近于零或者等于零,是一个病态矩阵,求逆在数值上不稳定,
X
X
的微小变化将导致巨大变化,或者根本无法求逆。因此可能无法求得的参数
β
β
,或者
β
β
不稳定。
荐于以上情况,将
β=(XTX)−1XTY
β
=
(
X
T
X
)
−
1
X
T
Y
改为
β=(XTX+λI)−1XTY
β
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
,这就岭回归。
二 岭回归
在最小二乘法的基础上化解
XTX
X
T
X
病态问题而引入超参数
λ
λ
。将岭回归还原到目标函数,有:
对比(1)(2)两式,可以发现,岭回归实际上是在最小二乘法最小化损失函数上加了一个正则化项::
三 Moore逆
任意一个矩阵 X X ,求解线性方程组,已知 Y,X Y , X 求解 β β 。如果存在 A∈Rp∗n A ∈ R p ∗ n 使得 AY=b A Y = b ,则有 AY=AXβ=β→AX=I A Y = A X β = β → A X = I 称 A A 是广义逆矩阵。
然而广义逆矩阵不一定存在,当X的秩 Rank(X)<p R a n k ( X ) < p 时任意矩阵 A∈Rp∗n A ∈ R p ∗ n 都有 Rank(AX)<p R a n k ( A X ) < p ,不存在 A∈Rp∗n A ∈ R p ∗ n 使得 AX=I A X = I 。只有当 Rank(X)=p R a n k ( X ) = p 时广义逆矩阵才存在。因为广义逆矩阵不一定存在,放弃 AX=I A X = I 这一要求,模岭回归可定义一个更广泛的逆矩阵。
Moore逆矩阵:任意一个矩阵 X∈Rn∗p X ∈ R n ∗ p ,定义其Moore逆矩阵为: A=(XTX+λI)−1XT A = ( X T X + λ I ) − 1 X T
从定义中我们可以看出,Moore逆与岭回归中求解参数式 β=(XTX+λI)−1XTY β = ( X T X + λ I ) − 1 X T Y 一致,因此通过Moore逆矩阵求得的 β^=AY β ^ = A Y ,一定会最小化(3)式的损失函数 Q′(β) Q ′ ( β ) 。
根据线性方程组理论,对于解线性方程组 Y=Xβ Y = X β ,令: β^=AY β ^ = A Y :
1. 当 Y=Xβ Y = X β 有解时,有 Q′(β^)=0+12λβ^Tβ^ Q ′ ( β ^ ) = 0 + 1 2 λ β ^ T β ^ ,有 ∑pi=1β^2i ∑ i = 1 p β ^ i 2 最小。
2. 当 Y=Xβ Y = X β 无解时,有 limλ→0Q′(β^)=12(Y−X∗β^)T(Y−X∗β^)=Q(β^)>0 lim λ → 0 Q ′ ( β ^ ) = 1 2 ( Y − X ∗ β ^ ) T ( Y − X ∗ β ^ ) = Q ( β ^ ) > 0 ,模型误差最小。
在实际数值计算中,并不采用Moore的定义公式计算Moore逆,而是通过求解A的SVD分解来计算:
设:
X=UDVT
X
=
U
D
V
T
,
D
D
是对角矩阵(非对角元素为零),则有:
令 H=(D2−λI)−1D H = ( D 2 − λ I ) − 1 D ,则有:
因此,计算 X X 的Moore逆,首先需要将X进行SVD分解,将D的每个对角线元素做映射 ,即 H=D(D2+λI)−1 H = D ( D 2 + λ I ) − 1 ,得到H的对角线元素值。然后按照(4)式相乘即可。
四 岭回归超参数含义
4.1 影响回归模型的解释性能
注意
λ
λ
来自于损失函数
Q′(β)=12(Y−X∗β)T(Y−X∗β)+12λβTb
Q
′
(
β
)
=
1
2
(
Y
−
X
∗
β
)
T
(
Y
−
X
∗
β
)
+
1
2
λ
β
T
b
中后面一项
12λβTb
1
2
λ
β
T
b
,称之为损失函数的正则化项,且有:
对坐标做旋转,选取
Z=UTY,X^=UTX=DVT→X^X^T=D2
Z
=
U
T
Y
,
X
^
=
U
T
X
=
D
V
T
→
X
^
X
^
T
=
D
2
,则损失函数可以表示为:
从坐标旋转后的空间来看,
- 当 dii=0 d i i = 0 时,表示 X^ X ^ 在方向 Ui U i 分量值为零, Z Z 在该子方向的方差是,所以有 λd2ii+λz2i=z2i λ d i i 2 + λ z i 2 = z i 2 ,可知在该子方向上,因变量的方差不能被模型解释;
- 当 dii≠0 d i i ≠ 0 时在 Ui U i 方向上被解释方差为 z2i−λd2ii+λz2i=d2ii/(d2ii+λ)z2i z i 2 − λ d i i 2 + λ z i 2 = d i i 2 / ( d i i 2 + λ ) z i 2 ,说明自变量在该方向上方差越大,解析因变量方差越多,但同时 λ λ 越大,模型解释能力越差。
- 因此超参数在保证数值稳定的情况下,应当尽量设置一个较小的值,提高模型的解释能力。
4.2 损失函数在参数解附近的性质
考察损失函数在
β^
β
^
附近的海塞矩阵有:
同上,经坐标旋转后有:
损失函数在 β^ β ^ 附近的,沿任意特征方向 Ui U i 的曲率正比于 1/(d2ii+λ) 1 / ( d i i 2 + λ ) , λ λ 越大,损失函数在此点 β^ β ^ 附近越平坦;当 λ=0 λ = 0 时该损失函数退化到最小二乘法,解也退化到最小二乘法的解,此时曲率最大。
岭回归倾向于把模型参数的解往更平坦的地方移动。一般而言,任意损失函数添加二次正则项 λβTβ λ β T β ,都会使得解往更平坦的地方移动。