5.4 加权最小二乘法

5.4 加权最小二乘法

最小二乘法是使 i ( b i a r i T x ) 2 \sum_i (b_i-\mathbf{a}^T_{ri}\mathbf{x})^2 最小,这表明每次测量的重要性一样,但实际中有时存在某些测量更重要,某些更不重要。以第一个例子为例说明,假设测量直径,用了两个精度不同的设备各测一次,分别为 d h , d l d_h,d_l ,设备的测量精度即方差分别为 σ h 2 , σ l 2 \sigma^2_h,\sigma^2_l ,设备精度越高方差越小。如何综合这两个测量结果来获得比仅用高精度设备更好的结果?如果设备精度相同,则结果为 D = ( d h + d l ) / 2 D=(d_h+d_l)/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 ,该估计值方差为 σ 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} ,此值小于 σ h 2 \sigma^2_h ,这说明估计值的精度高于 d h d_h

假设每次测量精度不同,方差为 σ i 2 \sigma^2_i ,则此时应该使 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 ( 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}) 即向量 b A x \mathbf{b}-A\mathbf{x} 的内积,也就是向量 b \mathbf{b} 到子空间 c o l A col A 的距离平方。现在要求加权距离平方的最小值,加权距离平方可以通过矩阵获得!令对角阵为: 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}) 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}) ,则 D = F T F D=F^TF

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})

b = F b \mathbf{b'}=F\mathbf{b} A = F A A'=FA ,则上式为 ( b A x ) T ( b A x ) (\mathbf{b'}-A'\mathbf{x})^T(\mathbf{b'}-A'\mathbf{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}

这就是加权最小二乘法的解!

我们还可以进行推广,上式是 ( b A x ) T D ( b A x ) (\mathbf{b}-A\mathbf{x})^TD(\mathbf{b}-A\mathbf{x}) 最小解,其中 D D 是对角阵,其实对称阵 S S 也可以。只要对称阵满足对任意非零向量 x \mathbf{x} ,有 x T S x > 0 \mathbf{x}^TS\mathbf{x} > 0 成立, x T S x \mathbf{x}^TS\mathbf{x} 称为广义距离,即保证广义距离非负,此时对称阵 S S 称为正定矩阵。

定义 正定矩阵 对称阵 S S 对应的广义距离 x T S x \mathbf{x}^TS\mathbf{x} 非负,称对称阵为正定矩阵。

根据对称阵的 L D 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 ,令 F = ( L F ) T F' = (LF)^T ,则 S = F T F S=F'^TF' ,与对角阵 D = F T F D=F^TF 分解一致,所以最优解为 x ^ = ( A T S A ) 1 A T S b \mathbf{\hat{x}} = (A^TSA)^{-1}A^TS\mathbf{b}

如何确定对角阵或对称阵元素的值,这是一个困难的问题。有时可以根据先验知识来人为指定对角阵元素值,比如根据测量精度。但指定对称阵元素的值十分困难,在机器学习中,这称为度量学习。

猜你喜欢

转载自blog.csdn.net/jhshanvip/article/details/105896776