首先我们有:

\(\nabla_{A}f(A)=\begin{bmatrix} {\partial{f} \over \partial{A_{11}}} & \cdots & {\partial{f} \over \partial{A_{1n}}} \\ \vdots & \ddots & \vdots \\ {\partial{f} \over \partial{A_{m1}}} & \cdots & {\partial{f} \over \partial{A_{mn}}} \\ \end{bmatrix}\)

\(tr\,X\) 为矩阵的trace ,为矩阵对角线上(ii对)所有元素和
\(tr\,A=\sum_{i=1}^n A_{ii}\) 其中A为一个nxn的矩阵
trace有如下性质:

\(tr\,X=tr\,X^T\)

\(tr\,ABC=tr\,BAC=tr\,BCA\)

\(tr\,(A+B)=tr\,A+tr\,B\)

\(tr\,aX=a\,tr\,X\)

\(\nabla_{A}f(A)\)有如下性质:

\(\nabla_{A}tr\,AB\;=\;B^T\)

\(\nabla_{A^T}f(A)\;=\;(\nabla_{A}f(A))^T\)

\(\nabla_{A}tr\,ABA^TC\;=\;CAB+C^TAB^T\)

\(\nabla_{A}tr\,|A|\;=\;|A|(A^{-1})^T\)

————————————前置分割线——————————————–
现在我们来假设我们有训练数据X和Y,X有m组数据,每组数据有n个特征,则:

\(X\;=\;\begin{bmatrix} \cdots & (x^{(1)})^T & \cdots \\ \cdots & (x^{(2)})^T & \cdots \\ \vdots & \vdots & \vdots \\ \cdots & (x^{(m)})^T & \cdots \\ \end{bmatrix}\) ,\(\vec y\;=\;\begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)}\\ \end{bmatrix}\)

现在让\(h_\theta(x^{(i)})=(x^{(i)})^T\theta\),则可以得到:

\(X\theta-\vec y \;=\; \begin{bmatrix} h_\theta(x^{(1)})-y^{(1)} \\ \vdots \\ h_\theta(x^{(m)})-y^{(m)} \\ \end{bmatrix}\)

其中\(\theta\)为参数。
通过向量的性质:\(z^Tz=\sum_i z^2_i \)可以得到

\( {1 \over 2}(X\theta-\vec y)^T(X\theta-\vec y) \;=\; {1 \over 2}\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 \;=\; J(\theta) \)

最终目的即最小化J,所以要找到J最小时的参数\(\theta\)值
可以开始推导:
把J关于\(\theta\)的函数展开

\(\nabla_{\theta}J(\theta) \;=\; \nabla_{\theta}{1 \over 2}(X\theta-\vec y)^T(X\theta-\vec y) \)

将常数提到最前面,并且做类似展开平方项的运算,即\((AB-C)^T(AB-C)=A^TB^TAB-C^TAB-A^TB^TC+C^TC\):

\(=\; {1 \over 2}\nabla_{\theta}\, \theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta +y^Ty \)

因为常数的trace等于其本身的值:

\(=\; {1 \over 2}\nabla_{\theta}\,tr\, [\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta +y^Ty]\)

从前置trace性质1可知,矩阵转置前后的trace不变,且\( \theta^TX^Ty \in R \),而\([\theta^TX^Ty]^T=\theta{X}y^T\),可得:

\(=\; {1 \over 2}\nabla_{\theta}\,tr\,\theta^TX^TX\theta-2tr\,\theta{X}y^T +tr\,y^Ty]\)

\(=\; {1 \over 2}[\nabla_{\theta}\,tr\,\theta^TX^TX\theta-2\nabla_{\theta}\,tr\,\theta{X}y^T +\nabla_{\theta}\,tr\,y^Ty]\)

从前置\(\nabla_{A}f(A)\)性质3和1来推导下一步。
上式可分为三个部分:
1、\(\nabla_{\theta}\,tr\,\theta^TX^TX\theta\),采用性质三(\(\nabla_{A}tr\,ABA^TC\;=\;CAB+C^TAB^T\)),令\(\theta=A,I=B,\theta^T=A^T,X^TX=C\),最终可以推导出:

\(\nabla_{\theta}\,tr\,\theta^TX^TX\theta \;=\; X^TX\theta + XX^T\theta\)

其中I为单位矩阵
2、\(\nabla_{\theta}\,tr\,\theta{X}y^T\),采用性质一(\(\nabla_{A}tr\,AB\;=\;B^T\)),令\(tr\,\theta=A,Xy^T=B\),可得:

\(\nabla_{\theta}\,tr\,\theta{X}y^T \;=\; X^Ty\)

3、\(\nabla_{\theta}\,tr\,y^Ty\),由于此项并不依赖于\(\theta\)所以该式为0
最后得出:

\(=\; {1 \over 2}[X^TX\theta + XX^T\theta – 2X^Ty]\)

\(=\; X^TXy-X^Ty\)

令该式=0,则移项得到:

\(X^TXy \;=\; X^Ty\)

该等式即normal equation.同时也可以得到计算\(\theta\)的公式:

\(\theta \; = \; (X^TX)^{-1}X^Ty\)