美文网首页
【机器学习】梯度下降算法

【机器学习】梯度下降算法

作者: w8ed | 来源:发表于2019-03-18 23:33 被阅读0次

梯度下降算法

若单个误差为:e=\frac{1}{2}(y-\bar{y})^2

则误差和:
\begin{aligned} E&=e^{(1)}+e^{(2)}+e^{(3)}+...+e^{(n)}\\ &=\sum_{i=1}^{n}e^{(i)}\\ &=\frac{1}{2}\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})^2 \end{aligned}

代入\bar{y}^{(i)}=\mathrm{w}^T\mathrm{x}^{(i)},得

E(\mathrm{w})=\frac{1}{2}\sum_{i=1}^{n}(\mathrm{y^{(i)}-\mathrm{w}^Tx^{(i)}})^2
接下来的任务,就是要找到合适的\mathrm w,使得函数E(\mathrm{w})能取到最小值。

这里要用到函数E(\mathrm{w})的梯度。梯度是一个向量,它指向函数值上升最快的方向,而梯度的反方向,则指向函数值下降最快的方向。
对于函数f(x)来说,我们要沿着梯度的反方向,去修改x的值,直到走到函数的最小值附近。
对于函数f(x),梯度下降算法的参数修改规则为
\mathrm{x}_{new}=\mathrm{x}_{old}-\eta\nabla{f(x)}\quad\quad(1)

其中,\nabla{f(x)}为函数f(x)的梯度,\eta为学习速率。

对于函数E(\mathrm{w}),对应的梯度下降算法的参数修改规则为
\mathrm{w}_{new}=\mathrm{w}_{old}-\eta\nabla{E(\mathrm{w})}

接下来的问题,就是求梯度\nabla{E(\mathrm{w})}


求梯度\nabla{E(\mathrm{w})}

函数的梯度的定义就是它相对于各个变量的偏导数,因此有

\begin{aligned} \nabla{E(\mathrm{w})}&=\frac{\partial}{\partial\mathrm{w}}E(\mathrm{w})\\ &=\frac{\partial}{\partial\mathrm{w}}\frac{1}{2}\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})^2 \\ &=\frac{1}{2}\sum_{i=1}^{n}\frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2 \\ \end{aligned}

得到了
\begin{aligned} \nabla{E(\mathrm{w})} &=\frac{1}{2} \sum_{i=1}^{n}\frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2 \quad\quad(2)\\ \end{aligned}
之后,接下来的任务就是求
\frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2


\begin{aligned} \frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2 &= {\frac{\partial}{\partial\bar{y}}(y^{(i)}-\bar{y}^{(i)})^2} {\frac{\partial{\bar{y}}}{\partial\mathrm{w}}} \end{aligned}

因为
\begin{aligned} {\frac{\partial}{\partial\bar{y}}(y^{(i)}-\bar{y}^{(i)})^2} =&\frac{\partial}{\partial\bar{y}}(y^{(i)2}-2\bar{y}^{(i)}y^{(i)}+\bar{y}^{(i)2})\\ =&-2y^{(i)}+2\bar{y}^{(i)}\\ \end{aligned}

\begin{aligned} {\frac{\partial{\bar{y}}}{\partial\mathrm{w}}}= &\frac{\partial}{\partial\mathrm{w}}\mathrm{w}^T\mathrm{x}=\mathrm{x} \end{aligned}

所以
\frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2= {\frac{\partial}{\partial\bar{y}}(y^{(i)}-\bar{y}^{(i)})^2} {\frac{\partial{\bar{y}}}{\partial\mathrm{w}}} =2(-y^{(i)}+\bar{y}^{(i)})\mathrm{x}

代入到(2),得
\begin{aligned} \nabla{E(\mathrm{w})} &=\frac{1}{2}\sum_{i=1}^{n}\frac{\partial}{\partial\mathrm{w}}(y^{(i)}-\bar{y}^{(i)})^2\\ &=-\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})\mathrm{x} \end{aligned}


\nabla{E(\mathrm{w})}=-\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})\mathrm{x}^{(i)}
代入到

\mathrm{w}_{new}=\mathrm{w}_{old}-\eta\nabla{E(\mathrm{w})}

最终得到\mathrm{w}的修改规则为
\mathrm{w}_{new}=\mathrm{w}_{old}+\eta\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})\mathrm{x}^{(i)}


参考资料:https://www.zybuluo.com/hanbingtao/note/448086

相关文章

网友评论

      本文标题:【机器学习】梯度下降算法

      本文链接:https://www.haomeiwen.com/subject/ofaimqtx.html