首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文搞懂归一化(PyTorch)

归一化技术通过调整输入数据的尺度,使数据分布范围趋于一致,从而提升模型的训练效率和泛化性能。常见的归一化方法包括批量归一化(BN)、层归一化(LN)、实例归一化(IN)和组归一化(GN)等。

一、归一化

归一化,即Normalization,乃是一种数据预处理的精妙技艺,其宗旨在于将数据的分布雕琢至一个统一的尺度,例如塑造均值为零、标准差为一的完美形态。这一过程旨在抹去各特征间的量纲差异,为模型铺就一条通往有效特征学习的坦途。

在深度学习的宏伟蓝图中,归一化扮演着举足轻重的角色。它不仅通过重塑数据范围,为模型的快速收敛插上了翅膀,还巧妙地规避了数值上的荆棘,从而铸就了模型的坚不可摧之身。此外,归一化与交叉验证的默契配合,更是为模型训练的高效性和成果的精确性,提供了双重保障。

归一化乃是将数据之舟驶向稳定之港的航程,其过程犹如巧匠琢玉,精心雕琢数据的形态,使之适应后续的探索与雕琢。此航程分为三步曲:

1.划定疆界:首先,需界定数据的疆域,即其波动的极限——最大值与最小值。有时,亦可依据需求,选取其他统计星辰(如均值与标准差)来划定归一化的边界。

2.施展变换:随后,依据划定的疆界,施展归一化的魔法公式,将数据之舟驶向新的尺度。此魔法公式多样,有线性函数归一化,将数据映射至[0,1]或[-1,1]的平静海域;亦有Z-score标准化,将数据转化为标准正态分布的星辰大海。

3.抵达新岸:魔法施展完毕,数据之舟便抵达了归一化的新岸。此处,数据集之数值趋于平稳,为后续的探索与分析提供了坚实的基石。

二、常用的归一化

在数据预处理的宝库中,归一化技术犹如各式精工细作的钥匙,用以开启模型训练的效率与精度之门。其中,批量归一化(BN)、层归一化(LN)、实例归一化(IN)及组归一化(GN)等,皆为常用之选。这些技术各具匠心,适用于不同的任务与数据特征,其选择之道,需依具体情境与数据之特性而定。

1. 批量归一化(Batch Normalization, BN)——图像处理领域的宠儿

策略:在神经网络的层层迷宫中,对每一小批(mini-batch)的输入施以归一化的魔法。通过减去均值,再除以标准差,将输入数据转化为均值为零、标准差为一的和谐分布。

优势:它如同加速器,推动网络训练的快车;它是守护神,防止梯度消失或爆炸的灾难;它优化了正则化的效果,降低了对学习率的苛求,同时还有助于缓解过拟合的困扰,从而显著提升神经网络的性能与稳定性。

适用领域:它是大多数神经网络场景的得力助手,尤其是在深层次网络的训练中,批量归一化展现出了其不可或缺的价值。

# 卷积网络标准配置nn.Sequential(   nn.Conv2d(3, 64, 3),   nn.BatchNorm2d(64),  # 批量归一化   nn.ReLU())

2. 层归一化(Layer Normalization, LN)——Transformer架构的得力助手

策略:在神经网络的每一层中,对单个样本的所有特征维度施以归一化之力。通过减去均值,再除以标准差,将每个样本的特征维度转化为均值为零、标准差为一的平衡状态。

优势:在训练样本较少或样本间相互影响显著的情况下,层归一化展现出更强的稳定性。

适用领域:循环神经网络(RNN)、Transformer等场景,尤其擅长处理序列数据。

# Transformer Block结构class TransformerLayer(nn.Module):   def __init__(self):       super().__init__()       self.ln1 = nn.LayerNorm(512)       self.ln2 = nn.LayerNorm(512)

3. 实例归一化(Instance Normalization, IN)——风格迁移的魔法棒

策略:对每个样本的特征维度单独进行归一化处理。通过减去均值,再除以标准差,将每个样本的特征维度转化为均值为零、标准差为一的独立分布。

优势:特别适合图像生成等任务,其中每个样本的特征维度需独立于其他样本,以保留独特的风格信息。

适用领域:图像生成、风格迁移等需要保留样本独立特征的任务。

# 风格迁移网络片段style_transfer = nn.Sequential(   nn.Conv2d(3, 128, 3),   nn.InstanceNorm2d(128),  # 单样本单通道归一化   nn.AdaptiveAvgPool2d(1))

4. 组归一化(Group Normalization, GN)——小批量数据的守护者

策略:在神经网络的每一层中,将特征划分为若干组,对每一组的特征进行归一化处理。通过减去均值,再除以标准差,将每一组的特征维度转化为均值为零、标准差为一的分布。

优势:适用于样本量较小、样本间相互影响较大,但无需对整个小批量(mini-batch)进行归一化的情况,兼顾效率与稳定性。

适用领域:图像分割等任务,尤其在批量大小受限时表现优异。

# 医学图像分割网络nn.Sequential(   nn.Conv2d(64, 128, 3),   nn.GroupNorm(4, 128),  # 128通道分为4组   nn.LeakyReLU())

·

欢迎关注“福大大架构师每日一题”,让AI助力您的未来发展。

·

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmlvWBcbXL790Abg09u8J2Zw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券