Batch Normalization

批量归一化(Batch Normalization,BN)是一种在神经网络中加速训练和提高模型稳定性的技术,通过对中间层的输出进行归一化处理,改善了训练速度和减少了对学习率的选择依赖。BN的主要优点包括更快的收敛、减少超参数调整、缓解过拟合。计算流程涉及计算样本均值和方差,然后进行归一化和重构,其中γ和β是可学习参数。BN的从零实现与PyTorch等框架的实现结果一致,可学习参数量为2×C。
摘要由CSDN通过智能技术生成

Batch Normalization

1、什么是Batch Normalization

以前在神经网络训练中,只是对输入层数据进行归一化处理,却没有在中间层进行归一化处理。要知道,虽然我们对输入数据进行了归一化处理,但是输入数据经过 σ ( W X + b ) \sigma(WX+b) σ(WX+b) 这样的矩阵乘法以及非线性运算之后,其数据分布很可能被改变,而随着深度网络的多层运算之后,数据分布的变化将越来越大。如果我们能在网络的中间也进行归一化处理,是否对网络的训练起到改进作用呢?答案是肯定的。

这种在神经网络中间层也进行归一化处理,使训练效果更好的方法,就是批归一化Batch Normalization(BN)。

2、BN的优点

1、加快模型的收敛速度,但是一般不改变模型的精度

2、减少了人为选择参数。在某些情况下可以取消 dropout 和 L2 正则项参数,或者采取更小的 L2 正则项约束参数

3、减少了对学习率的要求。现在我们可以使用初始很大的学习率或者选择了较小的学习率,算法也能够快速训练收敛

4、破坏原来的数据分布,一定程度上缓解过拟合

3、BN的计算流程

下面给出 BN 算法在训练时的过程

输入:上一层输出结果 X = x 1 , x 2 , . . . , x m X = {x_1, x_2, ..., x_m} X=x1,x2,...,xm,学习参数 γ , β \gamma, \beta γ,β

算法流程:

计算上一层输出数据的均值

μ β = 1 m ∑ i = 1 m ( x i ) \mu_{\beta} = \frac{1}{m} \sum_{i=1}^m(x_i) μβ=m1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值