数据预处理,一般有数据归一化、标准化和去中心化。
将数据映射到[0,1]或[-1,1]区间范围内,不同特征的量纲不同,值范围大小不同,存在奇异值,对训练有影响。
将数据映射到满足标准正态分布的范围内,使数据满足均值为0,标准差为1。标准化同样可以消除不同特征的量纲。
使数据满足均值为0,但对标准差没有要求。
1.若对数据的范围没有限定要求,则选择标准化进行数据预处理
2.若要求数据在某个范围内取值,则采用归一化。
3若数据不存在极端的极大极小值时,采用归一化。
4.若数据存在较多的异常值和噪音,采用标准化。
归一化/标准化可以使模型学习更快,少走弯路
在梯度下降过程中,不同特征值差异较大,则损失函数的等高线是个椭圆,因此梯度方向是拐来拐去,进行归一化/标准化后,等高线就变成近似圆,梯度方向比较平缓,少走弯路。
避免数值问题
输入值过大时,容易出现数值问题,如2344×0.0002 与0.2344×2在计算机中算出来是不相等,而实际应该是相等的。
神经网络的需要
参考:https://www.jianshu.com/p/95a8f035c86c