为什么要进行归一化或标准化?

假设有两个特征x1和x2,x1取值范围是[0,1],x2是[500, 10000],那么如果不归一化,那么最终的预测值J显然受x2影响较大,x2的一点改变,都会导致J有较大改变,而x1对J的影响就很小。在反向传播的时候,因为每次更新的学习率对每个特征是一样的,假设只有一层一个神经元的网络,那么J=w1x1+w2x2,w2的梯度就是x2,每次波动都会比较大,这可能会导致整个优化的方向波动比较大,并且最终不一定能收敛到最优的点。

参考

bu归一化后的区间是[0,1],但是容易受极值影响,把某些值都压缩到一个区间去了,标准化区间不固定,不改变原数据分布,不太受极值影响。

设(0,0)处有一个负例,(1,1)和(2,0.5)处各有一个正例。容易验证,取(0,0)和(1,1)为支持向量时,margin最大。
现在把水平方向缩小至原来的1/10,两个正例变成了(0.1,1)和(0.2,0.5)。容易验证,现在要让margin最大,支持向量就得取(0,0)和(0.2,0.5)了。
针对逆指标一致化处理的方法主要有两种:

指标一致化

1、倒数一致化,即对原始数据取倒数,X’ = 1 / x(x>0)

2、减法一致化,即利用该指标允许范围内的一个上界值(M),依次减去每一个原始数据,X’ = M - x

  • Z-score标准化
  • 极差标准化

    线性比例标准化

    1、极大化法
    对于正指标,取该指标的最大值Xmax,然后用该变量的每一个观察值除以最大值,即:X’ =X / Xmax。(X≥0)
    2、极小化法
    对于逆指标,取该指标的最小值Xmin,然后用该变量的最小值除以每一个观察值,即:X’ = Xmin / X。(X>0)
    注意,以上两种方法不适用于X<0的情况。对于逆向指标使用线性比例法进行标准化后,实际上是进行了非线性的变换,变换后的指标无法客观地反映原始指标的相互关系,转换时需要注意。

四、log函数标准化法
首先对该变量的每一个观察值取以10为底的log值,然后再除以该指标最大值(Xmax)的log值,即:
X’ = log10X / log10 Xmax
注意,此方法要求X≥1。
五、反正切函数标准化法
通过三角函数中的反正切函数(arctan)也可以实现数据的标准化转换,计算方法如下:
X’ = arctan(X)*2 / π
注意,如果原始数据为正、负实数,则标准化后的数据区间为-1≤X’≤1,若要得到0≤X’≤1区间,则原始数据应该保证X≥0。

作者:医小咖
链接:https://zhuanlan.zhihu.com/p/32267535
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

引用