梯度下降算法
- 随机梯度下降。随机梯度下降是指每次迭代在训练数据中随机抽取一个数据计算梯度来更新模型得参数。随机梯度下降容易受到噪声干扰,训练时间长,代价函数最终会围绕全局最小值或者局部极小值震荡。
- 批量梯度下降。每次迭代时使用所有的训练数据来计算梯度更新模型的参数。batch梯度下降算法适用于小数据集的训练,对于大数据集(大于2000)不太适应,因为每次训练的时候都要使用所有的训练数据,会导致需要消耗大量的内存,增加电脑的计算量,计算时间长。batch梯度下降不容易受到噪声数据的干扰,在迭代的时候能够保证向全局最小值或局部极小值的方向进行收敛。
- 小批量梯度下降。每次迭代时会使用
一个mini-batch数据
来计算梯度更新模型的参数。mini-batch梯度下降算法是最常用的梯度下降算法,mini-batch对计算机的内存要求不高,收敛速度相对较快,在迭代的时候不能保证每次迭代都像全局最小值进行收敛,但是整体的趋势是向全局最小值进行收敛的
动量法
梯度下降法,在y轴方向进行震荡,动量法可以减小这种震荡,并且可以加速x轴方向得搜索。