3.1 调试处理(Tuning process)

深度神经网络需要调试的超参数(Hyperparameters)包括:

  • α\alpha:学习因子

  • β\beta:动量梯度下降因子

  • β1,β2,ε\beta_1,\beta_2,\varepsilon:Adam算法参数

  • #layers:神经网络层数

  • #hidden units:各隐藏层神经元个数

  • learning rate decay:学习因子下降参数

  • mini-batch size:批量训练样本包含的样本个数

学习因子α\alpha是最重要的超参数,也是需要重点调试的超参数。动量梯度下降因子β\beta、各隐藏层神经元个数#hidden units和mini-batch size的重要性仅次于,然后就是神经网络层数#layers和学习因子下降参数learning rate decay。最后,Adam算法的三个参数β1,β2,ε\beta_1,\beta_2,\varepsilon一般常设置为0.9,0.999和10810^{-8}

传统的机器学习中,对每个参数等距离选取任意个数的点,分别使用不同点对应的参数组合进行训练,最后根据验证集上的表现好坏来选定最佳的参数。例如有两个待调试的参数,分别在每个参数上选取5个点,这样构成了5x5=25中参数组合:

这种做法在参数比较少的时候效果较好

深度神经网络模型中是使用随机选择。随机选择25个点,作为待调试的超参数:

随机化选择参数是为了尽可能地得到更多种参数组合。如果使用均匀采样,每个参数只有5种情况;而使用随机采样的话,每个参数有25种可能的情况,更可能得到最佳的参数组合

另外一个好处是对重要性不同的参数之间的选择效果更好。假设hyperparameter1为α\alpha,hyperparameter2为ε\varepsilon,显然二者的重要性是不一样的。如果使用第一种均匀采样的方法,ε\varepsilon的影响很小,相当于只选择了5个α\alpha值。而如果使用第二种随机采样的方法,ε\varepsilonα\alpha都有可能选择25种不同值。这大大增加了α\alpha调试的个数,更有可能选择到最优值

在实际应用中完全不知道哪个参数更加重要的情况下,随机采样的方式能有效解决这一问题,但是均匀采样做不到这点

随机采样之后,可能得到某些区域模型的表现较好。为了得到更精确的最佳参数,继续对选定的区域进行由粗到细的采样(coarse to fine sampling scheme)。就是放大表现较好的区域,对此区域做更密集的随机采样

如对下图中右下角的方形区域再做25点的随机采样,以获得最佳参数:

Last updated