机器学习优化器总结
算法流程参考: https://blog.csdn.net/nickkissbaby_/article/details/81066643 解释及可视化参考: https://blog.csdn.net/weixin_40170902/article/details/80092628 下面简要总结一下: 梯度算法:包括 全局梯度下降、批量梯度下降、随机梯度下降。 训练速度逐渐上升,而效果逐渐下降,权衡考虑,一般是批量梯度下降法较好。 动量算法:包括 Momentum 算法和 Nesterov 算法。这类算法一般探索的参数空间范围大,且收敛速度快。 Momentum :使用速度v累积之前的梯度,然后再应用梯度更新。当梯度陡峭时,它可以更快地趋向极值点。当梯度改变正负时,它考虑了之前的梯度,不会摆动到极值点另一边太厉害。 它只能在梯度正负变化时悬崖勒马。 Nesterov :在 Momentum 计算梯度前, 增加一步 (先用速度更新参数),然后再计算损失函数对参数的梯度。先让参数在之前的速度上前进一步(探路),这样计算的梯度不仅考虑了前因,还考虑了“后因”(以当前速度考虑)。简单说, 它可以提前刹车 。 自适应算法:AdaGrad、RMSprop、AdaDelta、Adam。 AdaGrad :它 累积梯度的平方 ,计算梯度的时候,再除以这个累积的平方。所以梯度陡峭时,更新较慢