美文网首页
如何手写梯度下降法

如何手写梯度下降法

作者: 时光如水_fe87 | 来源:发表于2021-09-29 17:55 被阅读0次

    梯度下降法是机器学习的一种学习方法。我觉得非常妙。通过一个一维的问题用梯度下降法,理解学习过程是怎样的。

    假设g是目标函数f的梯度函数,w0是初始值,r是学习速度, g(w)=0时候,认为找到目标函数的局部极小点,设置精度p=0.001。

    1.v=g(w0);

    2.v < p 这里一般用 abs(v)<p; 

    3.w1= w0 - v*r ;

           在这里得到新的w值重复1,2步骤。这里为什么是w0-v*r 这个是泰勒公式在梯度下降法中的应用。这一步抽象看作一个直角三角形去拟合一条曲线。图像抽象如下。

    可以去调节r,就是增大或者缩小学习速度,看看这个红色的三角形的变化。

    如果r设置过大,可能条件一就不能满足,条件二算出来的w也不算最优。

    如果r太小,又学习太慢。

    还有一个问题,收敛的条件,就是迭代到什么时候为止呢?

    1.设置精度,当两次迭代的差异小于多少的时候,默认学不动了,学习停止。

      (带入梯度函数直接求,一维的用绝对值,二维以上的用范数。这里参考别人的代码觉得这种方法简单)

    2.设置最大迭代次数

    相关文章

      网友评论

          本文标题:如何手写梯度下降法

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