博客
关于我
深度学习_深度学习基础知识_数据归一化
阅读量:543 次
发布时间:2019-03-08

本文共 1470 字,大约阅读时间需要 4 分钟。

归一化的主要公式

1.将数据归一到[0,1]:

x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^{\prime} =\frac{x - min(x)}{max(x)-min(x)} x=max(x)min(x)xmin(x)

其中 m a x ( x ) max(x) max(x) m i n ( x ) min(x) min(x)分别是数据的最大值和最小值。

2.将数据归一化到[-1,1]:

x ′ = x − m e a n ( x ) m a x ( x ) − m i n ( x ) x^{\prime}=\frac{x-mean(x)}{max(x)-min(x)} x=max(x)min(x)xmean(x)

其中 m e a n ( x ) mean(x) mean(x)是数据的均值。

3.将数据归一化到均值为0,标准差为1的标准正态分布上:

x ′ = x − μ σ x^{\prime}= \frac{x-\mu}{\sigma} x=σxμ

其中 μ \mu μ σ \sigma σ分别是数据的均值和标准差。

4.将数据归一化到[a,b]:

计算系数:

k = b − a m a x ( x ) − m i n ( x ) k=\frac{b-a}{max(x)-min(x)} k=max(x)min(x)ba

数据归一化:

x ′ = a + k × ( x − m i n ( x ) ) x^{\prime}=a+k\times(x-min(x)) x=a+k×(xmin(x))

或者

x ′ = b + k × ( x − m a x ( x ) ) x^{\prime}=b+k\times(x-max(x)) x=b+k×(xmax(x))

归一化的作用

  1. 消除数据之间的量纲的影响,是数据的分布一致。(尤其是神经网络一直在算概率)
  2. 使数据集的更新速度变得更为一致,容易更快地通过梯度下降找到最优解(加速收敛速度)。如下图所示。
  3. 消除异常样本的影响,异常样本会增加网络学习难度,可能导致训练不收敛。
  4. 保证输出特征中数值小的特征也可以被充分学习。
  5. 避免梯度消失,比如使用Sigmoid激活函数时,数值小于0和大于1时会导致梯度几乎为0。

在这里插入图片描述

归一化应用场景

需要用到梯度下降法求解的模型通常需要归一化,如线性回归,罗辑回归,支持向量机和神经网络等模型。

但是对于决策树则并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益。

不进行归一化的后果

假设 w 1 w1 w1 的范围在 [ − 10 , 10 ] [-10, 10] [10,10],而 w 2 w2 w2 的范围在 [ − 100 , 100 ] [-100, 100] [100,100],梯度每次都前进 1 单位,那么在 w 1 w1 w1 方向上每次相当于前进了 1 / 20 1/20 1/20,而在 w 2 w2 w2 上只相当于 1 / 200 1/200 1/200!某种意义上来说,在 w 2 w2 w2 上前进的步长更小一些,而 w 1 w1 w1 在搜索过程中会比 w 2 w2 w2 “走”得更快。

​ 这样会导致,在搜索过程中更偏向于 w 1 w1 w1 的方向。走出了“L”形状,或者成为“之”字形。

在这里插入图片描述

转载地址:http://ijbiz.baihongyu.com/

你可能感兴趣的文章
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>
MySQL中group by 与 order by 一起使用排序问题
查看>>
mysql中having的用法
查看>>
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>