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

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

作者: 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