BN的一些细节

批量归一化(Batch Normalization)通过强制数据服从均值为0,方差为1的分布,防止激活函数饱和,避免梯度消失。同时,BN引入gamma和beta参数来补偿数据特征的损失,提高模型拟合能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BN的作用:

避免梯度消失

为什么BN能避免梯度消失:

BN将原本的数据强制拉回均值为0,方差为1的正态分布,使得BN后的数据在经过sigmoid这类激活函数后不会落入饱和区,让数据更多的分布在激活函数的非饱和区,从而避免梯度消失。

为什么BN还要学习gamma和beta参数?

由于BN破坏了原始数据的分布,破坏了原始数据的特征分布,降低了原数据的拟合能力,为了抵消BN对原数据特征的影响,从而要学习这放缩和平移这两个参数

### Batch Normalization 相关学术论文 Batch Normalization (BN) 是一种用于加速深度神经网络训练并提高模型泛化能力的重要技术。自2015年由 Sergey Ioffe 和 Christian Szegedy 提出以来,已经有许多研究围绕这一主题展开。 #### 原始论文 最基础也是最重要的当然是 BN 技术的原始论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》[^3]。这篇论文不仅介绍了 BN 的理论背景——即如何通过减少内部协变量偏移(Internal Covariate Shift) 来提升训练效率,还提供了具体的实现细节和技术优势说明。 #### 后续发展与改进 随着 BN 应用场景逐渐扩大,研究人员也针对不同类型的网络结构开发出了多种变体: - **Layer Normalization**: 解决了 RNN 中长期依赖问题以及图像数据集上的表现不佳等问题; - **Instance Normalization**: 主要应用于风格迁移等领域; - **Group Normalization**: 针对小批量尺寸下的效果优化而设计的一种新型归一化方式。 这些方法虽然各有侧重,但在核心思想上继承和发展了最初的 BN 概念[^1]。 #### 实验验证与应用案例分析 除了上述提到的方法论探讨外,还有大量工作致力于实证研究 BN 对各类任务的影响程度及其背后的机制解析。例如,《How Does Batch Normalization Help Optimization?》深入剖析了 BN 如何影响梯度传播过程中的数值稳定性;另有研究表明适当调整超参数设置可以进一步增强 BN 效果等。 ```python import torch.nn as nn class Net(nn.Module): def __init__(self, num_features=64): super().__init__() self.bn = nn.BatchNorm2d(num_features) def forward(self, x): out = self.bn(x) return out ``` 此代码片段展示了 PyTorch 中简单的卷积层之后使用 `nn.BatchNorm2d` 进行批标准化操作的方式[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值