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