超定方程组最优解(最小二乘解)推导

一、超定方程组

超定方程组即为有效方程个数大于未知数个数的方程组。(这里只讨论多元一次的情况)
超定方程组可以写成矩阵的形式:

\[Ax=b \]

其中\(A\)\(m\times n\)的矩阵,其与\(b\)组成的增广矩阵\([A|b]\)的秩大于\(n\)\(x\)\(n\)维列向量未知数。

二、超定方程组的最小二乘解

超定方程组是无解的,但是我们可以求得其最小二乘解,就是将等式左右两端乘上\(A\)的转置。

\[A^TAx=A^Tb \]

该方程有增广矩阵\([A^TA|A^Tb]\)的秩等于\(n\),即该方程的未知数的个数等于有效方程的个数,所以该方程有唯一解且为原方程的最小二乘解。
平时记住结论直接用就好

三、推导过程

(记录,其实小生也是只知道结论不知道结论是怎么来的,不过有一天看斯坦福大学的机器学习公开课的第二节,看到了推导过程。)

1.前置结论

  1. \(trAB = trBA\)
  2. \(trABC = trBCA = trCAB\)
  3. \(\nabla_AtrAB = B^T\)
  4. \(trA = trA^T\)
  5. \(tra = a\)
  6. \(\nabla_AtrABA^TC = CAB + C^TAB^T\)
    tr代表矩阵的迹,大写字母为矩阵小写字母表示实数,\(\nabla表示求导\)

2.公式推导

作差

\begin{equation}
\begin{split}
Ax-b = \left[ \begin{array}{c}
a_1^Tx - b_1 \
\vdots \
a_m^T - b_m
\end{array}
\right ]
\end{split}
\end{equation}

构建最小二乘

\[\frac{1}{2}(Ax-b)^T(Ax-b)=\frac{1}{2}\sum_{i=1}^{m}(a_i^Tx-b_i)^2 \]

\(x\)求导

\[\nabla_x \frac{1}{2}(Ax-b)^T(Ax-b) = \nabla_x tr(x^TA^TAx-x^TA^Tb-b^TAx+b^Tb) \]

利用前置结论2)4)5)

\[\nabla_x \frac{1}{2}(Ax-b)^T(Ax-b) = \nabla_xtr[xx^TA^TA-\nabla_xb^TAx-\nabla_xb^TAx] \]

其中利用前置结论6)
注:大括号下的A为前置结论中的A,大括号上的A为矩阵A。

\[\nabla_xxx^TA^TA = \nabla_x \cdot \underbrace{x}_A \cdot \underbrace{I}_B \]

\[\cdot \underbrace{x^T}_{A^T} \cdot \underbrace{A^TA}_C \]

利用前置结论1)3)

\[\nabla_x\underbrace{b^TA}_B\underbrace{x}_A = A^Tb \]

所以就有:

\[\frac{1}{2}(Ax-b)^T(Ax-b) = A^TAx - A^Tb = 0 \]

则有:

\[A^TAx = A^Tb \]

\[x=(A^TA)^{-1}A^Tb \]

posted @ 2018-07-13 13:35  narjaja  阅读(29996)  评论(1编辑  收藏  举报