机器学习入门(四)之----线性回归(正规方程)

再谈最小平方问题

有了矩阵求导工具后,我们可以寻找最小化损失函数的参数值的闭式解(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}AC{T}+BAC $ ,而后半部分用到$\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} \]

打完,收工。

img

posted @ 2019-09-23 14:44  客忆安排  阅读(601)  评论(0编辑  收藏  举报