深度学习 基于Python语言和Tensorflow平台第15章_优化器的选择与设置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动量优化算法
动量优化算法主要的改进是在进行梯度计算 时,增加了一个动量参数来一定程度上保持 前一次的方向。动量即“惯性”,类似奔跑 下山时,虽然随时会调整方向,但受到惯性 的影响,还是会保持一定的方向或者说改变 方向会较慢。使用动量优化算法,因为可以 保持“下山”的大方向不变,理论上可以加 快随机梯度下降算法的速度。
免费申请样书 教师免费申请样书, 我们将安排快递迅速送达
下载配套资源 教学视频、PPT课件、 教学案例、习题答案、 模拟试卷等丰富资源免费下载
优惠购书 教师可以申请最低折扣 学生直接优惠购买图书
成为作者
欢迎写文章/投稿, 我们强大的编辑团队将为您 提供专业和高效的编辑出版
服务
知识补充:学习率对训练的影响
学习率控制的是调节可变参数的幅度,是优 化器的一个参数设置项。形象地说,学习率 代表下山的步幅,越大越快,但容易走过头
目 录 导 航 Contents
1 优化器在神经网络训练中的作用 2 主流优化器简介 3 优化器的对比与选择
普通梯度下降算法
普通梯度下降(Gradient Desent,简称GD) 算法是最基本的也最简单的优化算法,其特 点是每一步的步长是一定的(学习率不变) ,每一步都计算梯度并保持不断下降,使得 误差逐步变小,直至梯度变平或再次变大。
批量梯度下降(Batch Gradient Descent,简称 BGD,有时也叫迷你批量梯度下降算法)算 法是综合了普通梯度下降和随机梯度下降算 法之后折中的一种方法。在这种方法中,每 次会从全部训练数据中选取其中的一部分来 进行训练之后再进行梯度计算。可以看出, 批量梯度下降算法理论上应该比随机梯度下 降算法准确度稍高但速度稍慢。
调节神经网络的目 标是获得loss最小时 的w值wmin
神经网络调节可变参数是依据反向传播算法的,但其实 反向传播算法主要是用于将最终计算出来的误差反向依 次传递到神经网络的各层,真正控制参数调节原则的是 “梯度下降” (Gradient Descent)算法
但误差函数的曲线并非总是如此简单
需要避免最终结果在较高 的“谷底”
目 录 导 航 Contents
1 优化器在神经网络训练中的作用 2 主流优化器简介 3 优化器的对比与选择
优化率效率比对
总的来说,Adam是首选,RMSProp和Adadelta 可以作为备选,普通梯度下降算法相对最慢
优化器的选择与调节
optimizer = tf.train.GradientDescentOptimizer(0.001)
深度学习 基于Python语言和Tensorflow平台
第15章 优化器的选择与设置
谢琼
Email: topget@sina.com
目标
target
01 了解优化器的作用 02 了解主流优化器的特点 03 了解学习率调节的作用
目 录 导 航 Contents
1 优化器在神经网络训练中的作用 2 主流优化器简介 3 优化器的对比与选择
随机梯度下降算法
随机梯度下降(Stochastic Gradient Descent, 简称SGD)的方法则是仅随机使用一组数据 来进行梯度计算,也就是下山过程中每次走 的一步带有一定的随机性,这样可以比普通 梯度下降算法节省很多时间,但缺陷是有更 大的可能陷入局部最优解(即到达非最低的 谷底)
批量梯度下降算法
除了选择合适的优化器之外,优化器的学习率 参数是最不可忽视的因素,当训练结果始终无 法提升的时候,可以适当调节学习率试试
互助互利 共同进步
深度学习 基于Python语言和Tensorflow平台
更多样书申请和资源下载需求,请登录人邮 教育社区(www.ryjiaoyu.com)
海量图书方便查询
囊括各大品类,您想要 的应有尽有
优化器的作用
优化器在神经网络的训练中具有相当重要 的地位,它的主要作用是根据误差函数的 计算结果来调节可变参数,使得神经网络 的输出越来越符合预期。
目前为止,我们用的优化器一直是RMSProp ,这是一个优秀的优化器,还有许多其他的 优化器可用
ห้องสมุดไป่ตู้
知识补充:梯度下降算法
梯度就是该切线的斜率
误差loss是可变参数w的 函数,即loss = f(w)
内斯特洛夫梯度加速算法
内斯特洛夫梯度加速(Nesterov Accelerated Gradient , 简 称 NAG ) 算 法 是 对 动 量 优 化 算 法的进一步改进,它对动量的改变根据下一 步的情况做了一定的预测,从而加速了动量 算法的梯度下降过程。
Adagrad算法
Adagrad算法是一种可以自己调节学习率的算 法,随着梯度调整的过程,学习率会逐步下 降,这样可以避免一些学习率过大导致的跳 过最优解的情况。同时,Adagrad算法对可变 参数会自动根据一定的规则来使用不同的调 整幅度。
Adadelta和RMSProp算法
Adadelta和RMSProp这两种算法非常类似,都 是对Adagrad算法的一个改进,它们试图解决 Adagrad算法中对学习率过于激进而单调的不 断减少带来的问题。
Adam算法
Adam(Adaptive Moment Estimation,可变动 量估算)算法是对每一个可变参数都计算动 态学习率的算法。Adam算法同时使用了动量 和学习率自适应,结合了两类算法的优点, 是目前首要推荐的算法