改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降

机器学习的应用是一个高度依赖经验的过程,优化算法能够帮助你快速训练模型。深度学习没有在大数据领域发挥最大的效果我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢。

因此,使用快速的优化算法,使用好用的优化算法能够大大提高效率,现在谈谈mini-batch梯度下降法。

向量化能有效地对所有m个例子进行计算,允许处理整个训练集而无需某个明确的公式,所以我们要把训练样本放到巨大的矩阵X中,如下 X = [ x ( 1 ) , x ( 2 ) , . . . , x ( m ) ] X=[x^{(1)},x^{(2)},...,x^{(m)}] X=[x(1),x(2),...,x(m)] Y = [ y ( 1 ) , y ( 2 ) , . . . , y ( m ) ] Y=[y^{(1)},y^{(2)},...,y^{(m)}] Y=[y(1),y(2),...,y(m)] X X X的维数是 ( n x , m ) (n_x,m) (nx,m) Y Y Y的维数是 ( 1 , m ) (1,m) (1,m),向量化能相对较快地处理所有m个样本,但如果m很大的话,处理速度仍然缓慢,比如说m是500万或者5000万或者更大的一个数,在对整个训练集执行梯度下降法时,必须处理整个训练集,然后才能进行一步梯度下降法,然后需要再重新处理500万个训练样本才能进行下一步梯度下降法。

所以如果在处理完整个500万个样本的训练集之前,先让梯度下降法处理一部分,算法速度会更快。可以把训练集分割为小一点的子训练集,这些子集被取名为Mini-batch,假设每一个子集中只有1000个样本,那么将其中的 x ( 1 ) x^{(1)} x(1) x ( 1000 ) x^{(1000)} x(1000)取出来,将其称之为第一个子训练集,也叫做Mini-batch,然后再取出接下来的1000个样本,从 x ( 1001 ) x^{(1001)} x(1001) x ( 2000 ) x^{(2000)} x(2000),然后再取1000个样本,以此类推。

接下来说一个新符号, X { 1 } X^{\left \{1\right \}} X{1},如果训练集数据有500万,每个mini-batch都有1000个样本,也就是说有5000个mini-batch。

之前我们使用 x ( i ) x^{(i)} x(i)表示训练集中的第i个数据,用 z [ l ] z^{[l]} z[l]表示神经网络的层数,表示神经网络中第l层的z值,现在用 X { t } X^{\left \{t\right \}} X{t}表示不同的mini-batch。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值