美文网首页程序员互联网科技程序员技术栈
优化算法-梯度下降,反向传播,学习率

优化算法-梯度下降,反向传播,学习率

作者: RunningSucks | 来源:发表于2019-01-17 11:19 被阅读8次

梯度下降

梯度下降法主要用于单个参数的取值。假如损失函数是一座山,我们从山上一个任意点开始往山下走,山坡的坡度越大,我们的垂直高度下降的越快。当我们到达某一个点是,我们往任意方向前进多都会升高使,我们就到达了最低点。准确来说是局部最低点。但是如果损失函数是个凸函数,那么这个局部最优解就是整体最优解。


梯度下降

说到这我们就要提到微分方程了。对损失函数求导,导数就是我们所谓的梯度:


损失函数求导
我们的目的是不断更新参数以使得损失函数最小化。
损失函数更新

那这里的α是什么?α是我们给参数的变化加上一个权重,也即是学习率。我们以此来控制参数的变化速度。为什么我们要使用学习率呢?


学习率

从上面的公式我们不难发现,我们加入学习率就是希望在参数更新缓慢的时候加快它的更新,在参数跟新跨度太大使减弱它的更新。那么如何选择合适的学习率呢?


小学习率和大学习率的影响

如图左所示,如果学习率太小,那么我们每次训练之后得到的效果都太小,这无疑增大了我们的无谓的时间成本。如果如图右所示,学习率太大,那我们有可能直接跳过最优解,进入无限的训练中。所以解决的方法就是,学习率也需要随着训练的进行而变化。
Tensorflow提供了一种灵活的学习率设置—指数衰减法。先从一个较大的学习率开始快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率:

current_learning_rate = \
learning_rate * decay_rate ^ (global_step / decay_steps)

current_learning_rate: 当前使用的学习率
learning_rate: 初始学习率
decay_rate: 衰减系数
decay_steps: 衰减步幅
global_step: 训练总步数


反向传播

反向传播法是神经网络训练中非常重要的算法,可以帮助我们在所有参数上使用梯度下降法,通过反向传播更新参数,从而使损失函数更小。


前向传播与反向传播

x和y作为输入经过训练变成输出z传给下一层,我们计算得到误差函数L,并对x和y求导,得出x和y对于误差的影响,然后据此更新x和y。在实际应用中我们计算参数对于误差的影响,然后反向更新参数。


滑动模型

我们有时候也会使用滑动模型来使模型更稳健,原因是有时数据会有些奇异点,在连续的数据中特别突兀。有可能是误差也有可能是真是数据,这时我们会使用以当前点为中心的一段数据的平均值来代替该点的值。有时使用简单的平均滑动模型,有时会加上权重,这都跟我们要研究的具体问题相关。

tf.train.ExponentialMovingAverage(decay_rate,step)
# Tensorflow提供的平均滑动模型,decay_rate为衰减率, step为窗口大小

相关文章

  • 笔记6-Deep learning and backpropag

    优化算法:梯度下降,反向传播(BP)是梯度下降实现方法之一。

  • 优化算法-梯度下降,反向传播,学习率

    梯度下降 梯度下降法主要用于单个参数的取值。假如损失函数是一座山,我们从山上一个任意点开始往山下走,山坡的坡度越大...

  • 你真的弄懂算法面试必会的三个知识点了吗?

    原创:PinkFeet 一、引言 反向传播算法、随机梯度下降算法、Batch Normalization是深度学习...

  • 深度学习——CNN(2)

    前言:CNN的优化方法依旧可以是梯度下降的方法,类似于BP算法中的反向传播,一般采用小批量梯度下降的方法,来更新参...

  • 2018-06-28 BP算法

    BP推导——续 反向传播算法 Backpropagation Algorithm (批量)梯度下降法 (batch...

  • gluon.Trainer()

    #定义优化算法 #Trainer实例,学习率=0.03小批量随机梯度下降(sgd)为优化算法 #迭代net实例 #...

  • BP算法

    BP算法:误差反向传播算法。通过比较输出值与标记值,将误差反向由输出层向输入层传播,利用梯度下降算法进行参数调整。...

  • 深度学习(三)梯度下降和反向传播算法

    本文内容:1.什么是梯度下降方法?2.反向传播算法(BP算法) 1.为什么要梯度优化 上一节介绍过,我们的第一个神...

  • 梯度消失和梯度爆炸问题详解

    1.为什么使用梯度下降来优化神经网络参数? 反向传播(用于优化神网参数):根据损失函数计算的误差通过反向传播的方式...

  • 8. 神经网络

    随机梯度下降 神经网络模型 反向传播算法 随机梯度下降 通过多次的随机选择某一个样本进行梯度下降,其均值依然能够反...

网友评论

    本文标题:优化算法-梯度下降,反向传播,学习率

    本文链接:https://www.haomeiwen.com/subject/iwsbdqtx.html