优化算法-1:mini-batch

本文来自于网易云课堂

本周主要学习优化算法来加快神经网络的训练过程。机器学习的应用是一个高度依赖经验的过程,伴随着大量迭代,需要训练诸多模型才能找到合适的那一个。所以,优化算法能够帮助你快速训练模型。深度学习没有在大数据领域发货最大的效果,我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢。所以,使用快速的优化算法会大大提高效率。

1mini-batch梯度下降法

假如我们有大量的样本,可能是500万个,如果采用batch梯度下降法(就是一次性处理全部训练集,名字就是这么叫的,只能接受),需要一次训练500万个样本然后实现一次梯度下降,重复进行,这样速度很慢。而mini-batch梯度下降法是将样本数划分成5000个小的mini-batches,每个mini-batch可以划分为1000个样本,用符号 X{t} X { t } Y{t} Y { t } 来表示,这样就可以同时处理单个的mini-batch,而不是处理全部的X和Y训练集。
这里写图片描述

怎么进行mini-batch梯度下降呢?过程其实和整个数据集是一样的,只不过mini-batch分解成很多个mini-batch而已。

for t = 1,……5000
forward prop on X{t} X { t }
Z[1]=W[1]X{T}+B[1] Z [ 1 ] = W [ 1 ] X { T } + B [ 1 ]
A[1]=g[1](Z[1]) A [ 1 ] = g [ 1 ] ( Z [ 1 ] )

A[L]=g[L](Z[L]) A [ L ] = g [ L ] ( Z [ L ] )
Compute cost J{t}=11000li=1L(y^(i),y(i))+λ21000Li=1w[t]2F J { t } = 1 1000 ∑ i = 1 l L ( y ^ ( i ) , y ( i ) ) + λ 2 ∗ 1000 ∑ i = 1 L ‖ w [ t ] ‖ F 2
Backprop to compute grandients
update parameters

mini-batch在迭代的过程中不总是下降的,虽然是下降趋势,但存在很多噪声。噪声存在的原因是可能某个t成本很低而另一个t成本较高。
这里写图片描述
决定mini-batch的一个变量是size。一个极端情况是size=m,这个时候就是batch梯度下降法,这种算法每次迭代时间很长。另一个极端情况就是size=1,叫做随机梯度下降法(stochastic gradient decent),每个样本都是一个mini-batch,这种算法每次只处理一个样本,丧失了向量化带来的加速,效率非常低。实际上,我们要选择的mini-batch在两者之间。一个不大不小的mini-batch既可以利用向量化带来的加速,又不用等待整个样本处理完就可以继续下一步的工作。
这里写图片描述
既然mini-batch是中间值,那么这个中间值是多少呢?下面给出几个指导原则。

  • 如果是小的训练集,直接使用batch梯度下降法,可能小于2000个样本就可以。
  • 如果样本较大,典型的mini-batch是64、128、256、512、1024(比较少见),这个是考虑到电脑存储方式选择了2的次方,这样运行效率会更高一些。Adrew Ng会尝试几个不同的值,来确定哪个可以让算法运行的更快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值