【一】为什么要进行数据为归一化?
- 输入数据的单位不一样,有些数据的范围差别很大,导致神经网络收敛慢,训练时间长。
- 数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用偏小。
- 由于神经网络输出层的激活函数的值域是有限的,因此需要将网络的目标函数映射到激活函数的值域。
【二】归一化算法
算法 | 范围 |
---|---|
y=(x-min)/(max-min) | [0,1] |
y=2*(x-min)/(max-min)-1 | [-1,1] |
【三】mapminmax函数
1.简介:mapminmax是MATLAB实现归一化的工具包,默认:
- 将矩阵的每行分别进行归一化;
- 每行的最大值和最小值作为每行归一化的xmin和xmax;
- 将数据归一化到[-1,1];
2.几个函数接口:
1>[Y,PS]=mapminmax(X)
其中y是对进行某种规范化后得到的数据,这种规范化的映射记录在结构体ps中。
示例:
2>[Y,PS] = mapminmax(X,FP)
3>Y = mapminmax('apply',X,PS)
4>X = mapminmax('reverse',Y,PS)
反归一化,将归一化后的数据进行反归一化后得到原来的数据。