全国统一学习专线 8:30-21:00
来源: 中公教育IT培训 编辑:佚名
Python神经网络中典型的梯度下降法有这些:全量梯度下降法、随机梯度下降法、小批量梯度下降法、Momentum梯度下降法、NAG梯度下降法、AdaGrad、AdaDelta、RMSProp、Adam。
1、全量梯度下降法(Batch gradient descent):每次学习都使用整个训练集,所以最终能收敛于极值点,凸函数收敛于全局极值点,非凸函数可能收敛于局部极值点,缺点是由于使用整个训练集,学习时间过长,消耗资源。
2、随机梯度下降法(Stochastic Gradient Descent):只使用随机选择的数据进行一轮迭代,学习时间快。
如果目标函数有最小区域,会使优化方向从当前的局部极小点跳到另一个更好的局部极小点,对于非凸函数,最终可能收敛于一个较好的局部极值点,甚至是全局极值点。
3、小批量梯度下降法(Mini-Batch Gradient Descent):一轮迭代中随机选取一些数据进行迭代,兼具收敛速度快和收敛时不浮动的特征。
4、Momentum梯度下降法:在更新模型参数时,在计算过程中有一个超参数Momentum,称为动量,在当前梯度方向上,用与前一个梯度方向相同的参数进行强化,使这些方向上加快。
同时,对当前的梯度方向与上一个梯度方向不同的参数进行削减,在这些方向上减速。这些振荡在较陡峭的方向上被削弱,因此可以得到更快的收敛和更少的振荡。
5、NAG梯度下降法:不仅增加了动量项,并且在计算参数梯度时,还从损失函数中减去了动量项。
6、AdaGrad:一种基于梯度的优化算法,可以适应每个参数的不同学习速率,对于稀疏特征可以得到较大的学习更新,对于非稀疏特征可以得到较小的学习更新,所以这种优化算法适合处理稀疏特征数据。
7、AdaDelta:自适应地为每个参数分配不同的学习率的算法,其学习率随着其更新的总距离增加而减慢。
8、RMSProp:Adadelta的一种中间形式,它可以改善"Adagrad "中学习率快速衰减的问题。
9、Adam:一种不同参数自适应不同学习速率的方法,与Adadelta和RMSprop的区别在于计算历史梯度衰减方式不同,此方法不使用历史平方衰减,其衰减方式类似于动量。