打字猴:1.700538431e+09
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
1700538450 (9.37)
1700538451
1700538452 其中γ(k)和β(k)分别为输入数据分布的方差和偏差。对于一般的网络,不采用批量归一化操作时,这两个参数高度依赖前面网络学习到的连接权重(对应复杂的非线性)。而在批量归一化操作中,γ和β变成了该层的学习参数,仅用两个参数就可以恢复最优的输入数据分布,与之前网络层的参数解耦,从而更加有利于优化的过程,提高模型的泛化能力。
1700538453
1700538454 完整的批量归一化网络层的前向传导过程公式如下:
1700538455
1700538456
1700538457
1700538458
1700538459 (9.38)
1700538460
1700538461
1700538462
1700538463
1700538464 (9.39)
1700538465
1700538466
1700538467
1700538468
1700538469 (9.40)
1700538470
1700538471
1700538472
1700538473
1700538474 (9.41)
1700538475
1700538476 批量归一化在卷积神经网络中应用时,需要注意卷积神经网络的参数共享机制。每一个卷积核的参数在不同位置的神经元当中是共享的,因此也应该被一起归一化。具体实现中,假设网络训练中每一批包含b个样本,由一个卷积核生成的特征图的宽高分别为w和h,则每个特征图所对应的全部神经元个数为b×w×h;利用这些神经元对应的所有输入数据,我们根据一组待学习的参数γ和β对每个输入数据进行批量归一化操作。如果有f个卷积核,就对应f个特征图和f组不同的γ和β参数。
1700538477
1700538478
1700538479
1700538480
[ 上一页 ]  [ :1.700538431e+09 ]  [ 下一页 ]