本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下:
神经网络和深度学习 - 网易云课堂
也欢迎对神经网络与深度学习感兴趣的网友一起交流 ~
目录
1 Mini-batch
2 随机梯度下降法
1 Mini-batch
常规的梯度下降法,在大数据集基础上的训练速度通常很慢。使用 Mini-batch 优化方法,可以提高神经网络训练的效率。
之前提到的向量化技巧,使深度学习算法能高效地处理 m 个样本。但是如果 m 很大的话,处理速度仍然很慢,比如说,m 是 500 万或 5000 万。
在使用梯度下降法时,每一步迭代必须处理训练集中的所有样本,然后才能进行下一步迭代。也就是,在某一次的迭代过程中,神经网络算法处理了完整的 500 万个训练样本,然后下一次迭代又需要重新处理 500 万个样本。
现在换一种方法,把训练集划分为许多子训练集,这些子训练集叫做 Mini-batch。假设总样本有 500 万个,每个 Mini-batch 包含 1000 个样本,那么你将有 5000 个 Mini-batch。
2 随机梯度下降法
在训练集上使用 Mini-batch 梯度下降法,处理过程如下:
使用 Batch 梯度下降法时,每次迭代都需要遍历整个训练集,成本函数的值随着迭代次数的增加而下降。然而使用 Mini-batch 梯度下降法时,如果你绘制出成本函数随迭代次数的变化曲线,你会发现并不是每次迭代都会下降。
如果 Mini-batch 的大小是 m,其实就是 Batch 梯度下降法,Mini-batch 等于整个训练集;
如果 Mini-batch 的大小是 1,就有了新的算法——随机梯度下降法(Stochastic gradient descent)。在随机梯度下降法中,每个样本都是独立的 Mini-batch。
在随机梯度下降法中,成本函数值的下降过程比较缓慢,且存在较多的噪声,即有时候朝着远离全局最小值的方向前进。不过平均来看,随机梯度下降法最终会接近全局最小值。