开丰娱乐-开丰注册登录绿色站

0898-08980898  13876453617

网站公告
诚信为本,市场在变,诚信永远不变...

分享本站:

开丰资讯

0898-08980898
传真:0000-1234-5678
邮件:admin@youweb.com
客服:

行业新闻

您当前的位置: 首页 > 开丰资讯 > 行业新闻

优化器算法(Optimizer)

点击数:     更新时间:2024-06-10 05:26:06

神经网络训练过程中用到的优化器简介(最主要是SGD)。

用整个训练集数据计算梯度,再一次性更新。以分类问题为例,就是每个epoch

 

每次迭代考虑全部样本,选出最优的梯度下降方向更新w,这样能保证朝着最优解迈进,但是只适合用于较小的训练集。如果数据集太大,由于每次迭代都要遍历整个数据集找最优,该方法的复杂度将会非常高。

不同于 BGD 的一次用所有数据计算梯度,SGD 每次更新时只对一个样本进行梯度更新。

 

SGD每次迭代只是考虑让一个样本梯度下降速度最快,而不管其他的样本,这样算法复杂度不高,所以
适合用于较大训练集的case。但是收敛的过程会有震荡,整体效果上,大多数时候它只能接近局部最优解,而无法真正达到局部最优解。

SGD每次考虑一个样本,MSGD(Mini-Batch Stochastic Gradient Descent)每次考虑一个batch大小的样本。

 

SGD函数一般会用到Momentum参数[^一般取值都默认为0.9],加入的这一项,它可以使得梯度方向不变的维度上速度变快,梯度方向有所改变的维度上的更新速度变慢,也就是说,当前时刻的下降方向,不仅由当前点的梯度方向决定,而且由此前累积的下降方向决定,这样就可以加快收敛并减小震荡 。

SGD是十分常用的优化器,因为深度学习一般都使用大数据集,按batch进行训练。许多大神仍然使用着这个最基础的优化器。

SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。

如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法,比如Adam算法。

暂时没时间看他的公式。(一阶动量、二阶动量)

主流的观点认为:Adam等自适应学习率算法对于稀疏数据具有优势,且收敛速度很快;但精调参数的SGD(+Momentum)往往能够取得更好的最终结果。

客服头部
0898-08980898
13876453617

网站二维码

平台注册入口