自学内容网 自学内容网

模型优化—输入特征归一化处理

一、normalization

归一化(规范化)是对输入数据进行处理,使其满足某种规范。

前提:线性变换,不会改变原始数据的数值顺序。

假设原值分布在第一象限的某区间,并且x轴间距较广(离散),y轴距离较窄(集中)。

在这里插入图片描述

二、零均值

第一步使数据集的平均值成为0,方法为:使每个样本减去当前的平均值。采用以下两个公式进行:

  • u = 1/m * sum[ X(i) ],i = 1…m(求出当前平均值)
  • X= X - u

处理值将分布在以原点为中心的区间。

在这里插入图片描述

原理说明:求出矩阵所有元素的平均值,每个元素都减去平均值,从而使得矩阵整体减去了[平均值 * 元素个数],相当于矩阵整体减去了所有元素的累加和,从而使得平均值为0。

三、一方差

第二步使数据集方差变成1,方差衡量离散程度,方差大,说明离散程度大。通过以下方法处理(注意,X为零均值后的X):

a = 1/m * sum[ X(i) ^ 2 ],i= 1…m

X = X / a

处理值会收窄x轴的间距,加长y轴的间距,减小离散与适当扩大原集中,使其整体离散小。

在这里插入图片描述

原理说明:

Var(X) = 1/m * sum [ ( X(i) - X‘)^2 ],i=1…m,X’为X元素的平均值

Var(X) = 1/m * sum [ X(i)^2 ],i=1…m,因X’为0(零均值化后)

故a为X的方差值。

Var(X/a) = 1/m * sum [ ( X(i)/a ) ^2 ],同理X/a均值也为0。

Var(X/a) = 1/m * sum [ X(i)^2 ] * 1/a^2

Var(X/a) = 1/m * sum [ X(i)^2 ] * 1/( 1/m * sum[ X(i) ^ 2 ] )^2

分子分母都有 1/m * sum [ X(i)^2 ],则约分后为 1/( 1/m * sum [ X(i)^2 ] ) = 1/a

由于a为X的方差值,X/a的方差值为1/a,相当于同比缩放a倍,故X/a的方差值为1(X的方差值除以X的方差值)。

三、注意事项

对训练集的输入特征进行了规范化,对测试集以及实际应用也需要进行规范化。并且a/u为训练集计算出的。 (测试集不要再去计算a、u,因为数据量小,计算出来的不够泛化)

四、归一化的原因

把输入特征强行映射到均值0,方差1的标准正太分布,可以使得输入值落在激活函数对输入比较敏感的区域。(激活函数在0附近梯度比较大)因为X的离散程度大了,会导致成本函数离散也大,从而找最小值比较繁琐。故归一化可以使得梯度下降更快,从而提升学习速度。

由于不知道输入特征的离散程度,故一般都对输入特征做归一化处理。


原文地址:https://blog.csdn.net/qq_35890572/article/details/140697521

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!