梯度下降 gradient descent

原创 2018-02-25 20:34 阅读(172)次


梯度下降法,用来最小化一个函数的方法,可以用在机器学习的很多地方,特别是cost function,但不仅限于此。 也有称之为最速下降法。


梯度下降的原理就是沿着曲线逐步调整,以一定的学习速率向最低点移动,直到找到全局最低点或者局部最低点。



梯度下降需要有一下几个注意事项:

1.   因为很可能会停留在局部最低值,所以对应的曲线图形最好是凸函数图形,即只有全局最低点,不存在局部最低点的图形,这样就可以排除局部最低点的困扰。

如图,因为到了X点的时候,导数是0,梯度下降不会在移动参数了,认为是最低点了,但其实红点才是最低点。

2.   学习速率的选择,就是每次移动的“步伐”大小。步伐太小,从起始点移动到最低点需要的移动次数就更多,对应的效率就更低。步伐太大,可能会造成越过最低点,以至于一直无法收敛。


3.    数学的导数可以表示是曲线的切线,通过导数的取值,可以知道曲线哪边高,哪边低,可以用来进行下降方向的确定。但到达最低点的时候,曲线的切线斜率是0,此时依照公司就不会在改变θ,也就收敛了。

4.    如果曲线有参数,分别对他们求偏导数,而且需要同时更新不同的参数。不可以更新其中一个后再来计算另外一个。

5.    一开始初始化参数的值可以为0,多个参数可以都为0。 对于只有一个全局最低点的函数,选取点不会影响结果。


公式:

     

其中 α 就是学习速率,他是一个正数,导数项根据θ的取值,可能是正也可能是负,但都可以让J函数想最低点移动。

本文到此结束。



本站作品的版权皆为作品作者所有。

本站文字和内容为本站编辑或翻译,部分内容属本站原创,所以转载前务必通知本站并以超链接形式注明内容来自本站,否则以免带来不必要的麻烦。

本站内容欢迎分享,但拒绝有商业目的的转载!