1、SGD
SGD算法是最基本的优化算法,首先批量采样,然后计算该批次样本的梯度,最后以学习率和梯度更新模型参数theta。
2、SGD with momentum
相对SGD算法,多了参数v,用来统计历史梯度累计和,另外通过参数alpha来控制历史梯度累加和对当前参数更新的影响。
3、SGD with Nesterov
和SGD with momentum算法的不同点在于,计算梯度之前先用历史梯度v更新了参数theta。
4、AdaGrad
AdaGrad算法主要是对历史梯度变化值累加,用来更新学习率,参数偏导越大,学习率减少得越快,参数偏导越小,学习率减少得越慢。因为学习率的下降用了历史上所有的梯度平方值,可能会导致学习率下降得过快,因此只对某些模型比较有效。
5、RMSProp
RMSProp算法相比AdaGrad多了一个参数,用来控制梯度平方历史累加值和新的梯度平方的比例,变成历史梯度平方的加权移动平均,可以减少时间太久的历史梯度值的影响,在非凸分布情况下效果更好。
6、RMSProp with Nesterov momentum
相对RMSProp算法,不同点在于计算梯度前先更新了参数theta,后面更新参数theta时同时利用了梯度累加和v以及梯度平方累加和R。
7、Adam
Adam算法引入了s、r作为一阶导数变量、二阶导数变量,、分别控制历史累加值对当前的影响,来保证历史值对当前的影响比较平滑。另外,Adam算法对超参数的初始值不敏感。