回归分析是机器学习里面基本的算法,最小二乘估计,岭回归与矩阵的Moore有着内在联系。为方便说明,假定设计矩阵(高维样本的自变量样本值矩阵,也称自变量)为 X∈Rn∗p X ∈ R n ∗ p ,因变量为 Y∈Rn∗1 Y ∈ R n ∗ 1 ,其线性回归模型为 Y=X∗β,β∈Rp Y = X ∗ β , β ∈ R p .
一 最小二乘估计
最小二乘估计来自于最小化损失函数:
Q(β)=12(Y−Xβ)T(Y−Xβ) Q ( β ) = 1 2 ( Y − X β ) T ( Y − X β )
可以看到,损失函数是参数
β β 的二次函数。最小化目标函数
Q(β) Q ( β ) ,只需要将损失函数对参数求导即可:
∂Q(β)∂β=XT(Y−Xβ)=0⇒β=(XTX)−1XTY(1) ∂ Q ( β ) ∂ β = X T ( Y − X β ) = 0 ⇒ β = ( X T X ) − 1 X T Y ( 1 )
求得 β=(XTX)−1XTY β = ( X T X ) − 1 X T Y ,这就是最小二乘法的解法。
但是问题是 XTX X T X 可能接近于零或者等于零,是一个病态矩阵,求逆在数值上不稳定, X X 的微小变化将导致 (XTX)−1 ( X T X ) − 1 巨大变化,或者根本无法求逆。因此可能无法求得的参数 β β ,或者 β β 不稳定。
荐于以上情况,将 β=(XTX)−1XTY β = ( X T X ) − 1 X T Y 改为 β=(XTX+λI)−1XTY β = ( X T X + λ I ) − 1 X T Y ,这就岭回归。
二 岭回归
在最小二乘法的基础上化解 XTX X T X 病态问题而引入超参数 λ λ 。将岭回归还原到目标函数,有:
β=(XTX+λI)−1XTY⇒(XTX+λI)β=XTY⇒XTXβ+λβ−XTY=0⇒XT(Xβ−Y)+λβ=0(2) β = ( X T X + λ I ) − 1 X T Y ⇒ ( X T X + λ I ) β = X T Y ⇒ X T X β + λ β − X T Y = 0 ⇒ X T ( X β − Y ) + λ β = 0 ( 2 )
对比(1)(2)两式,可以发现,岭回归实际上是在最小二乘法最小化损失函数上加了一个正则化项::
Q′(β)=12(Y−X∗β)T(Y−X∗β)+12λβTβ(3) Q ′ ( β ) = 1 2 ( Y − X ∗ β ) T ( Y − X ∗ β ) + 1 2 λ β T β ( 3 )
三 Moore逆
任意一个矩阵 X X ,求解线性方程组 Y=Xβ Y = 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 X 广义逆矩阵。
然而广义逆矩阵不一定存在,当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 是对角矩阵(非对角元素为零),则有:
A=(XTX+λI)−1XT=(VDUTUDVT−λI)−1VDUT=(VD2VT−λI)−1VDUT=(V(D2−λI)VT)−1VDUT=V(D2−λI)−1VTVDUT=V(D2−λI)−1DUT A = ( X T X + λ I ) − 1 X T = ( V D U T U D V T − λ I ) − 1 V D U T = ( V D 2 V T − λ I ) − 1 V D U T = ( V ( D 2 − λ I ) V T ) − 1 V D U T = V ( D 2 − λ I ) − 1 V T V D U T = V ( D 2 − λ I ) − 1 D U T
令
H=(D2−λI)−1D H = ( D 2 − λ I ) − 1 D ,则有:
A=VHUT(4) A = V H U T ( 4 )
因此,计算
X X 的Moore逆,首先需要将X进行SVD分解,将D的每个对角线元素做映射
dii→diid2ii+λ≡hii d i i → d i i d i i 2 + λ ≡ h i i ,即
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 ,称之为损失函数的正则化项,且有:
2Q′(β^)=(Y−X∗β^)T(Y−X∗β^)+λβ^Tβ^=(Y−X∗AY)T(Y−X∗AY)+λ(AY)T(AY)=YT[(I−XA)T(I−XA)+λATA]Y=YT[(I−ATXT−XA+ATXTXA+λATA]Y=YT[(I−UHDUT−UDHUT+UD2H2UT+λUH2UT]Y=YTU[(I−2HD+D2H2+λH2]UTY=YTU[(I−2D(D2+λI)−1D+D2(D(D2+λI)−1)2+λ(D(D2+λI)−1)2]UTY=YTU[(I−2D2(D2+λI)−1+D2D2((D2+λI)−1)2+λD2((D2+λI)−1)2]UTY=YTU[(I−D2(D2+λI)−1]UTY=YTU[λI(D2+λI)−1]UTY=λYTU[(D2+λI)−1]UTY 2 Q ′ ( β ^ ) = ( Y − X ∗ β ^ ) T ( Y − X ∗ β ^ ) + λ β ^ T β ^ = ( Y − X ∗ A Y ) T ( Y − X ∗ A Y ) + λ ( A Y ) T ( A Y ) = Y T [ ( I − X A ) T ( I − X A ) + λ A T A ] Y = Y T [ ( I − A T X T − X A + A T X T X A + λ A T A ] Y = Y T [ ( I − U H D U T − U D H U T + U D 2 H 2 U T + λ U H 2 U T ] Y = Y T U [ ( I − 2 H D + D 2 H 2 + λ H 2 ] U T Y = Y T U [ ( I − 2 D ( D 2 + λ I ) − 1 D + D 2 ( D ( D 2 + λ I ) − 1 ) 2 + λ ( D ( D 2 + λ I ) − 1 ) 2 ] U T Y = Y T U [ ( I − 2 D 2 ( D 2 + λ I ) − 1 + D 2 D 2 ( ( D 2 + λ I ) − 1 ) 2 + λ D 2 ( ( D 2 + λ I ) − 1 ) 2 ] U T Y = Y T U [ ( I − D 2 ( D 2 + λ I ) − 1 ] U T Y = Y T U [ λ I ( D 2 + λ I ) − 1 ] U T Y = λ Y T U [ ( D 2 + λ I ) − 1 ] U T Y
对坐标做旋转,选取 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 ,则损失函数可以表示为:
2Q′(β^)=∑i=1nλd2ii+λz2i 2 Q ′ ( β ^ ) = ∑ i = 1 n λ d i i 2 + λ z i 2
从坐标旋转后的空间来看,
- 当 dii=0 d i i = 0 时,表示 X^ X ^ 在方向 Ui U i 分量值为零, Z Z 在该子方向的方差是 z2i z i 2 ,所以有 λ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 损失函数在参数解附近的性质
考察损失函数在 β^ β ^ 附近的海塞矩阵有:
∂2Q′(β)∂β∂βT∣∣∣β=β^=XTX+λI=U(D2+λI)UT ∂ 2 Q ′ ( β ) ∂ β ∂ β T | β = β ^ = X T X + λ I = U ( D 2 + λ I ) U T
同上,经坐标旋转后有:
∂2Q′(β^)∂β∂βT=D2+λI ∂ 2 Q ′ ( β ^ ) ∂ β ∂ β T = D 2 + λ I
损失函数在
β^ β ^ 附近的,沿任意特征方向
Ui U i 的曲率正比于
1/(d2ii+λ) 1 / ( d i i 2 + λ ) ,
λ λ 越大,损失函数在此点
β^ β ^ 附近越平坦;当
λ=0 λ = 0 时该损失函数退化到最小二乘法,解也退化到最小二乘法的解,此时曲率最大。
岭回归倾向于把模型参数的解往更平坦的地方移动。一般而言,任意损失函数添加二次正则项 λβTβ λ β T β ,都会使得解往更平坦的地方移动。