福建商情信息科技有限公司是一家为福建企业专业福建网站建设,福建网站设计公司福建网络推广公司等相关产品的福建互联网公司.  

福建网络优化分享优化方法

时间: 2019-1-17 14:15:00 来源:http://fj.sqkjqy.com/news43977.html
分享到:

福建商情信息科技有限公司是一家为福建企业专业福建网站建设,福建网站设计公司福建网络推广公司等相关产品的福建互联网公司.

福州网络优化分享优化方法

  近来,福州网络优化发现Vadim Smolyakov发表了一篇博文,针对当时神经网络的优化算法进行了总结,并利用简略的CNN网络在NMIST数据集上进行试验,讨论不同的优化办法的作用好坏。其间考虑了四种神经网络练习的优化办法:SGD,Nesterov Momentum,RMSProp和Adam,并用TensorFlow进行练习。

  作者终究得出结果:运用Nesterov Momentum和Adam的SGD发生的结果更好。

  假如你对神经网络的优化算法还不是很了解,那么信任这篇文章将会给您很好的启示!

  练习神经网络的流行的优化算法有哪些?怎样进行比较?

  福州网络优化在MNIST数据集用卷积神经网络(CNN)进行试验,来回答上述优化问题。

  

  随机梯度下降(SGD)

  SGD通过数据的一个巨细为(m)的子集(subset)或一个小批量(mini-batch)来从梯度负方向上更新模型参数(theta):

  

  神经网络由 f(x(i); theta)表明,其间x(i)是练习数据,y(i)是标签,丢失函数L的梯度是依据模型参数θ计算的。学习率(eps_k)决定了算法沿着梯度(在极小化的状况下为负方向,在极大化的状况下为正方向)下降的步长巨细。

  学习率是非常重要的超参数。学习率太高(例如> 0.1)会导致参数的更新错过佳值,学习率太低(例如<1e-5)将导致过长练习时刻。一个好的战略是学习率初始化为1e-3,并运用学习率调度器来下降学习率(例如,每四个时刻段(epoch)将学习速率减半的一个步长调度器):

  def step_decay(epoch): lr_init = 0.001 drop = 0.5 epochs_drop = 4.0 lr_new = lr_init * \ math.pow(drop, math.floor((1+epoch)/epochs_drop))return lr_new一般来说,咱们希望学习率(eps_k)满足Robbins-Monroe条件:

  第1个条件保证算法不管起点怎么,都能够找到一个局部优解,第二个是操控振荡。

  动量(Momentum)

  动量累积以指数办法进行衰减,补偿按照曩昔梯度的均值进行移动:

  因而,步长取决于梯度序列的巨细和摆放的顺序,动量参数alpha的通常值设为0.5和0.9。

  涅斯捷罗夫动量

  涅斯捷罗夫动量(Nesterov Momentum)受涅斯捷罗夫加速梯度法的启示:

  涅斯捷罗夫动量和规范动量之间的差异在于对梯度进行评价,涅斯捷罗夫动量是在运用了当时速率后对梯度进行评价,因而涅斯捷罗夫的动量为梯度增加了一个校对因子。

  AdaGrad

  AdaGrad是一种设置学习率的自适应办法[3]。咱们考虑下图中的两种状况:

  

  左图:缓慢改变的对数似然(小梯度)右图:快速改变的对数似然(大梯度)在方针缓慢改变(左图)的状况下,梯度通常(在大多数点)进行小幅度改变。 因而,咱们需要一个大的学习速率才干快速到达优解。在方针快速改变(右图)的状况下,梯度通常是非常大的。运用大的学习速率会导致非常大的步长,来回振荡,但无法到达优值。

  呈现这两种状况的原因是学习率的设置与梯度无关。AdaGrad通过积累到目前为止一切的梯度的平方,并将学习率除以这个总和的平方根来处理这个问题:

  因而,获得高梯度的参数将会下降其有用学习率,而接收小梯度的参数将增加其学习率。在更陡峭的斜率方向上,以及在大学习率的状况下,更慎重的更新会带来更大的进步。

  RMSProp

  RMSProp改进了AdaGrad的办法,将梯度的累积变成指数加权的移动平均值,即不考虑间隔很远的梯度值[4]:

  福州网络优化提醒留意,AdaGrad表明,即使在练习开始阶段累积的梯度而导致梯度保持不变,其学习率也会下降。通过引进指数加权移动平均值,离得更近的前史梯度值相对于离得远的前史值被赋予更大的权重。因而,RMSProp已被证明是一种有用的、有用的深度神经网络优化算法。

  Adam

  Adam从"自适应时刻"衍生而来,它能够被看作是RMSProp和动量组合的一个变体,它的更新看起来像RMSProp(除了运用滑润版本的梯度来替代原始随机梯度),Adam的更新还包括一个偏差修正机制[5]:

  

  主张的值是beta_1 = 0.9,beta_2 = 0.999,eps = 1e-8。

  ▌试验

  我运用四种不同的优化器:SGD,Nesterov Momentum,RMSProp和Adam,并用TensorFlow以1e-3的学习速率和交叉熵丢失在MNIST数据集上练习CNN网络。下图显现了这四种优化器的练习丢失值与迭代值:

  

  从上图中咱们能够看出,Adam和Nesterov Momentum优化器发生的练习丢失低!

  ▌代码

  一切的代码链接:

  https://github.com/vsmolyakov/experiments_with_python/blob/master/chp03/tensorflow_optimizers.ipynb

  总结:

  福州网络优化在练习神经网络的过程中比较了运用不同优化器的作用,并对它们的作业原理有了直观地知道。咱们发现,用TensorFlow在MNIST数据集上练习简略CNN时,运用Nesterov Momentum和Adam的SGD发生的结果更好!

福州商情信息科技有限公司是一家专业的app开发,网络优化,福建网站建设福建小程序开发的公司,如有相关方面的需要,欢迎咨询!

福建商情信息科技有限公司是一家为福建企业专业福建网站建设公司,福州网站设计公司,福州网络优化一站式整合营销公司,福建搭建网站建设,福建网站设计,福建互联网营销可以通过访问福建商情信息科技有限公司进行咨询.

相关标签:福州网络优化,福州网络优化公司,福州网络优化价格,

首次合作特惠:免需求诊断费用、免部署上线费用、赠送一年维护!(福建地区可见面交流,来公司或上门均可)