线性代数 --- 最小二乘在直线拟合上的应用与Gram-Schmidt正交化(下)

        在上一篇文章中,通过一个例子来说明最小二乘在拟合直线时所发挥的作用,也通过两个插图的比较进一步的阐明了投影与最小化e之间的密切关系。

线性代数 --- 最小二乘在直线拟合上的应用与Gram-Schmidt正交化(上)_松下J27的博客-CSDN博客本文接续上文,从最小二乘在直线拟合上的应用开始,一步步推导出什么是Gram-Schmidt正交化,以及为什么我们需要对矩阵A中的列向量进行正交化的处理https://blog.csdn.net/daduzimama/article/details/129995583        在这篇文章中,我们依然会从三组数据点的直线拟合开始,所不同的是,这次选择的三个观测时间点的值比较特殊,继而引出Gram-Schmidt正交化的概念。

Example 2:

        在Example 1中,选择t = -1,1,2三个时刻作为观测点,得到了b=1,1,3这三个观测值。这里,我们把三个观测点的时刻改成了t = -2,0,2,(注意,这是最重要的改动)并得到了另一组测量值b = 1,2,4。在直角坐标系中画出这三个点,三点不在同一条直线上,同样,这也是一个最小二乘的直线拟合问题。

用方程b=C+Dt表示这些点所穿过的直线,得到如下方程组:

 这三个点不在同一直线上,故而无解。需要通过求解最小二乘方程组,联立正规方程A^{T}A\hat{x}=A^{T}b

 \large A=\begin{bmatrix} 1 & -2\\ 1 & 0\\ 1 & 2 \end{bmatrix}                \large \hat{x}=\begin{bmatrix} \hat{C}\\ \hat{D} \end{bmatrix}                \large b=\begin{bmatrix} 1\\ 2\\ 4 \end{bmatrix}

 左边A^{T}A

\large A^{T}A=\begin{bmatrix} 1 &1 & 1\\ -2& 0 & 2 \end{bmatrix}\begin{bmatrix} 1 &-2 \\ 1&0 \\ 1 & 2 \end{bmatrix}=\begin{bmatrix} 3 &\mathbf{0} \\ \mathbf{0}& 8 \end{bmatrix}

 右边A^{T}b

\large A^{T}b=\begin{bmatrix} 1 &1 & 1\\ -2& 0 & 2 \end{bmatrix}\begin{bmatrix} 1 \\2 \\ 4 \end{bmatrix}=\begin{bmatrix} 7 \\ 6 \end{bmatrix}

 得到:

\large A^{T}A\hat{x}=A^{T}b\; \mathbf{ is}\; \begin{bmatrix} 3 &0 \\ 0 & 8 \end{bmatrix}\begin{bmatrix} \hat{C}\\ \hat{D} \end{bmatrix} = \begin{bmatrix} 7\\ 6 \end{bmatrix}

最终得到最优解为:

\large \hat{x}=(A^{T}A)^{-1}A^{T}b=\begin{bmatrix} 1/3 &0 \\ 0& 1/8 \end{bmatrix} \begin{bmatrix} 7\\ 6 \end{bmatrix} = \begin{bmatrix} 7/3\\ 6/8 \end{bmatrix}

其中: 

\large \hat{C}=7/3,\; \hat{D}=6/8

 对应的最佳拟合直线为:

\large f(x)=7/3+6/8t

 同时,求出投影向量p:

\large p=A(A^{T}A)^{-1}A^{T}b=A{\hat{x}}=\begin{bmatrix} 1 & -2\\ 1 &0 \\ 1 & 2 \end{bmatrix} \begin{bmatrix} 7/3\\ 6/8 \end{bmatrix} =\begin{bmatrix} 5/6\\ 7/3\\ 23/6 \end{bmatrix}

其中,投影P1,P2,P3在同一条直线上,如下图所示: 


改变时间观测点所带来的益处:

        现在,让我们回过头来看看本例中求解最优解的过程,到目前为止我的计算过程和方法和前一篇文章中的Example 1中的做法一模一样,依然是直接套用\hat{x}和p的公式计算的,比如: 

再比如:

         但实际上,如果我们留心一下前面的正规方程,我们就能发现,实际上直接求解正规方程就能得到最优解。由于本例中改变了三个观测点的值,使得A^{T}A是一个对角阵。这样一来,我们就可以直接写出方程组的解\hat{C}=7/3,\hat{D}=6/8

        A^{T}A之所以会是一个对角阵,主要原因有二:其一,向量t中所有元素的和为0,或者说测量值b1,b2和b3是在关于t=0的对称的时刻所取的值。其二,矩阵A中的两个列向量[1,1,1]和[-2,0,2]的内积为0,他们是相互正交的

        如果三个观测点所选取的三个时刻t的和不等于0,或者不关于t=0对称。(就本例而言,因为矩阵A的第一列为全1向量,因此,如果向量t的和不为0,他和另一个向量的内积就不为0)。可以先花点时间,通过让三个时刻t分别减去t的均值\hat{t}=(t1+t2+...+tm)/m,使得三个时刻的和为0。因为这样一来我们就能通过正规方程直接求出\hat{x}

        例如,当t=(1,3,5)时, 他的和不等于0。他的均值\hat{t}=3, 然后让t中的每一个元素都减去均值,得到新的T=t-\hat{t}=t-3=(-2,0,2)。这样一来T的和又等于0了!与此同时,直线的拟合方程也从\hat{C}+\hat{D}t变成了\hat{C}+\hat{D}T =  \hat{C}+\hat{D}(t-\hat{t}) = \hat{C}+\hat{D}(t - 3)。

         这样一来,我们就不再需要通过公式\hat{x}=(A^{T}A)^{-1}A^{T}b去求解\hat{C}\hat{D},而是直接求解正规方程(Normal Equation)就能得到\hat{C}\hat{D}

        事实上,这个特殊的例子和“Gram-Schmidt正交化”的思路,不谋而合。即,如果原始矩阵A中的列向量不是正交向量,则,先把矩阵A中的列向量变成正交向量,得到新的矩阵A_{new}如此一来,正规方程A^{T}Ax=A^{T}b左边的A_{new}^{T}A_{new}部分就会变成一个对角阵,一旦A_{new}^{T}A_{new}的结果是一个对角阵,求解\hat{x}就会变的非常容易。

        后面我们会看到Gram-Schmidt正交化不仅会把A_{new}^{T}A_{new}变成一个对角阵,还会把A_{new}^{T}A_{new}变成一个单位矩阵,那样的话,求解方程就会变的更容易。

小结:

        对于最小二乘而言,从一开始只要求矩阵A中各列是线性无关的(因为只有这样,A^{T}A才可逆)。到现在,不但要求A中各列线性无关,我们还要求A中的列向量是相互正交的,从而一步步的引出了Gram-Schmidt正交化的雏形。


 (全文完)

作者 --- 松下J27

参考文献(鸣谢):

1,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang(文中大部分插图来自于这本书)

2,绘图软件,Graphing Calculator

经典歌词赏析:

        自己和自己别做扣,树和影子儿闹的啥别扭。心河打开拧了好多扣,就象开了锅的玉米粥 。

---摘自《拖网的古船没快舟》(《古船·女人和网》主题歌)

(配图与本文无关)

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

猜你喜欢

转载自blog.csdn.net/daduzimama/article/details/130081729