常见优化器总结
一、BGD(批量梯度下降)
定义:批量梯度下降法是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新。
优点:一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。
缺点:当样本数据m很大时,每迭代一步都需要对所有样本计算,训练过程会很慢。
二、SGD(随机梯度下降)
定义:每次迭代仅使用一个训练样本来计算损失函数的梯度,并更新模型参数
特点:适用于大规模数据集和在线学习场景
三、Momentum(动量法)
定义:通过引用一个累计梯度的指数加权平均,将过去的梯度信息考虑进当前的参数更新中,从而增加稳定性和提高训练效率。
特点:常用于改进随机梯度下降(SGD)和小批量梯度下降(MBGD)等优化器
四、NAG(Nesterov Accelerated Gradient)
定义:在动量法基础上进行改进的优化算法,先按照之前的动量更新参数,再在这个新的位置计算梯度,并根据此调整更新方向。
特点:可以减少摆动,加快收敛速度
五、Adagrad
定义:一种自适应梯度下降的优化器,对不同参数使用不同的学习率。对于更新频率较低的参数施以较大的学习率,对于更新频率较高的参数使用较小的学习率。
特点:使用大规模数据集和特征提取任务
六、RMSprop
定义:对Adagrad的一种改进,根据梯度的历史信息来自适应地调整学习率。使用梯度的指数加权平均而不是累积和来计算学习率。
特点:适用于处理非稀疏数据和长期依赖的问题
七、Adadelta
定义:对Adagrad的另一种改进,通过计算梯度平方的指数加权移动平均来避免学习率趋于0的问题,同时简化了计算。
特点:适用于需要很长时间训练的大型神经网络和需要稳定学习率的任务
八、Adam
定义:结合了AdaGrad和Momentum两种优化算法的优点,能够快速收敛并且减少训练时间。
Adam优化器计算出每个参数的独立自适应学习率,不需要手动调整学习率的大小
特点:适用于处理大规模数据和训练复杂模型