Batch Normalization概念
批标准化
- 批:一批数据,通常为mini-batch
- 标准化:0均值,1方差
优点:
1、可以用更大的学习率,加速模型的收敛
2、可以不用精心设计权值初始化
3、可以不用dropout或者较小的dropout
4、可以不用L2或者较小的weight decay
5、可以不用LRN(local response normalization)
计算方式

affine transform 增强Capacity(容纳能力)
内部协变量转移

_BatchNorm
__init__(self, num_features, eps=1e-5, momentum=0.1, affine=True, track_running_stats=True)
nn.BatchNorm1d
nn.BatchNorm2d
nn.BatchNorm3d
参数:
- num_features: 一个样本特征数量
- eps:分母修正项
- momentum: 指数加权平均估计当前mean/var
- affine: 是否需要affine transform
- track_running_stats: 是训练状态还是测试状态
主要属性:

- running_mean: 均值
- running_var: 方差
- weight: affine transform 中的gamma
- bias: affine transform 中的beta
训练:均值和方差采用指数加权平均计算
测试:当前统计值
running_mean = (1-momentum) * pre_running_mean + momentum * mean_t
running_var = (1-momentum) * pre_running_var + momentum * var_t
本文详细介绍了批标准化(BatchNormalization)的概念及其在深度学习中的应用。批标准化通过将输入数据标准化为0均值和1方差,解决了内部协变量转移问题,允许使用更大的学习率,加速模型收敛。它还简化了权重初始化,减少了对dropout和正则化的依赖。文章解释了BatchNormalization的计算方式,以及在不同维度上的实现,并讨论了其在训练和测试阶段的统计值计算。
924

被折叠的 条评论
为什么被折叠?



