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的,训练比较麻烦

相关推荐
☺����36 分钟前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
fsnine1 小时前
机器学习——数据清洗
人工智能·机器学习
一车小面包1 小时前
逻辑回归 从0到1
算法·机器学习·逻辑回归
小猿姐2 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
算法_小学生2 小时前
循环神经网络(RNN, Recurrent Neural Network)
人工智能·rnn·深度学习
吱吱企业安全通讯软件2 小时前
吱吱企业通讯软件保证内部通讯安全,搭建数字安全体系
大数据·网络·人工智能·安全·信息与通信·吱吱办公通讯
盲盒Q2 小时前
《频率之光:共振之战》
人工智能·硬件架构·量子计算
飞哥数智坊3 小时前
DeepSeek V3.1 发布:我们等的 R2 去哪了?
人工智能·deepseek
爱分享的飘哥3 小时前
第八十三章:实战篇:文 → 图:Prompt 控制图像生成系统构建——从“咒语”到“神作”的炼成!
人工智能·计算机视觉·prompt·文生图·stablediffusion·diffusers·text-to-image
ciku3 小时前
Spring Ai Advisors
人工智能·spring·microsoft