如何求解線性最小二乘問題

線性最小二乘問題的目標是找到一個線性模型,使其誤差平方和最小。在數學上,這可以表示為以下形式:

[ \min{\mathbf{w}, b} \sum{i=1}^{n} (\mathbf{w}^{\top}\mathbf{x}_i + b - y_i)^2 ]

其中,(\mathbf{w}) 是模型的權重向量,(b) 是偏置項,(\mathbf{x}_i) 是第 (i) 個數據點的特徵向量,(y_i) 是對應的標籤,(n) 是數據點的數量。

為了求解這個問題,可以使用以下方法:

  1. 梯度下降法: 梯度下降法是一種常見的優化算法,可以用來最小化任何可微分函數。對於線性最小二乘問題,梯度下降法可以疊代更新權重 (\mathbf{w}) 和偏置 (b),直到達到預定的停止條件(如達到某個精度或疊代次數上限)。

    [ \mathbf{w} \leftarrow \mathbf{w} - \alpha \nabla{\mathbf{w}} J(\mathbf{w}, b) ] [ b \leftarrow b - \alpha \nabla{b} J(\mathbf{w}, b) ]

    其中 (J(\mathbf{w}, b)) 是損失函數,(\alpha) 是學習率,(\nabla{\mathbf{w}} J(\mathbf{w}, b)) 和 (\nabla{b} J(\mathbf{w}, b)) 分別是損失函數對於 (\mathbf{w}) 和 (b) 的梯度。

  2. 規範化方程: 對於線性最小二乘問題,可以通過規範化方程直接求解。規範化方程的解是 (\mathbf{X}^{\top}\mathbf{X}\mathbf{w} = \mathbf{X}^{\top}\mathbf{y}),其中 (\mathbf{X}) 是數據點的特徵矩陣,(\mathbf{y}) 是標籤向量。

    [ \mathbf{w} = (\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y} ] [ b = \frac{1}{n} \sum_{i=1}^{n} y_i - \mathbf{w}^{\top}\mathbf{x}_i ]

  3. 奇異值分解(SVD): 如果 (\mathbf{X}) 的列空間不滿足 (\mathbf{X}^{\top}\mathbf{X}) 的 Rank 條件,則可以使用 SVD 來求解。SVD 將 (\mathbf{X}) 分解為 (\mathbf{U}\Sigma\mathbf{V}^{\top}),其中 (\mathbf{U}) 和 (\mathbf{V}) 是正交矩陣,(\Sigma) 是對角矩陣。

    [ \mathbf{w} = \mathbf{V}\Sigma^{-1}\mathbf{U}^{\top}\mathbf{y} ] [ b = \frac{1}{n} \sum_{i=1}^{n} y_i - \mathbf{w}^{\top}\mathbf{x}_i ]

  4. QR 分解: 如果 (\mathbf{X}) 的列空間是滿的,則可以使用 QR 分解來求解。QR 分解將 (\mathbf{X}) 分解為 (\mathbf{Q}\mathbf{R}),其中 (\mathbf{Q}) 是正交矩陣,(\mathbf{R}) 是上三角矩陣。

    [ \mathbf{w} = \mathbf{R}^{-1}\mathbf{Q}^{\top}\mathbf{y} ] [ b = \frac{1}{n} \sum_{i=1}^{n} y_i - \mathbf{w}^{\top}\mathbf{x}_i ]

選擇哪種方法取決於數據的特徵、模型的複雜度以及計算資源等因素。在實際應用中,梯度下降法因其靈活性和適應性而被廣泛使用,尤其是在處理大型數據集和複雜模型時。