最新微软官方MSDN原版Win10系统下载

电脑公司专业版 深度优化版 XP旗舰版 XP专业版64位 Win10正式版
当前位置: 主页 > U盘装系统 > U盘装XP系统

tensorflow入门学习,优化器(optimizer)的作用是什么,tensorflow有哪些优化器(九)

时间:2024-03-12    来源:佚名    人气:

从前面几节的实例中可以看出,优化器(optimizer)似乎是构建监督型 tensorflow 神经网络必不可少的,例如第三节中的AdamOptimizer,以及第六节中的 GradientDescentOptimizer,它们的作用是什么呢?tensorflow 有哪些优化器呢?本节将介绍这些。

通过前面几节的介绍,发现这类人工神经网络是由很多神经元组成的,每个神经元都有自己的权重w,表示在某项任务中,该神经元的重要程度。假设输入数据为x,那么预测值即为:


训练的过程,其实就是计算合适的w和b的过程。那么,什么样的w和b是“合适”的呢?答案就是预测值与真实值相差不大。例如定义损失函数:


即,真实值减去预测值,取绝对值后求和。训练的过程,可以粗略的理解成:调节 w 和 b, 使 loss 尽可能小。对w和b参数的调节,就是优化器(optimizer)需要做的,这就是优化器的作用。

上面这种 loss 的定义只是一种比较简单的例子,当然有其他定义方式。例如的第六节中的cross_entropy(交叉熵),它是用来描述两种分布的接近程度的,越接近,交叉熵越小。

Tensorflow 官方提供了 7 种优化器:

  • GradientDescentOptimizer
  • AdagradOptimizer
  • AdagradDAOptimizer
  • MomentumOptimizer
  • AdamOptimizer
  • FtrlOptimizer
  • RMSPropOptimize

优化器的目的都是为了训练网络的,这 7 种优化器在对资源的需求上,和训练速度上有些差异,因此需要根据实际情况选用。下图是几种优化器的训练速度对比,能够看出差异:在这次应用中, SGD 虽然路径最短,但是速度却很慢,其他几种高阶优化器,速度快很多。

下面介绍几个常用的优化器的构造函数,构造函数告诉我们如何构建这些优化器。

这个就是最基础的基于梯度下降法的优化器了。GradientDescentOptimizer 需要用到全部的样本,速度比较慢,但是迭代到一定次数最终能够找到最优解,GDO 有个别名 SGD?。建立时,构造函数为:



MomentumOptimizer 利用了上一次的调整量,因为它考虑了过去的值的影响,有点像物理学中的小球运动会受到之前动量的影响,所以被称为Momentum(动量)优化器。如果上一次梯度显示是正方向,这次也是正方向,那么这次的调整量将加上一定的幅度。如果上次和这次的梯度方向相反,则削减变动幅度,使之更加平稳和快速的往最小点移动。MomentumOptimizer 的构造函数如下:



AdamOptimizer 结合了 MomentumOptimizer 和 RMSPropOptimize,利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。它对学习率有个约束,使得每一次学习率都有个确定范围,因此参数比较平稳。构造函数如下:



其实更直观的可以参考下面这两张动图,出处找不到了,如果侵权,请联系我删除。 动图1 动图2

推荐文章

公众号

平台注册入口