再談最小平方問題

有了矩陣求導工具後,我們可以尋找最小化損失函式的引數值的閉式解(closed-form solution)。首先我們先把這個損失函式表達成向量的形式。

把每個訓練樣本放在矩陣一行,可以得到一個\(m \times n\) 設計矩陣\(X\) (design matrix) ,即
\[ X=\left[ \begin{array}{c}{ -\left(x^{(1)}\right)^{T}-} \\ {-\left(x^{(2)}\right)^{T}-} \\ {\vdots} \\ {-\left(x^{(m)}\right)^{T}-} \end{array} \right] \]
$\vec{y} $ 是一個$m $ 維的列向量,包含對應的標籤,
\[ \vec{y}=\left[\begin{array}{c}{y^{(1)}} \\ {\vdots} \\ {y^{(m)}}\end{array}\right] \]
因此,有,
\[ \begin{aligned} X \theta-\vec{y} &= \left[\begin{array}{c}{\left(x^{(1)}\right)^{T} \theta} \\ {\vdots} \\ {\left(x^{(m)}\right)^{T} \theta}\end{array}\right]-\left[\begin{array}{c}{y^{(1)}} \\ {\vdots} \\ {y^{(m)}}\end{array}\right] \\ &=\left[\begin{array}{c}{h_{\theta}\left(x^{(1)}\right)-y^{(1)}} \\ {\vdots} \\ {h_{\theta}\left(x^{(m)}\right)-y^{(m)}}\end{array}\right] \end{aligned} \]
我們先把均方誤差損失函式\(J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}\) 表達成向量的形式,有,
\[ \begin{aligned} \frac{1}{2}(X \theta-\vec{y})^{T}(X \theta-\vec{y}) &=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} \\ &= J(\theta) \end{aligned} \]
可以看到這個損失函式其實是關於向量引數\(\theta\) 的矩陣函式。利用之前矩陣求導的兩條性質,
\[ \begin{equation} \begin{aligned} \nabla_{A^{T}} f(A) &=\left(\nabla_{A} f(A)\right)^{T} \\ \nabla_{A} \operatorname{tr}A B A^{T} C &=C A B+C^{T} A B^{T} \\ \end{aligned} \end{equation} \]
我們可以有,
\[ \begin{equation} \begin{aligned} \nabla_{A^{T}} \operatorname{tr}A B A^{T} C &= B^{T}A^{T}C^{T}+BA^{T}C \\ \end{aligned}\end{equation} \]
接下來對損失函式關於引數向量\(\theta\) 求導我們有,
\[ \begin{aligned} \nabla_{\theta} J(\theta) &=\nabla_{\theta} \frac{1}{2}(X \theta-\vec{y})^{T}(X \theta-\vec{y}) \\ &=\frac{1}{2} \nabla_{\theta}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} \vec{y}-\vec{y}^{T} X \theta+\vec{y}^{T} \vec{y}\right) \\ &=\frac{1}{2} \nabla_{\theta} \operatorname{tr}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} \vec{y}-\vec{y}^{T} X \theta+\vec{y}^{T} \vec{y}\right) \\ &=\frac{1}{2} \nabla_{\theta}\left(\operatorname{tr} \theta^{T} (X^{T} X) \theta I-2 \operatorname{tr} \vec{y}^{T} X \theta\right) \\ &=\frac{1}{2}\left(X^{T} X \theta+X^{T} X \theta-2 X^{T} \vec{y}\right) \\ &=X^{T} X \theta-X^{T} \vec{y} \end{aligned} \]
第三個等式用到一個標量的跡就是它本身。第五個等式前半部分用到了上面的性質$\nabla_{A^{T}} \operatorname{tr}A B A^{T} C = B^{T}A^{T}C^{T}+BA^{T}C $ ,而後半部分用到$\nabla_{A}\operatorname{tr}A B =B^{T} $ 。

我們令這個導數等於零,就得到正規方程(normal equations),
\[ \begin{equation}\begin{aligned} X^{T} X \theta=X^{T} \vec{y} \end{aligned}\end{equation} \]
最後可以得到引數的閉式解,
\[ \begin{equation}\begin{aligned} \theta=(X^{T} X)^{-1}X^{T} \vec{y} \end{aligned}\end{equation} \]
打完,收工。

相關文章