12.3 多维高斯分布与加权最小二乘法

一、高斯分布

正态分布(高斯分布)的概率密度 p(x)p(x)p(x) 只与两个数有关:均值 m 和方差 σ2p(x)=12πσe−(x−m)2/(2σ2)(12.3.1)\pmb{均值\,m\,和方差\,\sigma^2\kern 15ptp(x)=\dfrac{1}{\sqrt{2π}\sigma}e^{-(x-m)^2/(2\sigma^2)}}\kern 20pt(12.3.1)均值m和方差σ2p(x)=2π σ1e−(x−m)2/(2σ2)(12.3.1)p(x)p(x)p(x) 的图形是关于 x=mx=mx=m 对称的一条钟形曲线,连续变量 xxx 可以在 −∞-\infty−∞ 和 +∞+\infty+∞ 之间任意取值。随机变量 xxx 的值落在 m−σm-\sigmam−σ 到 m+σm+\sigmam+σ (与均值 mmm 的距离小于一个标准差 σ\sigmaσ)之间的概率约为 23\dfrac{2}{3}32.∫−∞+∞p(x) dx=1,∫m−σm+σp(x) dx=12π∫−11e−X2/2 dX≈23(12.3.2)\int_{-\infty}^{+\infty}p(x)\,\textrm dx=1,\kern 15pt\int_{\pmb{m-\sigma}}^{\pmb{m+\sigma}}p(x)\,\textrm dx=\dfrac{1}{\sqrt{2π}}\int_{\pmb{-1}}^{\pmb1}e^{-X^2/2}\,\textrm dX\approx\pmb{\dfrac{2}{3}}\kern 20pt(12.3.2)∫−∞+∞p(x)dx=1,∫m−σm+σp(x)dx=2π 1∫−11e−X2/2dX≈32(12.3.2)上式的积分中使用了从 xxx 到 X=(x−m)/σX=(x-m)/\sigmaX=(x−m)/σ 的变量替换,这将指数简化为了 −X22-\dfrac{X^2}{2}−2X2 并且将积分上下限简化为了 −1-1−1 到 111,而且 p(x)p(x)p(x) 在积分外部的 1σ\dfrac{1}{\sigma}σ1 也由于 dX=dxσ\textrm dX=\dfrac{\textrm dx}{\sigma}dX=σdx 而消失了。这样,每一个高斯分布都变成了标准高斯分布 p(X)p(X)p(X),此时均值 m=0m=0m=0 且方差 σ2=1\sigma^2=1σ2=1 时. 仍记为 p(x)p(x)p(x):标准正态分布 N(0,1) 的概率密度p(x)=12πe−x2/2(12.3.3)\pmb{标准正态分布\,N(0,1)\,的概率密度\kern 10ptp(x)=\dfrac{1}{\sqrt{2π}}e^{-x^2/2}}\kern 20pt(12.3.3)标准正态分布N(0,1)的概率密度p(x)=2π 1e−x2/2(12.3.3)对 p(x)p(x)p(x) 从 −∞-\infty−∞ 到 xxx 积分可得分布函数 F(x)F(x)F(x):随机样本不超过 xxx 的概率。当均值 m=0m=0m=0 时,概率 F(0)=12F(0)=\dfrac{1}{2}F(0)=21.

二、二维高斯分布

现在我们有 M=2M=2M=2 个随机变量 xxx 和 yyy,它们的均值分别为 m1m_1m1 和 m2m_2m2,方差分别为 σ12\sigma_1^2σ12 和 σ22\sigma_2^2σ22. 如果它们是相互独立的,那么它们的概率密度 p(x,y)p(x,y)p(x,y) 就是 p1(x)p2(y)\pmb{p_1(x)p_2(y)}p1(x)p2(y). 当随机变量相互独立时,将它们的概率密度相乘即得到联合概率密度:独立的 x 和 yp(x,y)=12πσ1σ2e−(x−m1)2/(2σ12)e−(y−m2)2/(2σ22)(12.3.4)\pmb{独立的\,x\,和\,y}\kern 18ptp(x,y)=\dfrac{1}{2π\sigma_1\sigma_2}e^{-(x-m_1)^2/(2\sigma_1^2)}e^{-(y-m_2)^2/(2\sigma_2^2)}\kern 15pt(12.3.4)独立的x和yp(x,y)=2πσ1σ21e−(x−m1)2/(2σ12)e−(y−m2)2/(2σ22)(12.3.4)xxx 和 yyy 的协方差是 σ12=0\pmb{\sigma_{12}=0}σ12=0,协方差矩阵 VVV 是对角矩阵,方差 σ12\sigma_1^2σ12 和 σ22\sigma_2^2σ22 始终在 VVV 的主对角线上。p(x,y)p(x,y)p(x,y) 中的指数部分恰好是 p1(x)p_1(x)p1(x) 的指数和 p2(y)p_2(y)p2(y) 的指数之和。注意这两个指数可以合并成 −12(x−m)TV−1(x−m)-\dfrac{1}{2}(\boldsymbol x-\boldsymbol m)^TV^{-1}(\boldsymbol x-\boldsymbol m)−21(x−m)TV−1(x−m),中间为 V−1V^{-1}V−1:−(x−m1)22σ12−(y−m2)22σ22=−12[x−m1y−m2][σ1200σ22]−1[x−m1y−m2](12.3.5)-\dfrac{(x-m_1)^2}{2\sigma_1^2}-\dfrac{(y-m_2)^2}{2\sigma_2^2}=-\dfrac{1}{2}\begin{bmatrix}x-m_1&y-m_2\end{bmatrix}\begin{bmatrix}\sigma_1^2&0\\0&\sigma_2^2\end{bmatrix}^{-1}\begin{bmatrix}x-m_1\\y-m_2\end{bmatrix}\kern 13pt(12.3.5)−2σ12(x−m1)2−2σ22(y−m2)2=−21[x−m1y−m2][σ1200σ22]−1[x−m1y−m2](12.3.5)

三、不相互独立的 x 和 y

现在我们不再要求独立性。当 VVV 不再是一个对角矩阵时,包含 V−1V^{-1}V−1 的指数表达式(12.3.5)仍然是正确的。现在高斯分布取决于向量 m\boldsymbol mm 和矩阵 VVV.

当 M=2M=2M=2 时,第一个变量 xxx 可能会提供第二个变量 yyy 的部分信息(反之亦然),可能 yyy 的一部分是由 xxx 确定,而其它部分与 xxx 相互独立。M×MM\times MM×M 的协方差矩阵 VVV 描述了 MMM 个随机变量 x=x1,x2,⋯ ,xM\boldsymbol x=x_1,x_2,\cdots,x_Mx=x1,x2,⋯,xM 的相关性,p(x)p(\boldsymbol x)p(x) 中使用了它的逆矩阵 V−1V^{-1}V−1:多维高斯分布概率密度Multivariate Gaussian probability distributionp(x)=1(2π)Mdet⁡Ve−(x−m)TV−1(x−m)/2(12.3.6)\begin{array}{c}\pmb{多维高斯分布概率密度}\\\pmb{\textrm{Multivariate Gaussian probability distribution}}\end{array}\boxed{{\color{blue}{p(\boldsymbol x)=\dfrac{1}{(\sqrt{2π})^M\sqrt{\det V}}e^{-(\boldsymbol x-\boldsymbol m)^TV^{-1}(\boldsymbol x-\boldsymbol m)/2}}}}\kern 10pt(12.3.6)多维高斯分布概率密度Multivariate Gaussian probability distributionp(x)=(2π )MdetV 1e−(x−m)TV−1(x−m)/2(12.3.6)向量 x=(x1,x2,⋯ ,xM)\boldsymbol x=(x_1,x_2,\cdots,x_M)x=(x1,x2,⋯,xM) 和 m=(m1,m2,⋯ ,mM)\boldsymbol m=(m_1,m_2,\cdots,m_M)m=(m1,m2,⋯,mM) 分别包含了随机变量和它们的均值。(2π)Mdet⁡V(\sqrt{2π})^M\sqrt{\det V}(2π )MdetV 是为了使得总概率等于 111. 下面用线性代数的知识来验证这个结论。利用对称矩阵 V=QΛQTV=Q\Lambda Q^TV=QΛQT 的特征值 λ\lambdaλ 和标准正交特征向量 q\boldsymbol qq,得 V−1=QΛ−1QT\pmb{V^{-1}=Q\Lambda^{-1}Q^T}V−1=QΛ−1QT,令 X=x−m\boldsymbol X=\boldsymbol x-\boldsymbol mX=x−m:(x−m)TV−1(x−m)=XTQΛ−1QTX=YTΛ−1Y(\boldsymbol x-\boldsymbol m)^TV^{-1}(\boldsymbol x-\boldsymbol m)=\boldsymbol X^TQ\Lambda^{-1}Q^{T}\boldsymbol X=\boldsymbol Y^T\Lambda^{-1}\boldsymbol Y(x−m)TV−1(x−m)=XTQΛ−1QTX=YTΛ−1Y注意:式中 Y=QTX=QT(x−m)\boldsymbol Y=Q^T\boldsymbol X=Q^T(\boldsymbol x-\boldsymbol m)Y=QTX=QT(x−m) 各分量对应的随机变量是相互独立的,它们的协方差矩阵 Λ\LambdaΛ 是对角矩阵。

使用特征向量矩阵 QQQ 将 VVV 对角化的步骤与对随机变量 "解除关联" 的步骤完全相同,新的随机变量 X1,X2,⋯ ,XMX_1,X_2,\cdots,X_MX1,X2,⋯,XM 的协方差都为零,这是使用线性代数帮助计算多元积分的关键所在。

对变量 x\boldsymbol xx 减去 m\boldsymbol mm 得到 X\boldsymbol XX 实现的中心化,再旋转变量得到 Y=QTX\boldsymbol Y=Q^T\boldsymbol XY=QTX,并不会影响对 p(x)p(\boldsymbol x)p(x) 的积分,矩阵 Λ\LambdaΛ 是对角的!因此可以将积分分解为 MMM 个已知的一元积分:∫∫⋯∫e−YTΛ−1Y/2 dY=(∫−∞+∞e−y12/(2λ1) dy1)(∫−∞+∞e−y22/(2λ2) dy2)⋯(∫−∞+∞e−yM2/(2λM) dyM)=(2πλ1)(2πλ2)⋯(2πλM)=(2π)Mdet⁡V(12.3.7)\begin{array}{l}\displaystyle\int\int\cdots\int e^{-\boldsymbol Y^T\Lambda^{-1}\boldsymbol Y/2}\,\textrm d\boldsymbol Y\\=\displaystyle\Big(\int_{-\infty}^{+\infty}e^{-y_1^2/(2\lambda_1)}\,\textrm dy_1\Big)\Big(\int_{-\infty}^{+\infty}e^{-y_2^2/(2\lambda_2)}\,\textrm dy_2\Big)\cdots\Big(\int_{-\infty}^{+\infty}e^{-y_M^2/(2\lambda_M)}\,\textrm dy_M\Big)\\[4ex]=(\sqrt{2π\lambda_1})(\sqrt{2π\lambda_2})\cdots(\sqrt{2π\lambda_M})\\[2ex]=(\sqrt{2π})^M\sqrt{\det V}\kern 255pt(12.3.7)\end{array}∫∫⋯∫e−YTΛ−1Y/2dY=(∫−∞+∞e−y12/(2λ1)dy1)(∫−∞+∞e−y22/(2λ2)dy2)⋯(∫−∞+∞e−yM2/(2λM)dyM)=(2πλ1 )(2πλ2 )⋯(2πλM )=(2π )MdetV (12.3.7)VVV 的行列式(也是 Λ\LambdaΛ 的行列式)是特征值的乘积 λ1λ2⋯λM\lambda_1\lambda_2\cdots\lambda_Mλ1λ2⋯λM,式(12.3.7)给出了正确的除数,使得式(12.3.6)中 p(x1,x2,⋯ ,xM)p(x_1,x_2,\cdots,x_M)p(x1,x2,⋯,xM) 的积分结果为 111.
p(x)p(\boldsymbol x)p(x) 的均值和方差也是计算 MMM 元积分,同样地,使用特征向量将 VVV 对角化,然后引入 Y=QTX\boldsymbol Y=Q^T\boldsymbol XY=QTX 就可以得到下面的积分:均值向量 m∫∫⋯∫xp(x) dx=(m1,m2,⋯ )=m(12.3.8)协方差矩阵 V∫∫⋯∫(x−m)p(x)(x−m)T dx=V(12.3.9)\begin{array}{ll}\pmb{均值向量\,\boldsymbol m}&\displaystyle\int\int\cdots\int\boldsymbol xp(\boldsymbol x)\,\textrm d\boldsymbol x=(m_1,m_2,\cdots)=\boldsymbol m\kern 20pt(12.3.8)\\[2.5ex]\pmb{协方差矩阵\,V}&\displaystyle\int\int\cdots\int(\boldsymbol x-\boldsymbol m)p(\boldsymbol x)(\boldsymbol x-\boldsymbol m)^T\,\textrm d\boldsymbol x=V\kern 23pt(12.3.9)\end{array}均值向量m协方差矩阵V∫∫⋯∫xp(x)dx=(m1,m2,⋯)=m(12.3.8)∫∫⋯∫(x−m)p(x)(x−m)Tdx=V(12.3.9)结论:利用概率密度 p(x)p(\boldsymbol x)p(x) 的公式(12.3.6)可以得到我们想要的所有性质。

四、加权最小二乘法

第 444 章中,我们从一个不可解的方程 Ax=bA\boldsymbol x=\boldsymbol bAx=b 开始介绍最小二乘法的,选择 x^\hat{\boldsymbol x}x^ 将误差 ∣∣b−Ax∣∣2||\boldsymbol b-A\boldsymbol x||^2∣∣b−Ax∣∣2 最小化,这样导出了最小二乘方程 ATAx^=ATbA^TA\hat{\boldsymbol x}=A^T\boldsymbol bATAx^=ATb. 最优的 Ax^A\hat{\boldsymbol x}Ax^ 是 b\boldsymbol bb 到 AAA 列空间中的投影,但是这个距离的平方 E=∣∣b−Ax∣∣2E=||\boldsymbol b-A\boldsymbol x||^2E=∣∣b−Ax∣∣2 是最小化分析中正确的误差度量吗?

如果 b\boldsymbol bb 中的各分量的误差是相互独立的随机变量,均值 m=0m=0m=0,方差 σ2=1\sigma^2=1σ2=1 并且服从正态分布,高斯会说:是的 ,使用最小二乘法。如果误差是不相互独立的随机变量或者它们的方差不相等,高斯会说:不是的 ,要使用加权最小二乘法 . 这一节会展示误差的有效度量为 E=(b−Ax)TV−1(b−Ax)E=(\boldsymbol b-A\boldsymbol x)^TV^{-1}(\boldsymbol b-A\boldsymbol x)E=(b−Ax)TV−1(b−Ax). 关于最优解 x^\hat{\boldsymbol x}x^ 的方程使用了协方差矩阵 VVV:

加权最小二乘法Weighted least squaresATV−1Ax^=ATV−1b(12.3.10)\begin{array}{}\pmb{加权最小二乘法}\\\pmb{\textrm{Weighted least squares}}\end{array}\kern 15pt{\color{blue}A^TV^{-1}A\hat{\boldsymbol x}=A^TV^{-1}\boldsymbol b}\kern 20pt(12.3.10)加权最小二乘法Weighted least squaresATV−1Ax^=ATV−1b(12.3.10)

最重要的例子是 b\boldsymbol bb 中有 mmm 个相互独立的误差,这些误差的方差为 σ12,σ22,⋯ ,σm2\sigma_1^2,\sigma_2^2,\cdots,\sigma_m^2σ12,σ22,⋯,σm2,根据独立性可得,VVV 是一个对角矩阵,V−1V^{-1}V−1 提供了有效的权重系数 1σ12,1σ22,⋯ ,1σm2\dfrac{1}{\sigma_1^2},\dfrac{1}{\sigma_2^2},\cdots,\dfrac{1}{\sigma_m^2}σ121,σ221,⋯,σm21,通过对 b\boldsymbol bb 中的误差加权可使方差 σ2=1\pmb{\sigma^2=1}σ2=1:b 中的独立误差加权最小二乘法最小化E=∑i=1m(b−Ax)i2σi2(12.3.11)\begin{array}{}\pmb{\boldsymbol b\,中的独立误差}\\\pmb{加权最小二乘法}\end{array}\kern 10pt{\color{blue}最小化\kern 15ptE=\sum_{i=1}^m\dfrac{(\boldsymbol b-A\boldsymbol x)_i^2}{\sigma_i^2}}\kern 20pt(12.3.11)b中的独立误差加权最小二乘法最小化E=i=1∑mσi2(b−Ax)i2(12.3.11)通过对误差进行加权处理,能够 "白化(whitening)" 噪声。白噪声(White noise) 是对服从标准高斯分布 N(0,1)\pmb{\textrm N}(0,1)N(0,1) 的独立误差的一种简要描述,它的均值为零,方差 σ2=1\sigma^2=1σ2=1.

下面是使用式(12.3.10)和(12.3.11)来获取最优解 x^\hat{\boldsymbol x}x^ 的步骤:

  • 从方程组 Ax=bA\boldsymbol x=\boldsymbol bAx=b 开始,它有 mmm 个方程,nnn 个未知数,m>nm>nm>n 且无解,右侧的每个 bib_ibi 均值都为零,方差为 σi2\sigma_i^2σi2,bib_ibi 是相互独立的
  • 对第 iii 个方程除以 σi\sigma_iσi 使得每个 biσi\dfrac{b_i}{\sigma_i}σibi 的方差为 111,这样将 Ax=bA\boldsymbol x=\boldsymbol bAx=b 变为 V−1/2Ax=V−1/2bV^{-1/2}A\boldsymbol x=V^{-1/2}\boldsymbol bV−1/2Ax=V−1/2b,其中 V−1/2=diag(1σ1,1σ2,⋯ ,1σm)V^{-1/2}=\textrm{diag}(\dfrac{1}{\sigma_1},\dfrac{1}{\sigma_2},\cdots,\dfrac{1}{\sigma_m})V−1/2=diag(σ11,σ21,⋯,σm1)
  • 对这些加权方程应用通常的最小二乘法,其中 A→V−1/2AA\rightarrow V^{-1/2}AA→V−1/2A,b→V−1/2b\boldsymbol b\rightarrow V^{-1/2}\boldsymbol bb→V−1/2b

(V−1/2A)T(V−1/2A)x^=(V−1/2A)TV−1/2bATV−1Ax^=ATV−1b(12.3.12)(V^{-1/2}A)^T(V^{-1/2}A)\hat{\boldsymbol x}=(V^{-1/2}A)^TV^{-1/2}\boldsymbol b\kern 20pt{\color{blue}A^TV^{-1}A\hat{\boldsymbol x}=A^TV^{-1}\boldsymbol b}\kern 17pt(12.3.12)(V−1/2A)T(V−1/2A)x^=(V−1/2A)TV−1/2bATV−1Ax^=ATV−1b(12.3.12)

V−1V^{-1}V−1 中的 1σ2\dfrac{1}{\sigma^2}σ21 使得更可靠的方程(更小的 σ\sigmaσ)获得更大的权重,这是加权最小二乘法的关键。

这些对角加权系数(未耦合方程)是适用于 bib_ibi 中独立误差的最常见、最简单的处理方式。当测量误差不再相互独立时,此时 VVV 将不再是对角矩阵 ------ 但是式(12.3.12)仍然是正确的加权方程组。

实际应用中,求所有的协方差是一件非常困难的工作,对角矩阵 VVV 要简单很多。

五、估计量 x^\hat xx^ 的方差

还有一个重点:通常对一组特定的测量值 b\boldsymbol bb,重要的并不是求出最优解,这只对应一个样本!真正的目标是想要知道整个试验的可靠性,这需要用到估计量 x^\hat{\boldsymbol x}x^ 的方差 (方差总是用于度量可靠性)。首先,b\boldsymbol bb 的均值为零向量得到 x^\hat{\boldsymbol x}x^ 的均值也为零向量;然后,结合输入 b\boldsymbol bb 的协方差矩阵 VVV 与输出 x^\hat{\boldsymbol x}x^ 的协方差矩阵 WWW 可以构造出一个非常优美的公式:

x^ 的协方差矩阵 WE[(x^−x)(x^−x)T]=(ATV−1A)−1(12.3.13)\pmb{\hat{\boldsymbol x}\,的协方差矩阵\,W}\kern 15pt{\color{blue}\textrm E[(\hat{\boldsymbol x}-\boldsymbol x)(\hat{\boldsymbol x}-\boldsymbol x)^T]=(A^TV^{-1}A)^{-1}}\kern 15pt(12.3.13)x^的协方差矩阵WE[(x^−x)(x^−x)T]=(ATV−1A)−1(12.3.13)

可能的最小方差来自于可能的最优加权矩阵,即 V−1V^{-1}V−1.

这个关键的公式是协方差矩阵的一个完美应用。如果 b\boldsymbol bb 的协方差矩阵为 VVV,则 x^=Lb\hat{\boldsymbol x}=L\boldsymbol bx^=Lb 的协方差矩阵为 LVLT\pmb{LVL^{T}}LVLT . 由式(12.3.12)可知 LLL 是 (ATV−1A)−1ATV−1(A^TV^{-1}A)^{-1}A^TV^{-1}(ATV−1A)−1ATV−1,现在将其代入到 LVLTLVL^TLVLT 中可以得到式(12.3.13):LVLT=[(ATV−1A)−1ATV−1] V [V−1A(ATV−1A)−1]=(ATV−1A)−1\pmb{LVL^T}=[(A^TV^{-1}A)^{-1}A^TV^{-1}]\,V\,[V^{-1}A(A^TV^{-1}A)^{-1}]=\pmb{(A^TV^{-1}A)^{-1}}LVLT=[(ATV−1A)−1ATV−1]V[V−1A(ATV−1A)−1]=(ATV−1A)−1这就是最优估计量 x^\hat{\boldsymbol x}x^ 的协方差矩阵 WWW。

例1 】假设医生对心率 xxx 测量了三次(m=3,n=1m=3,n=1m=3,n=1):x=b1x=b2x=b3即Ax=b,其中A=[111],V=[σ12000σ22000σ32]\begin{matrix}x=b_1\\x=b_2\\x=b_3\end{matrix}\kern 10pt即\kern 10ptA\boldsymbol x=\boldsymbol b,其中\kern 10ptA=\begin{bmatrix}1\\1\\1\end{bmatrix},\kern 5ptV=\begin{bmatrix}\sigma_1^2&0&0\\0&\sigma_2^2&0\\0&0&\sigma_3^2\end{bmatrix}x=b1x=b2x=b3即Ax=b,其中A= 111 ,V= σ12000σ22000σ32 方差分别为 σ12=19,σ22=14,σ32=1\sigma_1^2=\dfrac{1}{9},\sigma_2^2=\dfrac{1}{4},\sigma^2_3=\pmb1σ12=91,σ22=41,σ32=1. 由方差我们可以知道,b3b_3b3 相比于 b2b_2b2 和 b1b_1b1 可靠性要差,测量心率时越来越紧张了。这三次测量都包含了一些有效信息,因此将它们都加入最优(加权)估计 x^\hat{\boldsymbol x}x^:V−1/2Ax^=V−1/2b即3x=3b12x=2b21x=1b1再得到ATV−1Ax^=ATV−1bV^{-1/2}A\hat{\boldsymbol x}=V^{-1/2}\boldsymbol b\kern 10pt即\kern 10pt\begin{matrix}3x=3b_1\\2x=2b_2\\1x=1b_1\end{matrix}\kern 10pt再得到\kern 10pt\pmb{A^TV^{-1}A\hat{\boldsymbol x}=A^TV^{-1}\boldsymbol b}V−1/2Ax^=V−1/2b即3x=3b12x=2b21x=1b1再得到ATV−1Ax^=ATV−1b[111][941][111]x^=[111][941][b1b2b3]\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}9\\&4\\&&1\end{bmatrix}\begin{bmatrix}1\\1\\1\end{bmatrix}\hat{\boldsymbol x}=\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}9\\&4\\&&1\end{bmatrix}\begin{bmatrix}b_1\\b_2\\b_3\end{bmatrix}[111] 941 111 x^=[111] 941 b1b2b3 得x^=9b1+4b2+b314是 b1,b2,b3 的加权平均\boxed{\pmb{\hat{\boldsymbol x}=\dfrac{9b_1+4b_2+b_3}{14}\kern 5pt是\,b_1,b_2,b_3\,的加权平均}}x^=149b1+4b2+b3是b1,b2,b3的加权平均其中权重最大的是 b1b_1b1,这是因为它的方差最小。求 x^\hat{\boldsymbol x}x^ 的方程有一个美丽的公式 W=(ATV−1A)−1=1/14W=(A^TV^{-1}A)^{-1}=1/14W=(ATV−1A)−1=1/14:x^ 的方差([111][941][111])−1=114<19\pmb{\hat{\boldsymbol x}\,的方差\kern 5pt\Big(\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}9\\&4\\&&1\end{bmatrix}\begin{bmatrix}1\\1\\1\end{bmatrix}\Big)^{-1}}=\dfrac{1}{14}<\dfrac{1}{9}x^的方差([111] 941 111 )−1=141<91BLUE\textrm{BLUE}BLUE 定理(Best unbiased estimator 定理,也称为高斯-马尔可夫定理)说明 x^=Lb\hat{\boldsymbol x}=L\boldsymbol bx^=Lb 是 Ax=bA\boldsymbol x=\boldsymbol bAx=b 解的最优线性无偏估计。任何其它的无偏估计 x∗=L∗b\boldsymbol x^{*}=L^*\boldsymbol bx∗=L∗b 都要比 x^\hat{\boldsymbol x}x^ 的方差要大。所有无偏估计都满足 L∗A=IL^*A=IL∗A=I,所以一个确切的 Ax=bA\boldsymbol x=\boldsymbol bAx=b 会得到正确的答案 x=L∗b=L∗Ax\boldsymbol x=L^*\boldsymbol b=L^*A\boldsymbol xx=L∗b=L∗Ax.

注意:有时并不将平方误差最小化,其中一个原因是:x^\hat{\boldsymbol x}x^ 通常有很多绝对值很小的分量,如果取平方的话,它们会变得更小,几乎为零了。这样就能更好的处理稀疏向量 ------ 只有很少的非零分量。统计学家更喜欢最小化非平方误差∣(b−Ax)i∣|(\boldsymbol b-A\boldsymbol x)_i|∣(b−Ax)i∣ 的和 。度量这个误差使用的是 L1L^1L1 范数,而不是 L2L^2L2 范数,这是因为绝对值,因此关于 x^\hat{\boldsymbol x}x^ 的方程变成了非线性(实际上是分段线性)。

目前已经有新的算法能够快速计算稀疏矩阵的 x^\hat{\boldsymbol x}x^,未来来看使用 L1L^1L1 的前景更好。

六、卡尔曼滤波

"卡尔曼滤波(kalman Filter)" 是关于动态最小二乘法的一个伟大算法,动态(dynamic)这个词表示的是陆续获得新的测量值 bk\boldsymbol b_kbk,因此最优估计量 x^\hat{\boldsymbol x}x^ 将会不断变化(基于所有的 b0,b1,⋯ ,bk\boldsymbol b_0,\boldsymbol b_1,\cdots,\boldsymbol b_kb0,b1,⋯,bk). 更重要的是,矩阵 AAA 也会变化。例如,x^2\hat{\boldsymbol x}2x^2 用到了直到时刻 2\pmb22 时关于整个过程的观测方程和更新方程(状态方程) ,它是最新解 xk\boldsymbol x_kxk 的最优最小二乘估计:A0x0=b0;x1=F0x0,A1x1=b1;x2=F1x1,A2x2=b2(12.3.14)A_0\boldsymbol x_0=\boldsymbol b_0;\kern 5pt\boldsymbol x_1=F_0\boldsymbol x_0,\kern 5ptA_1\boldsymbol x_1=\boldsymbol b_1;\kern 5pt\boldsymbol x_2=F_1\boldsymbol x_1,\kern 5ptA_2\boldsymbol x_2=\boldsymbol b_2\kern 10pt(12.3.14)A0x0=b0;x1=F0x0,A1x1=b1;x2=F1x1,A2x2=b2(12.3.14)卡尔曼滤波的思想是一次引入一个方程,虽然每个方程中都存在误差,但是结合每一个新的方程来更新当前 xk\boldsymbol x_kxk 就能够得到最优估计量 x^k\hat{\boldsymbol x}kx^k,这个方法并没有丢掉历史数据!新的估计量 x^k\hat{\boldsymbol x}kx^k 使用了从 b0\boldsymbol b_0b0 到 bk−1\boldsymbol b{k-1}bk−1 的历史观测数据和状态方程 xnew=Foldxold\boldsymbol x{\textrm{new}}=F{\textrm{old}}\boldsymbol x_{\textrm{old}}xnew=Foldxold,这是一个庞大的且不断增长的最小二乘问题。

更重要的一点是,每一步的最小二乘方程中都使用了协方差矩阵 VkV_kVk 来对 bkb_kbk 中的误差进行加权 ,甚至对于更新方程 xk+1=Fkxk\boldsymbol x_{k+1}=F_k\boldsymbol x_kxk+1=Fkxk 中的误差还有协方差矩阵 CkC_kCk. 最优的 x^2\hat{\boldsymbol x}_2x^2 取决于 b0,b1,b2\boldsymbol b_0,\boldsymbol b_1,\boldsymbol b_2b0,b1,b2、V0,V1,V2V_0,V_1,V_2V0,V1,V2 和 C1,C2C_1,C_2C1,C2. 求解 x^k\hat{\boldsymbol x}kx^k 的方法是对已有的 x^k−1\hat{\boldsymbol x}{k-1}x^k−1 进行更新。

下面是不考虑矩阵 FkF_kFk 和协方差矩阵 CkC_kCk 的一个简化问题,每一步对 x\boldsymbol xx 的估计都与前述一致,该如何由 x^0\hat{\boldsymbol x}_0x^0 得到 x^1\hat{\boldsymbol x}_1x^1 呢?

旧问题: Ax0=b0A\boldsymbol x_0=\boldsymbol b_0Ax0=b0 得到加权方程 A0TV0−1A0x^0=A0TV0−1b0(12.3.15)A_0^TV_0^{-1}A_0\hat{\boldsymbol x}_0=A_0^TV_0^{-1}\boldsymbol b_0\kern 20pt(12.3.15)A0TV0−1A0x^0=A0TV0−1b0(12.3.15)新问题: [A0A1]x^1=[b0b1]\begin{bmatrix}A_0\\A_1\end{bmatrix}\hat{\boldsymbol x}_1=\begin{bmatrix}\boldsymbol b_0\\\boldsymbol b_1\end{bmatrix}[A0A1]x^1=[b0b1] 得到下面关于 x^1\hat{\boldsymbol x}_1x^1 的加权方程:[A0TA1T][V0−1V1−1][A0A1]x^1=[A0TA1T][V0−1V1−1][b0b1](12.3.16)\begin{bmatrix}A_0^T&A_1^T\end{bmatrix}\begin{bmatrix}V_0^{-1}\\&V_1^{-1}\end{bmatrix}\begin{bmatrix}A_0\\A_1\end{bmatrix}\hat{\boldsymbol x}_1=\begin{bmatrix}A_0^T&A_1^T\end{bmatrix}\begin{bmatrix}V_0^{-1}\\&V_1^{-1}\end{bmatrix}\begin{bmatrix}\boldsymbol b_0\\\boldsymbol b_1\end{bmatrix}\kern 10pt(12.3.16)[A0TA1T][V0−1V1−1][A0A1]x^1=[A0TA1T][V0−1V1−1][b0b1](12.3.16)现在我们是要求解新问题,不再是旧问题,但是旧的解 x^0\hat{\boldsymbol x}_0x^0 也需要处理,我们希望在计算 x^1\hat{\boldsymbol x}_1x^1 使用它。我们对 x^0\hat{\boldsymbol x}_0x^0 更新 以得到 x^1\hat{\boldsymbol x}_1x^1:

利用卡尔曼更新从 x^0 得到 x^1x^1=x^0+K1(b1−A1x^0)(12.3.17)\pmb{利用卡尔曼更新从\,\hat{\boldsymbol x}_0}\,得到\,\hat{\boldsymbol x}_1\kern 13pt{\color{blue}\hat{\boldsymbol x}_1=\hat{\boldsymbol x}_0+K_1(\boldsymbol b_1-A_1\hat{\boldsymbol x}_0)}\kern 15pt(12.3.17)利用卡尔曼更新从x^0得到x^1x^1=x^0+K1(b1−A1x^0)(12.3.17)

更新的校正量中 b1−A1x^0\boldsymbol b_1-A_1\hat{\boldsymbol x}_0b1−A1x^0 是旧状态 x^0\hat{\boldsymbol x}_0x^0 和新的测量值 b1\boldsymbol b_1b1 之间的差值,然后再用卡尔曼增益矩阵(Kalman  gain  matrix\textrm{Kalman \,gain\, matrix}Kalman gain matrix) K1K_1K1 进行左乘。关于 K1K_1K1 的公式是来自于式(12.3.15)和式(12.3.16)的解 x^0\hat{\boldsymbol x}_0x^0 和 x^1\hat{\boldsymbol x}_1x^1 的对比。当我们基于新数据 b1\boldsymbol b_1b1 将 x^0\hat{\boldsymbol x}_0x^0 更新为 x^1\hat{\boldsymbol x}_1x^1 时,也将协方差矩阵 W0\pmb{W_0}W0 更新为 W1\pmb{W_1}W1 . 注意从式(12.3.13)可得 W0=(A0TV0−1A0)−1W_0=(A_0^TV_0^{-1}A_0)^{-1}W0=(A0TV0−1A0)−1,将其逆矩阵更新为 W1−1W_1^{-1}W1−1:

x^1 中误差的协方差矩阵 W1W1−1=W0−1+A1TV1−1A1(12.3.18)卡尔曼增益矩阵 K1K1=W1A1TV1−1(12.3.19)\begin{array}{rl}\pmb{\hat{\boldsymbol x}_1\,中误差的协方差矩阵\,W_1}&\color{blue}W_1^{-1}=W_0^{-1}+A_1^TV_1^{-1}A_1&(12.3.18)\\[1ex]\pmb{卡尔曼增益矩阵\,K_1}&\color{blue}K_1=W_1A_1^TV_1^{-1}&(12.3.19)\end{array}x^1中误差的协方差矩阵W1卡尔曼增益矩阵K1W1−1=W0−1+A1TV1−1A1K1=W1A1TV1−1(12.3.18)(12.3.19)

这是卡尔曼滤波的核心,注意 WkW_kWk 的重要性,这些矩阵用于度量整个更新过程的可靠性,其中向量 x^k\hat{\boldsymbol x}_kx^k 基于特定测量值 b0\boldsymbol b_0b0 到 bk\boldsymbol b_kbk 来估计当前状态。

有些书可能会用一整章甚至一整本书来讨论当状态 xk\boldsymbol x_kxk 也改变时(基于矩阵 FkF_kFk)情况下的动态卡尔曼滤波。其核心思想是使用 FFF 来预测 xk\boldsymbol x_kxk,然后使用新的测量数据 b\boldsymbol bb 来进行校正。

这里是关于递归最小二乘法(recursive least squares) :加入新数据 bkb_kbk 并更新 x^\hat{\boldsymbol x}x^ 和 WWW:当前的最优估计是基于所有的数据及其协方差矩阵的。

相关推荐
少许极端2 小时前
算法奇妙屋(三十)-递归、回溯与剪枝的综合问题 3
算法·深度优先·剪枝·数独·n皇后
WBluuue2 小时前
数据结构与算法:01分数规划
c++·算法
七七肆十九2 小时前
PTA 习题9-1 时间换算
c语言·算法
XW01059992 小时前
5-6统计工龄
数据结构·python·算法
EQUINOX12 小时前
倍增优化dp,P10976 统计重复个数
算法·数学建模·动态规划
样例过了就是过了2 小时前
LeetCode热题100 电话号码的字母组合
数据结构·c++·算法·leetcode·dfs
nervermore9902 小时前
1.10 面试经典150题-多数元素
算法
c++逐梦人2 小时前
二分查找模版及二分答案例题
算法·蓝桥杯
biubiuibiu2 小时前
选择适合的硬盘:固态与机械硬盘的对比与推荐
c++·算法