1700538400
1700538401
(9.32)
1700538402
1700538403
1700538404
,
1700538405
1700538406
(9.33)
1700538407
1700538408
1700538409
,
1700538410
1700538411
(9.34)
1700538412
1700538413
1700538414
.
1700538415
1700538416
(9.35)
1700538417
1700538418
上面的Bernoulli函数的作用是以概率系数p随机生成一个取值为0或1的向量,代表每个神经元是否需要被丢弃。如果取值为 0,则该神经元将不会计算梯度或参与后面的误差传播。
1700538419
1700538420
测试阶段是前向传播的过程。在前向传播的计算时,每个神经元的参数要预先乘以概率系数p,以恢复在训练中该神经元只有p的概率被用于整个神经网络的前向传播计算。
1700538421
1700538422
更多详细内容及实验性能对比请查看参考文献[19]。
1700538423
1700538424
问题3 批量归一化的基本动机与原理是什么?在卷积神经网络中如何使用?
1700538425
1700538426
难度:★★★☆☆
1700538427
1700538428
分析与解答
1700538429
1700538430
神经网络训练过程的本质是学习数据分布,如果训练数据与测试数据的分布不同将大大降低网络的泛化能力,因此我们需要在训练开始前对所有输入数据进行归一化处理。
1700538431
1700538432
然而随着网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大训练的复杂度以及过拟合的风险。
1700538433
1700538434
1700538435
批量归一化方法是针对每一批数据,在网络的每一层输入之前增加归一化处理(均值为0,标准差为1),将所有批数据强制在统一的数据分布下,即对该层的任意一个神经元(假设为第k维)采用如下公式
1700538436
1700538437
1700538438
,
1700538439
1700538440
(9.36)
1700538441
1700538442
1700538443
其中x(k)为该层第k个神经元的原始输入数据,E[x(k)]为这一批输入数据在第k个神经元的均值,为这一批数据在第k个神经元的标准差。
1700538444
1700538445
批量归一化可以看作在每一层输入和上一层输出之间加入了一个新的计算层,对数据的分布进行额外的约束,从而增强模型的泛化能力。但是批量归一化同时也降低了模型的拟合能力,归一化之后的输入分布被强制为0均值和1标准差。以Sigmoid激活函数为例,批量归一化之后数据整体处于函数的非饱和区域,只包含线性变换,破坏了之前学习到的特征分布。为了恢复原始数据分布,具体实现中引入了变换重构以及可学习参数γ和β:
1700538446
1700538447
1700538448
,
1700538449
[
上一页 ]
[ :1.7005384e+09 ]
[
下一页 ]