【6】深度学习优化方法

本文介绍了梯度下降算法及其分类,包括批量梯度下降、随机梯度下降和小批量梯度下降。接着讨论了反向传播算法在神经网络训练中的应用,以及如何通过链式法则计算损失函数的梯度。此外,还介绍了几种优化梯度下降的方法,如动量梯度下降、AdaGrad、RMSprop和Adam算法,这些算法通过不同的方式调整学习率以提高训练效果。
摘要由CSDN通过智能技术生成

1、梯度下降算法

梯度下降就是一种寻找使得损失函数最小化的方法。

E损失函数,W权重, η学习率,如果学习率过小训练的成本就会增加,如果学习率过大可能会跳过最优解。所以学习率也需要根据训练的进行而变化。

1.1、梯度下降算法分类

根据在进行迭代时使用的样本数量,将梯度下降算法分为3类:

2、反向传播算法(BP算法)

利用反向传播算法对神经网络进行训练,该方法与梯度下降算法相结合,对网络中所有权重计算损失函数的梯度,并利用梯度值来更新权值以最小化损失函数。

2.1、前向传播和反向传播

前向传播是指数据输入的神经网络中,逐层向前传输,一直运算到输出层为止。

在网络的训练过程中经过前向传播后得到的最终结果跟样本的真实值总是存在误差,误差使用损失函数衡量。想要减小这个误差,就用损失函数Error,从后向前,依次求出各个参数的偏导,这就是反向传播。

2.2、链式法则

2.3、反向传播算法

反向传播算法利用链式法则对神经网络中的各个节点的权重进行更新。

3、梯度下降优化方法

3.1、动量梯度下降算法

(1)指数加权平均数

动量算法主要针对鞍点问题,介绍动量算法之前,首先看下指数加权平均数的计算方法。

由于绿色点的波动比较大,可以使用前一天的值与一个权重值相乘再加上权重和当前值

(2)动量(Momentum)算法

与原始的相比,下降趋势更平滑,α学习率,β动量参数(momentum),对梯度进行修正

opt = tf.keras.optimizers.SGD(learning_rate=0.1, momentum=0.9)

 (3)AdaGrad算法

tf.keras.optimizers.Adagrad(learning_rate=0.001, initial_accumulator_value=0.1, epsilon=1e-07)

 

(4)RMSprop算法

AdaGrad在迭代后期时由于学习率过小,很难找到最优解。为了解决这个问题,RMSprop算法对其进行了修改,RMSprop算法将这些梯度按照元素平方做指数加权移动平均(β=rho),这两个算法都是对学习率进行修正

tf.keras.optimizers.RMSprop(learning_rate=0.1, rho=0.9, momentum=0.0, epsilon=1e-07, centered=False)

 (5)Adam算法

对梯度和学习率进行修正

tf.keras.optimizers.Adam(learning_rate=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-07)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值