参考文章链接
参考文章题目:One weird trick for parallelizing convolutional neural networks
具体可看第5页中。
一般来说,我们batch size 大一些,则learning rate也要大一些。且有一个数学关系。
假设别人最优的结果是这样的:
b
a
t
c
h
s
i
z
e
=
b
a
t
c
h
1
batch size = batch_1
batchsize=batch1
l
e
a
r
n
i
n
g
r
a
t
e
=
l
r
1
learning rate = lr_1
learningrate=lr1
那么当我们改变batch size的时候,可能遵循这样的规律:
n
e
w
l
e
a
r
n
i
n
g
r
a
t
e
=
o
l
d
l
e
a
r
n
i
n
g
r
a
t
e
∗
n
e
w
b
a
t
c
h
s
i
z
e
/
o
l
d
b
a
t
c
h
s
i
z
e
new learning rate = old learning rate * \sqrt{new batch size / old batch size}
newlearningrate=oldlearningrate∗newbatchsize/oldbatchsize
举例来说,原先别人的batch size 为128, learning rate为0.0005, 那么当我们把batch size改为1024时,则新的学习率有这样的推荐值: 0.0005 ∗ 1024 / 128 = 0.0005 ∗ 8 = 0.001412 0.0005*\sqrt{1024/128}=0.0005*\sqrt{8}=0.001412 0.0005∗1024/128=0.0005∗8=0.001412