10-8 怳pk

本小節將以矩陣運算的方式來推導最小平方法。由於矩陣運算的表示法相當簡潔,因此所推導出來的最小平方法也相當直覺易懂。

在進入正題之前,我們先定義幾個常用的數學運算,並使用矩陣來表示這些運算式。

矩陣的轉置(Transpose)滿足下列恆等式: $$ (AB)^T=B^TA^T $$

矩陣的反矩陣(Inverse)運算滿足下列恆等式: $$ (AB)^{─1}=B^{-1}A^{-1} $$

一個純量函數 $f(\mathbf{x})$ 的梯度(Gradient)等於此函數對每一個變數偏微分後所形成的向量: $$ \nabla f(\mathbf{x}) = \left[ \begin{matrix} \partial f(\mathbf{x})/\partial x_1 \\ \vdots \\ \partial f(\mathbf{x})/\partial x_n \\ \end{matrix} \right], 其中 \mathbf{x}=\left[\begin{matrix} x_1\\ \vdots \\ x_n \\ \end{matrix}\right] $$

向量變數 $\mathbf{x}$ 的二次式(Quodratic Form)可以表示如下: $$ \mathbf{x}^TA\mathbf{x} = \sum_{i=1}^n a_{ii}x_i^2 + \sum_{i=1}^n \sum_{j=1, j \neq i}^n a_{ij} x_i x_j, $$ 其中我們可以假設 $A$ 是一個對稱矩陣,因為如果 $A$ 不對稱,我們可以使用 $(A+A^T)/2$ 來取代之而不會改變原來的二次式: $$ \mathbf{x}^TA\mathbf{x} = \mathbf{x}^T \left(\frac{A+A^T}{2} \right)\mathbf{x} $$

二次式 $\mathbf{x}^TA\mathbf{x}$ 的梯度可以表示如下: $$ \nabla (\mathbf{x}^TA\mathbf{x}) = \left(\frac{A+A^T}{2}\right) \mathbf{x} $$

綜合前面的數學定義,我們可以得到下列幾個恆等式(假設所有梯度均是對 $\mathbf{x}$ 來進行,並假設 $A$ 為對稱矩陣):

有了前面這些恆等式後,我們就可以將其用在最小平方法的推導。假設我們要解的問題是 $$ A\mathbf{\theta}=\mathbf{y} $$ 其中 $A$ 是一個 $m \times n$ 的已知矩陣,$\mathbf{y}$ 是一個 $m \times 1$ 的已知向量,而 $\mathbf{\theta}$ 則是一個 $n \times 1$ 的未知向量。我們假設 $m>n$,在此情況下,方程式個數大於未知數個數,因此上式無精確解,欲使上式成立,須加上一誤差向量 $\mathbf{e}$: $$ A\mathbf{\theta}=\mathbf{y}+\mathbf{e} $$ 平方誤差則可寫成

$$ E(\mathbf{\theta})=\|\mathbf{e}\|^2=\mathbf{e}^T\mathbf{e}= (A\mathbf{\theta}-\mathbf{y})^T(A\mathbf{\theta}-\mathbf{y}) $$

由於精確解並不存在,因此我們退而求其次,改為尋求能使平方誤差 $E(\mathbf{\theta})$ 為最小的 $\mathbf{\theta}$ 值。由於 $E(\mathbf{\theta})$ 是 $\mathbf{\theta}$ 的二次方程式,因此我們可以直接對 $E(\mathbf{\theta})$ 進行偏微分,並令其等於零,即可得到一組 $n$ 元一次的線性聯立方程式來解出最佳的 $\mathbf{\theta}$ 值。換句話說,我們可以先計算 $E(\mathbf{\theta})$ 的梯度: $$ \begin{array}{rcl} \nabla E(\mathbf{\theta}) & = & \nabla ( (A\mathbf{\theta}-\mathbf{y})^T(A\mathbf{\theta}-\mathbf{y}) )\\ & = & \nabla ( (\mathbf{\theta}^TA^T-\mathbf{y}^T)(A\mathbf{\theta}-\mathbf{y}) )\\ & = & \nabla ( \mathbf{\theta}^TA^TA\mathbf{\theta}-\mathbf{\theta}^TA^T\mathbf{y} - \mathbf{y}^TA\mathbf{\theta} + \mathbf{y}^T\mathbf{y} )\\ & = & \nabla ( \mathbf{\theta}^TA^TA\mathbf{\theta} - 2\mathbf{\theta}^TA^T\mathbf{y} + \mathbf{y}^T\mathbf{y} )\\ & = & \nabla (\mathbf{\theta}^TA^TA\mathbf{\theta}) - 2\nabla(\mathbf{\theta}^TA^T\mathbf{y}) + \nabla(\mathbf{y}^T\mathbf{y}) \\ & = & 2A^TA\mathbf{\theta}-2A^T\mathbf{y} \end{array} $$

令上式梯度等於零,即可得到 $\mathbf{\theta}$ 的最佳值: $$ \hat{\mathbf{\theta}} = (A^TA)^{-1}A^T\mathbf{y} $$

Hint
欲知最小平方法的各種相關性質,可參考筆者另一著作:「Neuro–Fuzzy and Soft Computing」,Prentice Hall,1997。


MATLAB程式設計:進階篇