深度学习中常用的归一化方法有:最大最小归一化(Min-Max Scaling)、Z-score归一化(Standardization)、小数定标归一化(Decimal Scaling)、批量归一化(Batch Normalization,BN)、层归一化(Layer Normalization,LN)、实例归一化(Instance Normalization,IN)和组归一化(Group Normalization,GN)。
-
最大最小归一化(Min-Max Scaling):将数据缩放到一个指定的最小值和最大值之间。对于每个特征,它将原始值减去最小值,并除以最大值与最小值之差。这种方法将数据线性映射到[0,1]范围内。这种归一化方法适用于特征值分布有确定的上下界的情况,如图像像素值等。例如,将图像的像素值从0-255范围归一化到0-1范围。
-
Z-score归一化(Standardization):通过减去均值,再除以标准差,将数据转化为标准正态分布。这种方法假设数据服从正态分布,将数据减去均值后,均值为0,标准差为1。Z-score归一化适用于特征值分布无特定上下界的情况,例如文本数据中的词频。例如,将NLP任务中的词频向量进行Z-score归一化。
-
小数定标归一化(Decimal Scaling):将数据除以10的幂次,使得数据的绝对值都小于1。这种方法不需要知道数据的分布情况,适用于特征值分布无特定上下界的情况。例如,将一个图像的像素值除以255,将其范围归一化到0-1。
-
批量归一化(Batch Normalization,BN):在神经网络的每一层中,对每个mini-batch的输入进行归一化处理。它通过减去均值,再除以标准差,将输入数据转化为均值为0,标准差为1的分布。这样可以加速网络的训练过程,同时可以防止梯度消失或爆炸的问题。例如,在图像分类任务中,对于每个卷积层或全连接层的输出进行批量归一化。
-
层归一化(Layer Normalization,LN):与批量归一化类似,但是在层归一化中,每个样本的特征维度上进行归一化。它通过减去均值,再除以标准差,将每个样本的特征维度转化为均值为0,标准差为1的分布。相比于批量归一化,层归一化在训练样本较小、样本间相互影响较大的情况下更稳定。例如,在NLP任务中,对于每个样本的词向量进行层归一化。
-
实例归一化(Instance Normalization,IN):与批量归一化类似,但是在实例归一化中,对每个样本的特征维度进行归一化。它通过减去均值,再除以标准差,将每个样本的特征维度转化为均值为0,标准差为1的分布。与批量归一化相比,实例归一化更适用于图像生成等任务中,每个样本的特征维度独立于其他样本的情况。例如,在图像生成任务中,对于每个样本的特征图进行实例归一化。
-
组归一化(Group Normalization,GN):在神经网络的每一层中,将特征分成若干组,对每个组的特征进行归一化处理。组归一化可以看作是批量归一化和层归一化的一种折中方法。它通过减去均值,再除以标准差,将每个组的特征维度转化为均值为0,标准差为1的分布。组归一化适用于样本较小、样本间相互影响较大,但又不需要对整个mini-batch进行归一化的情况。例如,在图像分割任务中,对于每个卷积层输出的特征图进行组归一化。每个特征图对应一个通道,而组归一化是将特征图按照通道分成若干组,然后对每一组进行独立的归一化操作。
以上是对深度学习中常用归一化方法的通俗易懂解释及示例。归一化的数据维度取决于具体的应用场景,例如图像分类任务中,数据维度可以是图像的像素值;NLP任务中,数据维度可以是词频向量或词嵌入向量。
标签:样本,均值,学习,标准差,深度,维度,Normalization,归一化 From: https://blog.csdn.net/LIN2020LOVEDA/article/details/140861292