5.4 加权最小二乘法
最小二乘法是使 ∑ i ( b i − a r i T x ) 2 \sum_i (b_i-\mathbf{a}^T_{ri}\mathbf{x})^2 ∑i(bi−ariTx)2 最小,这表明每次测量的重要性一样,但实际中有时存在某些测量更重要,某些更不重要。以第一个例子为例说明,假设测量直径,用了两个精度不同的设备各测一次,分别为 d h , d l d_h,d_l dh,dl ,设备的测量精度即方差分别为 σ h 2 , σ l 2 \sigma^2_h,\sigma^2_l σh2,σl2 ,设备精度越高方差越小。如何综合这两个测量结果来获得比仅用高精度设备更好的结果?如果设备精度相同,则结果为 D = ( d h + d l ) / 2 D=(d_h+d_l)/2 D=(dh+dl)/2 ,即这两个测量权重相同。如果精度不同,则显然精度高的权重要大,权重要与精度成正比,所以测量结果应该为 D = σ l 2 σ h 2 + σ l 2 d h + σ h 2 σ h 2 + σ l 2 d l D= \frac {\sigma^2_l} {\sigma^2_h+\sigma^2_l}d_h + \frac {\sigma^2_h} {\sigma^2_h+\sigma^2_l}d_l D=σh2+σl2σl2dh+σh2+σl2σh2dl ,该估计值方差为 σ 2 ( D ) = ( σ l 2 σ h 2 + σ l 2 ) 2 σ h 2 + ( σ h 2 σ h 2 + σ l 2 ) 2 σ l 2 = σ h 2 σ l 2 σ h 2 + σ l 2 \sigma^2(D)=(\frac {\sigma^2_l} {\sigma^2_h+\sigma^2_l})^2\sigma^2_h + (\frac {\sigma^2_h} {\sigma^2_h+\sigma^2_l})^2\sigma^2_l=\frac {\sigma^2_h\sigma^2_l}{\sigma^2_h+\sigma^2_l} σ2(D)=(σh2+σl2σl2)2σh2+(σh2+σl2σh2)2σl2=σh2+σl2σh2σl2 ,此值小于 σ h 2 \sigma^2_h σh2 ,这说明估计值的精度高于 d h d_h dh 。
假设每次测量精度不同,方差为 σ i 2 \sigma^2_i σi2 ,则此时应该使 ∑ i 1 σ i 2 ( b i − a r i T x ) 2 \sum_i \frac {1}{\sigma^2_i} (b_i-\mathbf{a}^T_{ri}\mathbf{x})^2 ∑iσi21(bi−ariTx)2 最小,即精度高的测量权重要大。根据前面结果知 ∑ i ( b i − a r i T x ) 2 = ( b − A x ) T ( b − A x ) \sum_i (b_i-\mathbf{a}^T_{ri}\mathbf{x})^2=(\mathbf{b}-Ax)^T(\mathbf{b}-A\mathbf{x}) ∑i(bi−ariTx)2=(b−Ax)T(b−Ax) 即向量 b − A x \mathbf{b}-A\mathbf{x} b−Ax 的内积,也就是向量 b \mathbf{b} b 到子空间 c o l A col A colA 的距离平方。现在要求加权距离平方的最小值,加权距离平方可以通过矩阵获得!令对角阵为: D = d i a g ( 1 σ 1 2 , 1 σ 2 2 , ⋯ , 1 σ n 2 ) D =diag(\frac{1}{\sigma^2_1},\frac{1}{\sigma^2_2},\cdots,\frac{1}{\sigma^2_n}) D=diag(σ121,σ221,⋯,σn21) , F = d i a g ( 1 σ 1 , 1 σ 2 , ⋯ , 1 σ n ) F =diag(\frac{1}{\sigma_1},\frac{1}{\sigma_2},\cdots,\frac{1}{\sigma_n}) F=diag(σ11,σ21,⋯,σn1) ,则 D = F T F D=F^TF D=FTF
∑ i 1 σ i 2 ( b i − a r i T x ) 2 = ( b − A x ) T D ( b − A x ) = ( b − A x ) T F T F ( b − A x ) = ( F b − ( F A ) x ) T ( F b − ( F A ) x ) \sum_i \frac {1}{\sigma^2_i} (b_i-\mathbf{a}^T_{ri}\mathbf{x})^2=\\ (\mathbf{b}-A\mathbf{x})^TD(\mathbf{b}-A\mathbf{x})=\\ (\mathbf{b}-A\mathbf{x})^TF^TF(\mathbf{b}-A\mathbf{x})=\\ (F\mathbf{b}-(FA)\mathbf{x})^T(F\mathbf{b}-(FA)\mathbf{x}) i∑σi21(bi−ariTx)2=(b−Ax)TD(b−Ax)=(b−Ax)TFTF(b−Ax)=(Fb−(FA)x)T(Fb−(FA)x)
令 b ′ = F b \mathbf{b'}=F\mathbf{b} b′=Fb , A ′ = F A A'=FA A′=FA ,则上式为 ( b ′ − A ′ x ) T ( b ′ − A ′ x ) (\mathbf{b'}-A'\mathbf{x})^T(\mathbf{b'}-A'\mathbf{x}) (b′−A′x)T(b′−A′x) ,要最小,则近似解为
x ^ = ( A ′ T A ′ ) − 1 A ′ T b ′ = ( ( F A ) T F A ) − 1 ( F A ) T F b = ( A T F T F A ) − 1 A T F T F b = ( A T D A ) − 1 A T D b \mathbf{\hat{x}} = (A'^TA')^{-1}A'^T\mathbf{b'}=\\ ((FA)^TFA)^{-1}(FA)^TF\mathbf{b}=\\ (A^TF^TFA)^{-1}A^TF^TF\mathbf{b}=\\ (A^TDA)^{-1}A^TD\mathbf{b} x^=(A′TA′)−1A′Tb′=((FA)TFA)−1(FA)TFb=(ATFTFA)−1ATFTFb=(ATDA)−1ATDb
这就是加权最小二乘法的解!
我们还可以进行推广,上式是 ( b − A x ) T D ( b − A x ) (\mathbf{b}-A\mathbf{x})^TD(\mathbf{b}-A\mathbf{x}) (b−Ax)TD(b−Ax) 最小解,其中 D D D 是对角阵,其实对称阵 S S S 也可以。只要对称阵满足对任意非零向量 x \mathbf{x} x ,有 x T S x > 0 \mathbf{x}^TS\mathbf{x} > 0 xTSx>0 成立, x T S x \mathbf{x}^TS\mathbf{x} xTSx 称为广义距离,即保证广义距离非负,此时对称阵 S S S 称为正定矩阵。
定义 正定矩阵 对称阵 S S S 对应的广义距离 x T S x \mathbf{x}^TS\mathbf{x} xTSx 非负,称对称阵为正定矩阵。
根据对称阵的 L D LD LD 分解,有 S = L D L T = L F F T L T = L F ( L F ) T S=LDL^T=LFF^TL^T=LF(LF)^T S=LDLT=LFFTLT=LF(LF)T ,令 F ′ = ( L F ) T F' = (LF)^T F′=(LF)T ,则 S = F ′ T F ′ S=F'^TF' S=F′TF′ ,与对角阵 D = F T F D=F^TF D=FTF 分解一致,所以最优解为 x ^ = ( A T S A ) − 1 A T S b \mathbf{\hat{x}} = (A^TSA)^{-1}A^TS\mathbf{b} x^=(ATSA)−1ATSb
如何确定对角阵或对称阵元素的值,这是一个困难的问题。有时可以根据先验知识来人为指定对角阵元素值,比如根据测量精度。但指定对称阵元素的值十分困难,在机器学习中,这称为度量学习。