算法优化
mini-batch
将庞大的数据集分成许多个batch,遍历这些batch,每个batch使用梯度下降法进行优化
如果batch的数目太大,则每次迭代的时间太长,如果batch的数目为1,则退化为随机梯度下降法,这样就丧失了向量化的加速作用,因此,需要合理选择batch的数目,一般对于较大的数据集,选择为64或128到512,一般是2的整数次幂。
指数加权平均
vt=βvt−1+(1−β)θtvt=βvt−1+(1−β)θt ,其大概平均了11−β11−β 的数据,其中ββ 的值常常取为0.9
当权值过大时,初始阶段可能偏差过大,这时可利用vt1−βtvt1−βt 来去掉偏差
momentum梯度下降法
此种方法的目的是消除随机梯度下降法的上下波动,当计算出dw、db等梯度后,使用vdw,vdbvdw,vdb 来代替,使用这些值来更新各个参数
RMSprop算法
此种算法对momentum做了一定的修改,更新公式变为Sdw=βSdw+(1−β)(dw)2Sdw=βSdw+(1−β)(dw)2,其权值更新公式变为:w=w−αdwSdw√w=w−αdwSdw ,为了防止权值更新公式中除以0,所以要在除的时候加一个很小的值εε
Adam算法
结合了上述两种算法,最终权值更新公式变为:w=w−αVdwSdw√+εw=w−αVdwSdw+ε,其中momentum常用的超参数的值为0.9,RMSprop中常用的超参数的值为0.999,极小值常取的值为10−810−8
学习率的衰减
α = 11+decay_rate∗epoch_numα0α = 11+decay_rate∗epoch_numα0
除此之外,还有其他的许多衰减算法,例如: