http://blog.csdn.net/wangxin110000/article/details/37809321
梯度下降算法是最优化中很常用的一个算法,他能找到一个局部最优解,如果目标函数是凸函数,那么他能找到全局的最优解
两个特性可以解释梯度下降法:
1:走一步看一步
2:每一步的“利益”最大化
(一)走一步看一步
学过高数的都知道,假设我在一座山峰上,如果我想最快速下山,我选择的方向应该是梯度方向的反方向,由于山峰曲面每一点的梯度都是不一样的,所以我走一小步就要重新算一下当前的梯度,以决定下一步该往哪个方向走
(二)每一步的“利益”最大化
现在我有了下一步的方向,还有了出发位置,剩下的就是解决这一步跨多远的问题了,我要找到一个距离,使得恰好走这么远,我的高度下降最多,走远了不行,走近了也不行
(三)见好就收
我在当前位置,向哪个方向走,都不能再下降了,或者下降非常非常缓慢,可以认为找到一个最优点