normalization(为什么要做 batch normalization)

本文目录
- 为什么要做 batch normalization
- 傻傻分不清的:归一化(normalization)和标准化(standardization)
- 特征工程之特征标准化(Normalization)
- normalization是什么意思
- batch normalization的原理和作用
- normalisation和normalization的区别
- 计算时Normalization的意义何在
- 转录组数据标准化--Normalization
- 机器学习的normalization方法有哪些
为什么要做 batch normalization
在机器学习中,我们需要对输入的数据做预处理,
可以用 normalization 归一化 ,或者 standardization 标准化,
用来将数据的不同 feature 转换到同一范围内,
normalization 归一化 :将数据转换到 之间,
standardization 标准化:转换后的数据符合标准正态分布
因为如果不做这样的处理,不同的特征具有不同数量级的数据,它们对线性组合后的结果的影响所占比重就很不相同,数量级大的特征显然影响更大。
进一步体现在损失函数上,影响也更大,可以看一下,feature scaling 之前,损失函数的切面图是椭圆的,之后就变成圆,无论优化算法在何处开始,都更容易收敛到最优解,避免了很多弯路。
尤其是在神经网络中,特征经过线性组合后,还要经过激活函数,
如果某个特征数量级过大,在经过激活函数时,就会提前进入它的饱和区间,
即不管如何增大这个数值,它的激活函数值都在 1 附近,不会有太大变化,
这样激活函数就对这个特征不敏感。
在神经网络用 **D 等算法进行优化时,不同量纲的数据会使网络失衡,很不稳定。
在神经网络中,这个问题不仅发生在输入层,也发生在隐藏层,
因为前一层的输出值,对后面一层来说,就是它的输入,而且也要经过激活函数,
就是在前一层的线性输出 z 上做 normalization:需要求出这一 batch 数据的平均值和标准差,
然后再经过激活函数,进入到下一层。
学习资料:
傻傻分不清的:归一化(normalization)和标准化(standardization)
归一化(normalization) 和 标准化(standardization)
归一化是利用特征(可理解为某个数据集合)的最大值,最小值,将特征的值缩放到区间,对于每一列的特征使用min - max函数进行缩放。
消除纲量,加快收敛:
不同特征往往具有不同的量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化处理,以解决数据指标之间的可比性。原始数据经过数据归一化处理后,各指标处于之间的小数,适合进行综合对比评价。
提高精度。
1)、线性归一化:
利用数据集每个特征的最大值,最小值,将特征的值缩放到区间:
公式:新数据=(原数据-极小值)/(极大值-极小值)
2)、非线性归一化:
经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如是log(V,2)还是log(V, 10)等。 (这部分还需要理解)
标准化是 通过特征的平均值和标准差,将特征缩放成一个标准的正态分布,缩放后均值为0,方差为1 。但即使数据不服从正态分布,也可以用此法。特别适用于数据的最大值和最小值未知,或存在孤立点。
1)、标准化是为了方便数据的下一步处理,而进行的数据缩放等变换,不同于归一化, 并不是为了方便与其他数据一同处理或比较 。
2)、标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。
Z-score (标准化):
公式:新数据=(原数据-均值)/(标准差)
(z-score标准化方法适用于属性A的最大值和最小值未知的情况)
为了消除样本自身或者测样的技术差异,使样本间可以比较, 可以理解为组间数据的处理 。例如
1)、转录组不同样本如果测序深度不同,就会导致基因的read数不同,不做归一化就会影响结果
2)、代谢组不同样本,例如尿液样本可能浓度不同就会影响结果
标准化是为了使不同变量之间可以比较,消除极大值和极小值带来的影响, 可以理解为组内数据的处理 ,例如
1)、转录组中有些基因本身表达量就大,有些表达量小,不做标准化的话,直接做PCA之类的模型,会默认表达量大的对模型贡献就大,影响正确结果
2)、代谢组中有些代谢物含量天然高,有些天然低,同理
转录组数据分析:
转录组分析流程中标准化和归一化被统一叫成了标准化,或者有些资料里称为组内标准化和组间标准化。
转录组的标准化有多种方法,但是很多是兼顾了组内和组间两方面
寻找差异基因的时候,只涉及单个变量组间对比,不涉及样本内不同变量的比较,因此不需要做组内标准化,这也是为什么DESeq2等软件要求用原始counts数据的原因,这些软件设计了只针对组间的标准化。而目前常见的标准化方法则包含了组内标准化
做PCA的时候,需要衡量一个样本内不同变量的权重,因此需要做组内标准化。R自带的scale可以进行组内标准化,但是用原始counts数据做PCA可能还需要组间标准化,因此可以考虑用DESeq2标准化之后的数据
特征工程之特征标准化(Normalization)
特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为算法和模型的输入。从本质上来说,特征工程是一个数据表示和展现的过程。在实际的工作中,特征工程旨在剔除原始数据中的冗余和杂质,进而提炼出更具表征力的特征。
特征标准化(Normalization)是为了消除特征之间的量纲影响,使得不同的指标之间具有可比性。最典型的标准化就是特征的归一化处理,即将特征统一映射到区间上。下面介绍几种常见的标准化方法:
线性函数归一化是对原始特征进行线性变换,并将结果映射到的范围上,从而实现对原始特征的等比例缩放。公式如下:
其中 X 为特征原始值, X min 和 X max 分别为特征的最大值和最小值。该方法有一个不足,就是当有新数据引入时, X min 和 X max 可能会变化,此时所有特征值需要重新定义。
零均值标准化是一种基于原始特征的均值(mean)和标准差(standard deviation)进行标准化的方法,它会将特征映射到均值为0,偏差为1的分布上。具体来说,假设特征的均值为 ,标准差为 ,那么归一化的公式定义为:
在使用梯度下降的方法求解最优化问题时,标准化/归一化可以加快梯度下降的求解速度,提升模型的收敛速度。
normalization是什么意思
normalization
n.正常化; 标准化; 正态化;
复数:normalizati***
例句:
1.
It has become clear that liquidity normalization is not a substitute for interestrate normalization.
日渐清晰的是,流动性正常化和利率正常化是两回事。
2.
While in the process of realizing normalization of relati*** between chinaand japan, some japanese played a vital role.
在中日关系实现正常化的过程中,一些日本人士起到了至关重要的作用。
batch normalization的原理和作用
“batch normalization”指的是对数据进行归一化。关于他的原理和作用如下:
“batch normalization”的原理:
Google于2015年提出了Batch Normalization算法(BN)。BN通过对隐藏层线性组合输出z=Wx进行正态标准化z’=normalization(z),再对标准化的输出z’进行尺度放缩和平移变换,使隐藏层的输出分布一致(注意:针对z=Wx进行标准化,而不是通过激活函数a=f(z)进行标准化)。
具体的batch normalization操作
“batch normalization”的作用:
由于批次(batch)的不断传入和训练,DNN内部参数在不断改变,导致每一次隐藏层的输入分布不一致,这不符合机器学习中的IID假设(独立同分布假定)。也就是在训练过程中,隐层的输入分布老是变来变去,这就产生了内部协变量偏移问题(Internal Covariate Shift).
batch normalization的出现就是会了解决这一问题。
带有Batch Normalization处理的隐藏层
normalisation和normalization的区别
normalisation
英
n. 正常化;标准化;正态化;
normalization
英
n. 正常化; 标准化; 正态化;
These are only the beginning steps for an across-the-board normalization of at least economic relati*** with the mainland.
这只是与大陆全面关系-至少是经济关系正常化的第一步。
复数:normalizati***
计算时Normalization的意义何在
什么是好的normalization要看目的。所以没办法一概而论。尽量要一概而论的话,就是当你只关注曲线的形状差别的时候,你可能需要做normalization。至于怎么做,是对横坐标还是对纵坐标还是both,就真得看具体你要比较的是什么形状了。我只举我熟的一些例子,也没有代表性。最常见的是例如增长到不同的平台值,那就对平台值做normalization,比较谁增长得快这种。我就不详述了。有很多理论模型只预测无量纲化的标度关系。把散乱的数据按这种关系作图后可以显示出简单的dependency,以验证理论模型的预测,或者看到哪些条件的实验结果偏离理论预测,很快就能反映出理论的适用范围。
转录组数据标准化--Normalization
转录组数据经过比对到参考基因组获得对应基因count值后,因为测序深度以及基因长度的关系,在进行差异分析之前,还需要进行标准化。标准化是转录组数据差异分析必不可少的一步。
用于转录组差异分析的目前主要是两个软件:Deseq2 和 edgeR;针对这两款软件,学习一下目前的应用的标准化方法。
通过针对每个样本获得对应的大小因子Cj来使不同样本的计数具有可比性,即使这些样本的排序深度不同。
首先先确定几个后续会使用的变量
具体计算函数如下:
cpm(..., normalized.lib.sizes = TRUE) {edgeR}
原理:将库的大小作为标准化的一种形式是有直观意义的,因为将一个样本测序到一半的深度,平均会得到映射到每个基因的读取数的一半。
计算方法:
calcNormFactors(..…,method="upperquartile",p=0.75) {edgeR}
原理:与规范微阵列数据的标准技术类似,本方法是根据分位数等参数匹配基因计数的样本间分布。例如,可以简单地按样本的中位数对其计数进行缩放。由于零和低计数基因的优势,中位数对不同水平的测序工作没有提供信息。相反,建议使用每个样本的上四分位数(75-第百分位数)。
计算方法: 1. 计算样本上分位数(75%)然后按库大小缩放读取计数
2. 重新计算总的reads count的上分位数
3. 计算Cj因子
calcNormFactors(..…, method ="RLE") {edgeR}
estimateSizeFactors(...) {DESeq, DESeq2}
calcNormFactors(..,method="TMM") {edgeR}
机器学习的normalization方法有哪些
最典型的就是0-1标准化和Z标准化,也是最常用的。1、0-1标准化(0-1normalization)也叫离差标准化,是对原始数据的线性变换,使结果落到区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个**就是当有新数据加入时,可能导致max和min的变化,需要重新定义。2、Z-score标准化(zero-meannormalization)也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,也是SPSS中最为常用的标准化方法,其转化函数为:其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

更多文章:
mean的过去式和过去分词(mean的过去式可以是meaned吗)
2026年5月19日 08:30



























