Deep Leaning 学习笔记之改善神经网络的超参数(2.1)—— 优化算法速度(小批量、动量、均方根、adam优化算法)

1.小批量梯度下降mini-batch

1.1 概念

  • 小批量梯度下降,顾名思义,指的是:
  • 假如有一个训练集,大小为1,000,000,每次运行梯度下降,都需要整体遍历一遍数据集之后才能够运行一步。
  • 小批量梯度下降,则将这一百万个样本,分成多份,每1000个样本(可以是其他数字)成为一个小批量。每次运行一个小批量样本时,梯度更新一次。那么,遍历整体一百万个样本时,梯度会更新1000次,即走1000步。
  • 小批量维度:
    X t ∈ ( X n , 1000 ) X^{t}∈(X_n,1000) Xt(Xn,1000)
    Y t ∈ ( 1 , 1000 ) Y^t ∈ (1,1000) Yt(1,1000)
    在这里插入图片描述

1.2 常用小批量份数

  • 一般来说,当样本数量 ≤ ≤ 2000时,直接采用梯度下降算法
  • 当样本数量$>$2000时,采取小批量梯度下降
  • 每一组的样本数可以分为: 64 , 128 , 256 , 512 64,128,256,512 64,128,256,512等等,都是以2的幂次方为准
  • 所有的X{t} Y{t}都是要放在CPU/GPU中的,这和你的配置,以及一个训练样本的大小都有关系,但是如果你使用的mini-batch超过了 CPU/GPU 内存的容量,不管你怎么做 你都会发现,结果会突然变得很糟 。

1.3 执行过程

和梯度下降类似,只不过梯度下降的X变成了X{t}。
repeat (for i = 1 to m / m t m/m_t m/mt):
前向传播 → → 计算Z,A值 → → 反向传播 → → 计算梯度 → → 更新梯度。

1.4 噪声影响

  • 小批量梯度会产生噪声影响,因此会沿着一条弯弯扭扭的线条往最优化中心(最低点)移动。
  • 同时,小批量梯度(绿色)和随机批量梯度(紫色,一个样本为一个mini-batch)都不会直接在中心停留,而是在周围不断徘徊。
    在这里插入图片描述
    在这里插入图片描述

2.指数加权平均

2.1 概念

以温度为例。
公式: V t = β V t − 1 + ( 1 − β ) θ t V_t=βV_{t-1} + (1-β)θ_t Vt=βVt1+(1β)θt
≈ 1 / ( 1 − β ) 天 的 平 均 气 温 ≈1/(1-β) 天的平均气温 1/(1β)

  • 减少β会给画图的曲线增加噪音(因为以前的权值变小,最新的权值变大,导致曲线变动会更加及时,参照10天温度平均值)
  • 增加β会让曲线向右移动,并且更平滑(因为以前的权值变大,最新的权值变小,曲线变动会比较缓慢,也就是很久之后才生效,参照50天温度平均值)
    在这里插入图片描述
    红色是以10天的平均温度画的曲线
    在这里插入图片描述
    绿色的是以50天的平均温度画的曲线。更加平滑,并且向右移动。
    这是因为以50天平均温度时,β取的0.98,那么由公式来看,则会以 V t − 1 V_{t-1} Vt1为主,那么温度的即时变化则会反应的相对较慢。
    在这里插入图片描述
    黄色的是以2天平均温度画的曲线。
    在这里插入图片描述

2.2 代码

代码比较高效,只用一个初始化值和一行代码即可给出平均值(其他算法给的平均值更准确,但是没有这个高效)。
V θ = 0 V_θ = 0 Vθ=0
repeat:
V θ : = β V + ( 1 − β ) θ t V_θ := βV + (1-β)θ_t Vθ:=βV+(1β)θt
在这里插入图片描述

2.3 偏差修正

即用 V t ( 1 − β t ) \frac{V_t}{(1-β^t)}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值