调试处理
神经网络的改变会涉及到许多不同超参数的设置。
实验表明,一些超参数比其它的更为重要。学习率α是需要调试的最重要的超参数。momentum中的β,隐层中的单元数以及mini-batch的大小是其次比较重要的。重要性排第三位的是层数,学习率衰减。在使用Adam算法是β1、β2以及ε通常使用默认值。
在深度学习领域,我们通常随机选择点,接着用这些随机点试验超参数的效果。因为对于要解决的问题而言,很难提前知道哪个超参数最重要。我们使用随机取值而不是网格取值表明,我们研究了更多重要超参数的潜在值。
我们给超参数取值的另一个原则是采用由粗糙到精细的策略。
超参数调试优先级 | |
第一优先级 | α |
第二优先级 | β1、hidden units、mini-batch size |
第三优先级 | layers、learning rate decay |
使用默认值 | β1、β2、ε |
为超参数选择合适的范围
在超参数范围中随机取值可以提升搜索效率。但随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺。
假设在搜索超参数α,我们怀疑其最小值是0.0001或最大是1,我们会画一条从0.0001到1的数轴,沿其随机均匀取值,那么90%的数值会落到0.1和1之间。结果就是在0.1到之间应用了90%的资源,而在0.0001到0.1之间只有10%的搜索资源。相反,用对数标尺搜索超参数的方式会更合理。在对数数轴上去随机点,在0.0001到0.001之间会有更多的搜索资源可用。
超参数训练的实践
照看一个模型(熊猫方法)
照看一个模型,通常是有庞大的数据组。但没有许多计算资源或足够的CPU和GPU的前提下,基本而言,我们只可以一次负担起试验一个模型或一小批模型。我们每天花一些时间照看我们的模型,观察它的表现,耐心调整各个参数。这适用于没有足够的计算能力,不能在同一时间试验大量模型。
同时试验多种模型(鱼子酱方法)
我们同时试验设置了不同超参数的多种模型,最后选择工作效果最好的。