Mini-batch 梯度下降法:
假设原始数据集大小为m,将大数据集划分为多个子集对网络进行训练。两种极端情况:子集的大小为m,则就退化为batch梯度下降法;若子集大小为1,则为随机梯度下降法。
batch梯度下降法适用于小数据集,当数据集较大时,每次迭代需要处理大量样本,单次迭代耗时太长。随机梯度下降法虽单次迭代较快,但失去了向量化的加速。故实践中最好选择一个不大不小的mini-batch,其得到了向量化加速的同时,不需要等待至整个训练集被处理完就可以开始后续工作。
一般训练集少于20000,可以用batch梯度下降法。而mini-batch的大小一般为64-512。最好是 。
指数加权平均:
,其与取 范围的平均值近似。
偏差修正指数加权平均:
;修正初始阶段其值偏小的情况。
Momentum梯度下降法:
减缓了纵轴上的上下波动,横轴方向运动更快。
RMS prop:
学习率α可以设置得比较大,ε是为了防止 为0,导致 变得很大。
Adam算法:
结合了momentum和RMS-prop。
α 需要多次调试,常用0.9, 常用0.999,ε 常用 。
学习率衰减:
有多种形式,也可自行设计
局部最优问题:
- 当神经网络有大量参数,维度较高时,我们不太可能困在极差的局部最优中;
- 平稳段影响训练效率,使学习进行得缓慢,Adam算法有助于解决这个问题。