Normal Equation(正規方程) 是線性代數中的一個重要概念,主要用于解決最小二乘問題(Least Squares Problem)。它通過直接求解一個線性方程組,找到線性回歸模型的最優參數(如權重或系數)。以下是詳細介紹:
1. 定義與數學表達式
給定一個超定方程組(方程數量多于未知數):
A x = b A\mathbf{x} = \mathbf{b} Ax=b
其中:
- A ∈ R m × n A \in \mathbb{R}^{m \times n} A∈Rm×n( m > n m > n m>n)是一個設計矩陣(Design Matrix),
- x ∈ R n \mathbf{x} \in \mathbb{R}^n x∈Rn 是未知參數向量,
- b ∈ R m \mathbf{b} \in \mathbb{R}^m b∈Rm 是目標向量(通常不在 A A A 的列空間中)。
由于 A x = b A\mathbf{x} = \mathbf{b} Ax=b 通常無解,Normal Equation 的目標是找到一個近似解 x \mathbf{x} x,使得殘差向量 e = b ? A x \mathbf{e} = \mathbf{b} - A\mathbf{x} e=b?Ax 的 L2 范數最小(即最小化誤差平方和)。
Normal Equation 的公式為:
A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb
如果 A T A A^T A ATA 可逆,則最優解為:
x = ( A T A ) ? 1 A T b \mathbf{x} = (A^T A)^{-1} A^T \mathbf{b} x=(ATA)?1ATb
2. 推導方法
方法一:矩陣求導
- 定義損失函數(誤差平方和):
J ( x ) = ∥ b ? A x ∥ 2 2 = ( b ? A x ) T ( b ? A x ) J(\mathbf{x}) = \|\mathbf{b} - A\mathbf{x}\|_2^2 = (\mathbf{b} - A\mathbf{x})^T (\mathbf{b} - A\mathbf{x}) J(x)=∥b?Ax∥22?=(b?Ax)T(b?Ax) - 對 x \mathbf{x} x 求導并令導數為零:
? J ? x = ? 2 A T b + 2 A T A x = 0 \frac{\partial J}{\partial \mathbf{x}} = -2A^T \mathbf{b} + 2A^T A \mathbf{x} = 0 ?x?J?=?2ATb+2ATAx=0 - 得到 Normal Equation:
A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb
方法二:幾何投影
- 幾何視角:
- A x A\mathbf{x} Ax 是 b \mathbf{b} b 在 A A A 的列空間(Column Space, C ( A ) C(A) C(A))上的投影 p \mathbf{p} p。
- 殘差向量 e = b ? p \mathbf{e} = \mathbf{b} - \mathbf{p} e=b?p 必須正交于列空間,即:
A T e = 0 ? A T ( b ? A x ) = 0 A^T \mathbf{e} = 0 \quad \Rightarrow \quad A^T (\mathbf{b} - A\mathbf{x}) = 0 ATe=0?AT(b?Ax)=0 - 由此得到 Normal Equation:
A T A x = A T b A^T A \mathbf{x} = A^T \mathbf{b} ATAx=ATb
3. 幾何解釋
-
列空間與投影:
A A A 的列空間 C ( A ) C(A) C(A) 是所有可能的 A x A\mathbf{x} Ax 組成的子空間。由于 b \mathbf{b} b 不在 C ( A ) C(A) C(A) 中,我們尋找 x \mathbf{x} x 使得 A x A\mathbf{x} Ax 是 b \mathbf{b} b 在 C ( A ) C(A) C(A) 上的投影 p \mathbf{p} p。 -
正交性條件:
殘差 e = b ? p \mathbf{e} = \mathbf{b} - \mathbf{p} e=b?p 必須與列空間正交(即 e ∈ N ( A T ) \mathbf{e} \in N(A^T) e∈N(AT)),從而導出 Normal Equation。
4. 應用場景
Normal Equation 是線性回歸的核心工具,尤其適用于以下情況:
- 小規模數據集:當特征數 n n n 較小時(如 n < 10 , 000 n < 10,000 n<10,000),計算 ( A T A ) ? 1 (A^T A)^{-1} (ATA)?1 的開銷較小。
- 無需迭代:與梯度下降等迭代方法不同,Normal Equation 直接通過矩陣運算得到解析解。
- 理論分析:在數學推導中,Normal Equation 提供了最小二乘解的唯一性、存在性等性質。
5. 注意事項
-
矩陣可逆性:
- A T A A^T A ATA 必須是可逆的(即 A A A 列滿秩, rank ( A ) = n \text{rank}(A) = n rank(A)=n)。
- 如果 A T A A^T A ATA 不可逆(如特征間線性相關),則有無窮多解,此時需選擇最小范數解(通過偽逆 A ? A^\dagger A?)。
-
計算復雜度:
- 計算 ( A T A ) ? 1 (A^T A)^{-1} (ATA)?1 的時間復雜度為 O ( n 3 ) O(n^3) O(n3),當 n n n 較大時效率較低。
- 此時通常改用梯度下降或正則化方法(如嶺回歸)。
-
數值穩定性:
- 若 A A A 接近病態矩陣(條件數很大),可能導致 A T A A^T A ATA 不可逆或結果不穩定。
6. 示例
假設我們有以下數據:
A = [ 1 2 1 3 1 4 ] , b = [ 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 1 & 3 \\ 1 & 4 \end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix} 2 \\ 3 \\ 4 \end{bmatrix} A= ?111?234? ?,b= ?234? ?
- 計算 A T A A^T A ATA 和 A T b A^T \mathbf{b} ATb:
A T A = [ 3 9 9 29 ] , A T b = [ 9 29 ] A^T A = \begin{bmatrix} 3 & 9 \\ 9 & 29 \end{bmatrix}, \quad A^T \mathbf{b} = \begin{bmatrix} 9 \\ 29 \end{bmatrix} ATA=[39?929?],ATb=[929?] - 解 Normal Equation:
[ 3 9 9 29 ] [ x 1 x 2 ] = [ 9 29 ] \begin{bmatrix} 3 & 9 \\ 9 & 29 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 9 \\ 29 \end{bmatrix} [39?929?][x1?x2??]=[929?]
解得 x = [ 0 , 1 ] T \mathbf{x} = [0, 1]^T x=[0,1]T,即最佳擬合直線為 y = 0 + 1 x y = 0 + 1x y=0+1x。
7. 總結
項目 | 說明 |
---|---|
目標 | 找到使殘差 ∣ b ? A x ∣ 2 |\mathbf{b} - A\mathbf{x}|_2 ∣b?Ax∣2? 最小的 x \mathbf{x} x。 |
公式 | x = ( A T A ) ? 1 A T b \mathbf{x} = (A^T A)^{-1} A^T \mathbf{b} x=(ATA)?1ATb。 |
適用場景 | 小規模數據、理論分析、無迭代需求。 |
局限性 | 計算復雜度高、要求 A T A A^T A ATA 可逆。 |