【代码】优化算法BGD、SGD、Momentum、Adam算法python实现
栏目:行业动态 发布时间:2024-03-12 11:27:28
算法优点缺点适用情况BGD目标函数为凸函数时,可以找到全局最优值收敛速度慢,需要用到全部数据,内存消耗大不适用于大数据集,不能在线更新模型SGD避免冗余数据的干扰,收敛速度加快,能够在线学习更新值的方差较大,收敛过程会产生波动,可能落入极小值(卡在鞍点),选择合适的学习率比较困难(需要不断减小学习率)适用于需要在线更新的模型,适用于大规模训练样本情况Momentum能够在相关方向加速SGD,抑制振荡,从而加快收敛需要人工设定学习率适用于有可靠的初始化参数Adagrad实现学习率的自动更改仍依赖于人工设置一个全局学习率,学习率设置过大,对梯度的调节太大。中后期,梯度接近于0,使得训练提前结束需要快速收敛,训练复杂网络时;适合处理稀疏梯度1Adadelta不需要预设一个默认学习率,训练初中期,加速效果不错,很快,可以避免参数更新时两边单位不统一的问题在局部最小值附近震荡,可能不收敛需要快速收敛,训练复杂网络时Adam速度快,对内存需求较小,为不同的参数计算不同的自适应学习率在局部最小值附近震荡,可能不收敛需要快速收敛,训练复杂网络时;善于处理稀疏梯度和处理非平稳目标的优点,也适用于大多非凸优化 - 适用于大数据集和高维空间

平台注册入口