欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > BN 层的作用, 为什么有这个作用?

BN 层的作用, 为什么有这个作用?

2025/4/6 7:46:08 来源:https://blog.csdn.net/ncnfjdjjd/article/details/147016911  浏览:    关键词:BN 层的作用, 为什么有这个作用?

BN 层(Batch Normalization)——这是深度神经网络中非常重要的一环,它大大改善了网络的训练速度、稳定性和收敛效果。


🧠 一句话理解 BN 层的作用:

Batch Normalization(批归一化)通过标准化每一层的激活值,让训练过程更稳定、更快、更容易收敛。

🧩 为什么需要 BN 层?

在深度网络中,随着层数增加,每层的输入分布会发生变化(称为 internal covariate shift):

• 比如某一层开始习惯输入是 [-1, 1] 的分布;

• 但由于前面参数更新,下一次训练时输入可能变成 [0, 10];

• 导致该层“适应不过来”,训练变慢,甚至梯度消失或爆炸。


🎯 BN 是怎么解决这个问题的?

✅ 它做了两步处理:

1. 标准化(Standardization)

• 对 mini-batch 的每个神经元,减去均值、除以标准差,使输出是均值为 0、方差为 1。

• 类似 z-score:

\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}

2. 线性变换(恢复表达能力)

• 引入两个可学习参数 γ(scale)和 β(shift):

y_i = \gamma \hat{x}_i + \beta

• 这一步确保即使你归一化了,也不会失去模型拟合能力(BN 不是简单的“压缩”,而是“规范+再建”)。


🌟 BN 的作用总结:

功能

解释

📉 减少内部协变量偏移

让每层输入分布更稳定,网络更容易学习

⚡ 加快收敛速度

训练更快、效果更好(可以用更大学习率)

📐 缓解梯度消失/爆炸

标准化后激活不会太大太小,梯度更稳

🧲 一定程度正则化

每次用 mini-batch,会引入噪声,有点像 Dropout

🚀 更深网络也能稳定训练

尤其适用于 ResNet、VGG 等大网络结构


🎨 类比记忆:

想象你在一个楼梯上训练爬楼,如果每一层的高度都在不断变(有的高有的矮),你会训练得很累;BN 就像把每一层都“规范化”为标准的高度,让你更容易上楼。


🧪 使用场景:

• 常用于卷积层或全连接层后,激活函数前后都可以(通常是前)。

• 训练时用 batch 均值和方差,推理时用滑动平均。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词