梯度下降法原理
梯度下降法又叫盲人下山法,沿着最陡峭的地方,下降最快。
直观的理解,在自变量的极小阈内,导数大于0,函数递增。导数小于0,函数递减。所以沿着梯度的方向函数增加最快。沿着梯度的负方向,函数降低最快。
由泰勒公式的一阶展开式得到:
梯度的初始值
初始值一般设定为0。神经网络中,一般设定为随机值(防止由于网络的对称性,造成参数更新的对称性)。
步长的设定
步长一般设定为一个接近于0的很小的正数。如0.001,0.0001等。也可以设置为动态值,如用退火算法的思想,设置为1/(t+1)等,其中t是迭代次数。刚开始距最优点较远,步长较大。随着迭代次数的增加,接近最优点时,步长逐渐变小。
鞍点问题和局部最小值问题
对于强凸问题,即只有一个最优解时,算法一定收敛到最优解。但是当问题包含多个局部最优解时,算法不一定收敛到全局最优解。鞍点即梯度为0的点,但并不是极值点。
这里介绍一种基于动量的梯度更新算法。即梯度不仅取决于当前值,还要取决于历史值。图中可以看出这种方法ÿ