机器学习入门之----线性回归(正规方程)
Posted qizhien
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习入门之----线性回归(正规方程)相关的知识,希望对你有一定的参考价值。
再谈最小平方问题
有了矩阵求导工具后,我们可以寻找最小化损失函数的参数值的闭式解(closed-form solution)。首先我们先把这个损失函数表达成向量的形式。
把每个训练样本放在矩阵一行,可以得到一个\(m \times n\) 设计矩阵\(X\) (design matrix) ,即
\[
X=\left[
\beginarrayc
-\left(x^(1)\right)^T- \\
-\left(x^(2)\right)^T- \\
\vdots \-\left(x^(m)\right)^T-
\endarray
\right]
\]
$\vecy $ 是一个$m $ 维的列向量,包含对应的标签,
\[
\vecy=\left[\beginarraycy^(1) \\ \vdots \\ y^(m)\endarray\right]
\]
因此,有,
\[
\beginaligned X \theta-\vecy &=
\left[\beginarrayc\left(x^(1)\right)^T \theta \\ \vdots \\ \left(x^(m)\right)^T \theta\endarray\right]-\left[\beginarraycy^(1) \\ \vdots \\ y^(m)\endarray\right] \\
&=\left[\beginarraych_\theta\left(x^(1)\right)-y^(1) \\ \vdots \\ h_\theta\left(x^(m)\right)-y^(m)\endarray\right] \endaligned
\]
我们先把均方误差损失函数\(J(\theta)=\frac12 \sum_i=1^m\left(h_\theta\left(x^(i)\right)-y^(i)\right)^2\) 表达成向量的形式,有,
\[
\beginaligned \frac12(X \theta-\vecy)^T(X \theta-\vecy) &=\frac12 \sum_i=1^m\left(h_\theta\left(x^(i)\right)-y^(i)\right)^2 \\ &=
J(\theta)
\endaligned
\]
可以看到这个损失函数其实是关于向量参数\(\theta\) 的矩阵函数。利用之前矩阵求导的两条性质,
\[
\beginequation
\beginaligned
\nabla_A^T f(A) &=\left(\nabla_A f(A)\right)^T \\nabla_A \operatornametrA B A^T C &=C A B+C^T A B^T \\
\endaligned
\endequation
\]
我们可以有,
\[
\beginequation
\beginaligned
\nabla_A^T \operatornametrA B A^T C &= B^TA^TC^T+BA^TC \\ \endaligned\endequation
\]
接下来对损失函数关于参数向量\(\theta\) 求导我们有,
\[
\beginaligned
\nabla_\theta J(\theta) &=\nabla_\theta \frac12(X \theta-\vecy)^T(X \theta-\vecy) \\
&=\frac12 \nabla_\theta\left(\theta^T X^T X \theta-\theta^T X^T \vecy-\vecy^T X \theta+\vecy^T \vecy\right) \&=\frac12 \nabla_\theta \operatornametr\left(\theta^T X^T X \theta-\theta^T X^T \vecy-\vecy^T X \theta+\vecy^T \vecy\right) \\
&=\frac12 \nabla_\theta\left(\operatornametr \theta^T (X^T X) \theta I-2 \operatornametr \vecy^T X \theta\right) \\ &=\frac12\left(X^T X \theta+X^T X \theta-2 X^T \vecy\right) \&=X^T X \theta-X^T \vecy
\endaligned
\]
第三个等式用到一个标量的迹就是它本身。第五个等式前半部分用到了上面的性质$\nabla_A^T \operatornametrA B A^T C = B^TA^TC^T+BA^TC $ ,而后半部分用到$\nabla_A\operatornametrA B =B^T $ 。
我们令这个导数等于零,就得到正规方程(normal equations),
\[
\beginequation\beginaligned
X^T X \theta=X^T \vecy
\endaligned\endequation
\]
最后可以得到参数的闭式解,
\[
\beginequation\beginaligned
\theta=(X^T X)^-1X^T \vecy
\endaligned\endequation
\]
打完,收工。
以上是关于机器学习入门之----线性回归(正规方程)的主要内容,如果未能解决你的问题,请参考以下文章