BN(Batch Normalization)

1 BN的介绍

在神经网络的训练过程中, 我们一般会将输入样本的特征进行标准化处理,使数据变成均值为0, 标准差为1的高斯分布, 或者范围在0附近的分布。 因为如果数据没有进行该处理的话, 由于样本特征分布比较散, 可能会导致学习速度慢甚至难以学习。
因此一个较好的数据分布可以使神经网络的训练速度加快, 甚至效果更好。

在模型训练的时候, 由于模型参数在发生更新, 那么除了输入层的数据之外, 后面网络的每一层的输入数据分布都是一直在发生变化的。 网络中间层的训练过程中, 数据分布的改变被称为'Internal Covariate Shift' 。 而BN的提出就是 为了解决在训练过程中, 中间层数据分布发生改变的情况
Batch Normalization Layer(BN Layer)是期望我们的结果是服从高斯分布的,所以对神经元的输出进行一下修正。 论文中建议放到卷积层/FC层后, 激励层/池化层前, 而实际应用的时候有时候会放到激励层后。
论文: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift;
论文链接: https://arxiv.org/pdf/1502.03167v3.pdf

2 BN的步骤

2.1 BN的训练步骤


BN的训练步骤主要分为以下4步:

  1. 求解每个训练批次数据的均值
  2. 求解每个训练批次数据的方差
  3. 使用求得的均值和方差对该批次的数据做标准化处理, 获得0-1分布。
  4. 尺度变换和偏移: 使用标准化之后的x乘以γ调整数值大小, 再加上β增加偏移后得到输出值y。 这个γ是尺度因子, β是平移因子, 属于BN的核心精髓, 由于标准化后的x基本会被限制在正态分布下, 会使得网络的表达能力下降, 为了解决这个问题, 引入两个模型参数γ、 β进行平移变化。
    在上述中,对于每个训练批次数据,比如说,一个批次有8个样本,一个样本中,特征图尺寸为24x24,通道数量为10,那么,就会选择每个样本的同一个通道出来作BN,对于特征图上的每个位置我们会计算这个位置上,在批次中所有样本对应位置的值的均值和方差。 例如下图

2.2 BN在测试的时候

在训练的时候我们一般使用一个批次中的样本的均值和标准差进行BN操作,但是预测的时候由于样本数目不确定(比较少), 所以不好使用预测样本的均值和方差进行BN操作, 实际上在预测的时候, 使用的是训练阶段所有batch记录下来的均值和方差的期望值作为预测时候BN的均值和方差

实际实现的时候可能采用类似momentum动量法中使用的滑动平均来进行计算测试时候的均值和方差。

3 BN的优缺点

3.1 Batch Normalization优点

1 梯度传递(计算)更加顺畅, 不容易导致神经元饱和 (防止梯度消失(梯度弥散)/梯度爆炸, 允许使用饱和性激活函数<eg: sigmoid、tanh等>)
2 学习率可以设置的大一点, 加快训练速度。
3 对于模型参数的初始化方式和模型参数取值不太敏感, 使得网络学习更加稳定, 提高模型训练精度。
4 具有一定的正则化效果, 类似Dropout、 L1、 L2等正则化的效果。

3.2 Batch Normalization缺点

1 如果网络层次比较深, 加BN层的话, 可能会导致模型训练速度很慢。
2 训练批次不能设置太小, 一般建议批次大小16以上。对batchsize大小敏感, 由于每次计算均值和方差是在同一个batch上, 如果batchsize设置的太小, 计算出来的均值和方差不足以代表整个数据分布
3 BN的计算过程中需要保存某一层神经网络batch的均值和方差等统计信息, 对于固定长度的网络结构(DNN、 CNN)比较适合, 但是对于不定长度的RNN的,训练比较麻烦

相关推荐
kkzhang16 分钟前
Concept Bottleneck Models-概念瓶颈模型用于可解释决策:进展、分类体系 与未来方向综述
深度学习
零售ERP菜鸟17 分钟前
范式革命:从“信息化”到“数字化”的本质跃迁
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯
光羽隹衡19 分钟前
计算机视觉——Opencv(图像拼接)
人工智能·opencv·计算机视觉
SEO_juper35 分钟前
2026内容营销破局指南:告别流量内卷,以价值赢信任
人工智能·ai·数字营销·2026
初恋叫萱萱37 分钟前
数据即燃料:用 `cann-data-augmentation` 实现高效训练预处理
人工智能
一战成名9961 小时前
CANN 仓库揭秘:昇腾 AI 算子开发的宝藏之地
人工智能
hnult1 小时前
2026 在线培训考试系统选型指南:核心功能拆解与选型逻辑
人工智能·笔记·课程设计
A小码哥1 小时前
AI 设计时代的到来:从 PS 到 Pencil,一个人如何顶替一个团队
人工智能
AIGCmitutu1 小时前
PS 物体底部阴影怎么做?3 步做出自然逼真的投影效果
人工智能·电子商务·photoshop·ps·美工
开源技术1 小时前
Claude Opus 4.6 发布,100万上下文窗口,越贵越好用
人工智能·python