韩国美容网站 模板,网络广告投放网站,33vu页面访问升级版本,网站建设接单源码如是我闻#xff1a; Batch Normalization#xff08;批归一化#xff0c;简称 BN#xff09; 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。
它的核心思想是#xff1a;在每一层的输入进行归一化#xff0c;使其均值接近 0…如是我闻 Batch Normalization批归一化简称 BN 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。
它的核心思想是在每一层的输入进行归一化使其均值接近 0方差接近 1从而减少不同批次数据的分布变化Internal Covariate Shift提高训练效率并降低对超参数的敏感性。 1. 为什么需要 Batch Normalization
(1) 训练过程中数据分布会变化
在深度神经网络中每一层的输入数据并不是固定的而是来自前一层的输出。随着训练进行前几层的权重不断变化导致后面层的输入数据分布发生变化即 Internal Covariate Shift。这种变化会让网络不断适应新的数据分布影响收敛速度甚至可能导致梯度消失或梯度爆炸问题。
(2) 归一化输入可以加速收敛
在训练神经网络时通常对输入数据进行归一化标准化即让输入数据的均值为 0方差为 1 x ′ x − μ σ x \frac{x - \mu}{\sigma} x′σx−μ但是如果只对输入数据归一化而不对隐藏层的输入归一化那么后续层仍然可能受到数据分布变化的影响。
(3) Batch Normalization 解决了什么问题
✅ 减少 Internal Covariate Shift让每层的输入分布更加稳定。 ✅ 加速收敛使网络能够使用更大学习率进行训练。 ✅ 减少梯度消失和梯度爆炸问题提高深度网络的训练稳定性。 ✅ 减少对超参数如学习率、权重初始化的依赖使得网络更容易调参。 ✅ 有一定的正则化效果降低过拟合的风险。 2. Batch Normalization 的计算过程
假设当前网络有一层的输入是 x x xBatch Normalization 计算过程如下
(1) 计算均值和方差
对一个 batch 的数据 B { x 1 , x 2 , . . . , x m } B \{ x_1, x_2, ..., x_m \} B{x1,x2,...,xm}计算该 batch 的均值 μ B \mu_B μB 和方差 σ B 2 \sigma_B^2 σB2 μ B 1 m ∑ i 1 m x i \mu_B \frac{1}{m} \sum_{i1}^{m} x_i μBm1i1∑mxi σ B 2 1 m ∑ i 1 m ( x i − μ B ) 2 \sigma_B^2 \frac{1}{m} \sum_{i1}^{m} (x_i - \mu_B)^2 σB2m1i1∑m(xi−μB)2
(2) 归一化数据
用均值和标准差对数据进行标准化 x ^ i x i − μ B σ B 2 ϵ \hat{x}_i \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 \epsilon}} x^iσB2ϵ xi−μB 其中 ϵ \epsilon ϵ 是一个很小的数防止除以 0。
(3) 线性变换可学习参数
为了保证 BN 不会限制网络的表达能力我们引入两个可学习参数
缩放参数 γ \gamma γscale控制归一化后的分布的尺度。平移参数 β \beta βshift让归一化后的数据能够恢复到合适的分布。
最终输出 y i γ x ^ i β y_i \gamma \hat{x}_i \beta yiγx^iβ
这样BN 既能保证数据的稳定性又能让网络学到适当的分布。 3. Batch Normalization 在网络中的作用
BN 层通常可以添加到 全连接层或卷积层之后ReLU 之前 在全连接网络MLP中 z W x b z Wx b zWxb 之后加入 Batch Normalization z ^ z − μ B σ B 2 ϵ \hat{z} \frac{z - \mu_B}{\sqrt{\sigma_B^2 \epsilon}} z^σB2ϵ z−μB 然后乘以 γ \gamma γ 并加上 β \beta β y γ z ^ β y \gamma \hat{z} \beta yγz^β 最后再经过激活函数如 ReLU。 在 CNN 里对每个通道的特征图进行归一化 μ B 1 m ⋅ h ⋅ w ∑ i 1 m ∑ j 1 h ∑ k 1 w x i , j , k \mu_B \frac{1}{m \cdot h \cdot w} \sum_{i1}^{m} \sum_{j1}^{h} \sum_{k1}^{w} x_{i, j, k} μBm⋅h⋅w1i1∑mj1∑hk1∑wxi,j,k 其中 m m m 是 batch 大小 h , w h, w h,w 是特征图的高度和宽度。 4. Batch Normalization 的优缺点
✅ 优点
加速训练可以使用更大学习率。减少梯度消失/梯度爆炸问题。提高网络的泛化能力有一定的正则化效果但不完全等同于 Dropout。降低对权重初始化的敏感性。
❌ 缺点
对小 batch 不友好因为均值和方差计算会不稳定。在 RNN 里效果不好时间序列数据的统计特性不同。推理时计算均值和方差会增加计算量。 6. BN 和其他归一化方法的对比
归一化方法应用场景归一化维度适用于 RNN?Batch NormalizationCNN, MLP在 batch 维度计算均值和方差❌Layer NormalizationRNN, Transformer在特征维度归一化不依赖 batch✅Instance Normalization风格迁移在每个样本的特征图上归一化❌Group Normalization小 batch CNN在多个通道分组归一化✅ 7. 总的来说
Batch NormalizationBN是深度学习中的一个重要归一化技术它的目标是减少 Internal Covariate Shift提高训练速度和稳定性。核心步骤 计算 batch 均值和方差。归一化数据使其均值 0方差 1。使用可学习参数 γ \gamma γ 和 β \beta β 进行缩放和平移。 BN 主要作用 加速收敛可以使用更大学习率。减少梯度消失/梯度爆炸问题提高稳定性。有一定的正则化作用降低过拟合。 缺点 小 batch 训练效果较差。在 RNN 里效果不好。 以上