1 超参数(Hyperparameter)
神经网络中,最重要的超参数是学习因子α;其次是Momentum参数β(通常0.9)、mini-batch大小、隐含层单元数;再其次是隐含层层数、学习因子衰减率。如果采用Adam算法,其参数通常可以选用默认,β1 = 0.9、β2 = 0.999、ε = 10-8。
在尝试参数时,建议先对比较重要的参数随机取样,并尝试尽可能多的组合。当寻找到参数比较合适的范围后,对随机取样范围进一步细化,从而寻找更加合适的参数范围。
在搜索参数范围时,需要选择合适的尺度,例如学习因子可以在log域上搜索,而Momentum参数β可以对1 - β在log域上搜索。
训练模型的两种方式:
(1) 训练单个模型:没有足够的计算资源,针对单个模型,不断调整参数进行训练。
(2) 训练多个模型:拥有足够的计算资源,设置多个超参数,同时训练多个模型,选取最优的参数。
2 批量归一化(BN, Batch Normalization)
BN算法的思路就是在前向传播的过程中,对每一层的z(1), z(2), …, z(m)进行归一化,从而提高下一层的计算效率。具体如下:
μ=1m∑iz(i)σ2=1m∑i(zi−μ)2z(i)norm=z(i)−μσ2+ε√(1)
式中,ε为小量。由于各个隐含层的分布可能不同,需要作如下修正:
z~(i)=γz(i)norm+β(2)
通过设置不同的γ和β,就可以设置不同的隐含层分布。具体流程如下:
x→z[1]→z~