深度学习中常用的归一化方法有:最大最小归一化(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):与批量归一化类似,但是在层归一化中,每个样本的特征维度上进行归一化。它通过减去均值,再除以标准差,将每个样本的