版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ygjustgo/article/details/78874649
<div class="markdown_views">
<p>本周内容从Batch gradient descent —> Mini-batch gradient descent,并根据Mini-batch gradient descent 的一些特性,介绍了加速Mini-batch gradient descent训练的优化方法(即如何更新参数),下面进行说明。</p>
一 课程总结
1. Batch gradient descent Vs Mini-batch gradient descent
- 我们之前所采用的梯度下降算法均为Batch gradient descent,即在每次迭代中,需要看完整个数据集才对参数进行更新。
- 而Mini-batch gradient descent则把整个数据集划分成若干个子集,在一次迭代中,每看完一个子集的数据便对参数进行更新,这样在一次迭代中便能进行多次参数更新。
- Stochastic gradient descent 是Minibatch的一种特殊情况,即将每一个数据作为样本集的一个子集,在一次迭代中,每看完一个数据便对参数进行更新。
2. 为什么要采用Mini-batch gradient descent
- 如果采用Batch gradient descent,那么参数更新的周期太长
- 如果采用Stochastic gradient descent,那么将无法收获向量化加速训练的好处
- Mini-batch 则没有上述两者的缺点,有利于加速训练
3. Mini-batch的选择
- 通常Mini-batch的大小选择32,64,128,256,512等
- step 1: 打乱数据集
- step 2: 对数据集进行划分
4. Mini-batch的特点
由于每次更新参数只看一部分的数据,因此在参数更新过程中会有波动(即Cost并不总是变为更小的值)。为了减小波动对训练速度造成的影响,引入了一些办法对参数更新进行优化:Momentum,RMSprop,Adam(均采用了指数加权平均的思想),learning rate decay等。
5. Momentum
(1){