最优化算法
2024-06-24 13:40:09
一、牛顿法
优点:收敛速度快。
缺点:靠近极小值时收敛速度减慢,求解Hessian矩阵的逆矩阵复杂,容易陷入鞍点。
适用情况:不适用于高维数据。
二、拟牛顿法
优化:收敛速度快,不用计算二阶导数,低运算复杂度。
缺点:存储正定矩阵,内存消耗大。
适用情况:不适用于高维数据。
三、批量梯度下降
优化:目标函数为凸函数时,可以找到全局最优值。
缺点:收敛速度慢,需要用到全部数据,内存消耗大。
适用情况:不适用于大数据集,不能在线更新模型。
四、随机梯度下降
优化:避免冗余数据的干扰,收敛速度加快,能够在线学习。
缺点:更新值的方差较大,收敛过程会产生波动,可能落入极小值,选择合适的学习率比较困难。
适用情况:适用于需要在线更新的模型,适用于大规模训练样本情况。
五、小批量梯度下降
优点:降低更新值的方差,收敛较为稳定。
适用情况:选择合适的学习率比较困难。
六、Momentum
优点:能够在相关方向加速SGD,抑制振荡,从而加快收敛。
缺点:需要人工设定学习率。
适用情况:适用于有可靠的初始化参数。
七、Nesterov
优点:梯度在大的跳跃后,进行计算对当前梯度进行校正。
缺点:需要人工设定学习率。
八、Adagrad
优点:不需要对每个学习率手工地调节。
缺点:仍依赖于人工设置一个全局学习率,学习率设置过大,对梯度的调节太大。中后期,梯度接近于0,使得训练提前结束。
适用情况:需要快速收敛,训练复杂网络时;适合处理稀疏梯度。
九、Adadelta
优点:不需要预设一个默认学习率,训练初中期,加速效果不错,很快,可以避免参数更新时两边单位不统一的问题。
缺点:训练后期,反复在局部最小值附近抖动。
适用情况:需要快速收敛,训练复杂网络时。
十、RMSprop
优点:解决 Adagrad 激进的学习率缩减问题。
缺点:依然依赖于全局学习率
适用情况:需要快速收敛,训练复杂网络时;适合处理非平稳目标,对于RNN效果很好。
十一、Adam
优点:对内存需求较小,为不同的参数计算不同的自适应学习率。
适用情况:需要快速收敛,训练复杂网络时;善于处理稀疏梯度和处理非平稳目标的优点,也适用于大多非凸优化,适用于大数据集和高维空间。