如果我们采用一个Adam梯度下降法,将会有学习率、网络层数、每层神经元个数、beta1、beta2等等超参数需要我们调整。面对这么多排列组合的可能性,我们需要采用适当的超参数选取策略。
1.超参数重要性排列(吴恩达老师个人意见)
t0:学习率
t1:momentum的beta,隐藏层节点数、mini_batch大小
t2:网络层数、learning_rate_decay(学习率衰减参数)
t3(不经常修改):Adam的beta1,beta2,epsilon
2.随机选取
对于超参数选取,我们的第一个直觉是,对于学习率取5个值,对于beta取5个值,把这25个可能性试一遍找出最优的。这样做的问题在于,我们明明进行了25组测试,但是却只测了5个不同的学习率,有点浪费。
正确的做法是,在超参数空间中进行随机选取。这样我选择25次,就会有25个不同的学习率,25个不同的beta,这样对参数的考察会更全面。
我们可以采用先整体再局部的原则,先稀疏的在超参数空间进行选取。粗略找到效果较好的几个点后,在这些点的周围再详细搜索。可以提升搜索效率。
3.合适的标尺
对于网络层数这样的超参数,如果它的范围是[2,10],我们只需要在这上面搞均匀分布就行。然而对于学习率这样的参数,它的范围可能是[0.0001,1],我们再搞均匀分布就不太合适。因为0.0001和0.0002相差2倍,算是差距很大;而0.9999和1虽然也只差0.0001,但是差距就不是很大