1. 超参数
深度神经网络需要调试的超参数(Hyperparameters)如下,重要性红色>蓝色>橘色>黑色- α:学习因子
- β:动量梯度下降因子
- β1,β2,ε:Adam算法参数
- #layers:神经网络层数
- #hidden units:各隐藏层神经元个数
- learning rate decay:学习因子下降参数
- mini-batch size:批量训练样本包含的样本个数
系统地组织超参调试过程的技巧:
- 随机选择点(而非均匀选取),用这些点实验超参数的效果。这样做的原因是我们提前很难知道超参数的重要程度,可以通过选择更多值来进行更多实验;
- 由粗糙到精细:聚焦效果不错的点组成的小区域,在其中更密集地取值,以此类推
- 对于学习率 α,用对数标尺而非线性轴更加合理:0.0001、0.001、0.01、0.1 等,然后在这些刻度之间再随机均匀取值;
- 对于 β,取 0.9 就相当于在 10 个值中计算平均值,而取 0.999 就相当于在 1000 个值中计算平均值。可以考虑给 1-β 取值,这样就和取学习率类似了。
Babysitting one model:在训练深度神经网络时,一种情况是有庞大的数据组,但没有许多计算资源或足够的 CPU 和 GPU 的前提下,只能对一个模型进行训练(Panda熊猫训练方式),调试不同的超参数,使得这个模型有最佳的表现
trainning many models:Caviar鱼子酱方式,当拥有足够的计算机去平行试验很多模型,尝试很多不同的超参数,选取效果最好的模型;
3. batch norm
批量标准化(Batch Normalization,BN)会使参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定,超参数的范围会更庞大,工作效果也很好,也会使训练更容易。输入的标准化处理Normalizing inputs和隐藏层的标准化处理Batch Normalization是有区别的。Normalizing inputs使所有输入的均值为0,方差为1。而Batch Normalization可使各隐藏层输入的均值和方差为任意值。隐藏层的激活值标准化如下:
m是单个mini-batch包含样本个数,ε是为了防止分母为零,可取值10−8,使得该隐藏层的所有输入z(i)均值为0,方差为1;但大部分情况下并不希望所有的z(i)均值都为0,方差都为1,也不太合理。通常需要对z(i)进行进一步处理:
γ和β是需要训练的参数,可以通过梯度下降等算法求得,设置这两个参数可以让z(i)的均值和方差可以为任意值,只需调整其值。 设置 γ 和 β 的原因是从激活函数的角度来说,如果各隐藏层的输入均值在靠近0的区域即处于激活函数的线性区域,这样不利于训练好的非线性神经网络,模型效果也不会太好。
使用 Batch Normalization 时,因为标准化处理中包含减去均值的一步,因此 b 实际上没有起到作用,其数值效果交由 β 来实现。因此,在 Batch Normalization 中,可以省略 b 或者暂时设置为 0。
Batch Normalization 效果很好的原因有以下两点:
- 通过对隐藏层各神经元的输入做类似的标准化处理,提高神经网络训练速度;
- 可以使前面层的权重变化对后面层造成的影响减小,使权重比网络更之后或者更深层,限制前层的参数更新导致对后面网络数值分布程度的影响,使得输入后层的数值变得更加稳定,整体网络更加健壮。
关于第二点,如果实际应用样本和训练样本的数据分布不同(例如,橘猫图片和黑猫图片),我们称发生了“Covariate Shift”。这种情况下,一般要对模型进行重新训练。Batch Normalization 的作用就是减小 Covariate Shift 所带来的影响,让模型变得更加健壮,鲁棒性(Robustness)更强。即使输入的值改变了,由于 Batch Normalization 的作用,使得均值和方差保持不变(由 γ 和 β 决定),限制了在前层的参数更新对数值分布的影响程度,因此后层的学习变得更容易一些。Batch Normalization 减少了各层 W 和 b 之间的耦合性,让各层更加独立,实现自我训练学习的效果。
另外,Batch Normalization 也起到微弱的正则化(regularization)效果。因为在每个 mini-batch 而非整个数据集上计算均值和方差,只由这一小部分数据估计得出的均值和方差会有一些噪声,因此最终计算出的z(i) 也有一定噪声。类似于 dropout,这种噪声会使得神经元不会再特别依赖于任何一个输入特征。Batch Normalization 可以和 dropout 一起使用,以获得更强大的正则化效果。通过应用更大的 mini-batch 大小,可以减少噪声,从而减少这种正则化效果。
不要将 Batch Normalization 作为正则化的手段,不能解决过拟合,而是当作加速学习的方式。正则化只是一种非期望的副作用,Batch Normalization 解决的还是反向传播过程中的梯度问题(梯度消失和爆炸)。
在测试集中,需要对每一个样本逐一处理,使用指数加权平均的方法来预测测试过程单个样本的 μ 和 σ2。对于第 l 层隐藏层,考虑所有 mini-batch 在该隐藏层下的 μ 和 σ2,然后用指数加权平均的方式来预测得到当前单个样本的 μ 和 σ2。这样就实现了对测试过程单个样本的均值和方差估计。
4. 分类回归
Softmax 回归,能在识别多种分类中的一个时做出预测,对于多分类问题,用C表示种类个数,神经网络中输出层就有C个神经元,即n[L]=Cn[L],每个神经元的输出依次对应属于该类的概率,即P(y=c∣x),处理多分类问题一般使用Softmax回归模型
标签:吴恩达,均值,batch,Batch,神经网络,参数,Normalization From: https://www.cnblogs.com/forever-fate/p/17153229.html