优化算法的选择与使用策略

佚名 次浏览

摘要:优化器(Optimizer)-知乎有需要看原文吧,我只记录一下自己关注的。优化算法的常用tricks(1)首先,各大算法孰优孰劣并无定论。如果是刚入门,优先考虑SGD+NesterovMomentum或者Adam。(2)选择你熟悉的算法——这样你可以更加熟练地利用你的经验进行调参。(3)充分了解你的数据——如果模型是非常稀疏

优化器(Optimizer) - 知乎

有需要看原文吧,我只记录一下自己关注的。

优化算法的常用tricks

(1)首先,各大算法孰优孰劣并无定论。如果是刚入门,优先考虑SGD+Nesterov Momentum或者Adam。

(2)选择你熟悉的算法——这样你可以更加熟练地利用你的经验进行调参。

(3)充分了解你的数据——如果模型是非常稀疏的,那么优先考虑自适应学习率的算法。

(4)根据你的需求来选择——在模型设计实验过程中,要快速验证新模型的效果,可以先用Adam进行快速实验优化;在模型上线或者结果发布前,可以用精调的SGD进行模型的极致优化。

(5)先用小数据集进行实验。有论文研究指出,随机梯度下降算法的收敛速度和数据集的大小的关系不大。因此可以先用一个具有代表性的小数据集进行实验,测试一下最好的优化算法,并通过参数搜索来寻找最优的训练参数。

(6)考虑不同算法的组合先用Adam进行快速下降,而后再换到SGD进行充分的调优。切换策略可以参考本文介绍的方法。

(7)数据集一定要充分的打散(shuffle)这样在使用自适应学习率算法的时候,可以避免某些特征集中出现,而导致的有时学习过度、有时学习不足,使得下降方向出现偏差的问题。

(8)训练过程中持续监控训练数据和验证数据上的目标函数值以及精度或者AUC等指标的变化情况。对训练数据的监控是要保证模型进行了充分的训练——下降方向正确,且学习率足够高;对验证数据的监控是为了避免出现过拟合。

(9)制定一个合适的学习率衰减策略可以使用定期衰减策略,比如每过多少个epoch就衰减一次;或者利用精度或者AUC等性能指标来监控,当测试集上的指标不变或者下跌时,就降低学习率。

随机内容

平台注册入口