course 2 week2

第二周内容目录

mini-batch gradient descent

  • 深度学习需要大量的样本来训练网络,所以需要一些优化算法来提高训练速度,之前用的方法:向量化,X=[x1, x2,…, xm],当m很大时,比如500万,训练起来依旧会很慢,所以有了下面的方法

  • 将整个训练集m(假设为500万)分为一个个小的mini-batch,每个mini-batch有1000个样本,这个时候我们有了5000个mini-batch

for  t in range(5000):
	forward prop on X{T}
	compute cost J{t}
	backprop compute gradient
	update weights
  • 以上伪代码是进行一次epoch,遍历了一次数据集,我们可以将该for循环重复多次

  • batch gradient descent和 mini-batch gradient descent的区别:batch遍历一次整个数据集只进行一次梯度下降,本例中,mini-batch遍历一次数据集可进行5000次梯度下降

  • 三种方法对比
    1. 若mini-batch size = m,则成了batch gradient descent,(x{1}, y{1})=(X, Y)
    2. 若mini-batch size = 1, 则成了随机梯度下降法,每个样本都是一个独立的mini-batch,该方法不会收敛,最终会一直在最小值附近波动
    3. 若1 < mini-batch size < m,

  • 如何选择mini-batch的大小?
    1. m ≤ 2000 时,直接使用batch gradient descent
    2. m > 2000 时, 一般的mini-batch size为64,128,256,512(都是2的次方),确保其符合CPU/GPU的内存

几个优化算法

返回目录

  • 前提知识:指数加权平均

    举个例子,θi表示伦敦一年中每天的温度,现在我们要根据已给数据求出未来几天的温度。
    数据:θ1=40°F,θ2=49°F,θ3=45°F,…,θ180=60°F,θ181=56°F …
    根据数据画图:
    在这里插入图片描述
    令V0=0
    V1 = 0.9V0 + 0.1θ1
    V2 = 0.9V1 + 0.1θ2

    Vt = 0.9Vt-1 + 0.1θt
    然后画图,红线部分
    在这里插入图片描述
    总结:Vt = βVt-1 + (1-β) θt,Vt 表示前1/(1-β)天的平均温度
    如:β = 0.9时,Vt表示前10天的平均值(红线);β = 0.98时,Vt表示前50天的平均值(绿线);β = 0.5时,Vt表示前2天的平均值(黄线)
    在这里插入图片描述
  • 指数加权平均公式: vt = βVt-1 + (1-β)θt
  • 偏差修正:使平均数的运算更加准确,保证最初几个数据修正后的准确性
    公式: V t = β V t − 1 + ( 1 − β ) V t 1 − β t V_t = \frac{βV_{t-1}+(1-β)V_t}{1-β^t} \quad Vt=1βtβVt1+(1β)Vt
  • 动量梯度下降法(Momentum gradient descent)

    返回目录
    其运算速度快于标准的梯度下降法
    基本思想:计算梯度的指数加权平均数,用该梯度重新更新权重
on iteration t:
	VdW = βVdW +(1-β)dW
	Vdb = βVdb +(1-β)db
	
	W = W - αVdW
	b = b - αVdb
  • 两个超参:α 和 β(β一般设置为0.9)
  • momentum可以使纵轴学习的慢一些,横轴学习的快一些

下图圆圈为cost函数,我们从左侧出发进行梯度下降,十字为最小cost

在这里插入图片描述

  • tips:在momentum中一般不进行偏差修正,因为10次迭代之后,偏差已经很小了

  • RMSprop(root mean square prop)

    返回目录

  • 该方法也可以加速梯度下降

2.9 学习率衰减


返回目录

  • 改变学习率,α0为原学习率
    在这里插入图片描述
  • 超参:decay_rate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值