本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
BP神经网络一般会在训练阶段将数据归一化,相应地在应用阶段对输出进行反归一化
本文讲解BP神经网络中的归一化和反归一化方法的计算公式,以及展示对数据归一化的具体例子
通过本文,可以了解BP神经网络中归一化和反归一化分别是什么,以及常用的归一化方法
本节先了解什么是归一化,并讲解归一化的公式
BP神经网络归一化是什么
BP神经网络归一化一般是指按公式将数据归一化到[-1,1]之间,如下所示
而反归一化则是把归一化后的数据,重新映射回原始数据,它是归一化的逆操作
在训练阶段和应用阶段都涉及到数据归一化的相关处理
训练阶段的归一化处理
在BP神经网络的训练阶段,需要在训练前把所有数据归一化后再进行训练
归一化公式如下:
其中,是原始数据,是归一化后的数据
所有X变量都要进行归一化,y也一样,即输入输出变量都要进行归一化
应用阶段的归一化与反归一化
由于BP神经网络是用归一化数据进行训练的,所以训练好的模型也是面向归一化数据的
因此,我们在使用BP神经网络时,输入输出要做对应的归一化和反归一化处理
具体如下:
1. 将BP神经网络的输入归一化
2. 将BP神经网络的输出反归一化
其中,输入的归一化与训练阶段的归一化操作保持一致,输出的反归一则是归一化的逆操作
输出的反归一函数如下:
PASS:反归一化即归一化时的反函数
本节通过一个具体的计算例子讲解BP神经网络数据归一化的操作
训练阶段的归一化处理
下面通过具体的例子,讲述归一化和反归一化的具体操作
训练阶段的归一化处理
设我们原始训练数据如下:
由的最大值为8,最小值为-2,可求得归一化后的值如下:
以同样的方法处理和,可得到归一化后的整体数据如下:
预测阶段的归一化与反归一化
假设,我们要预测的输入为,
一、在预测前对输入进行归一化
由于的最大值为 8,最小值为 -2,的最大值为 6,最小值为1
那么归一化后的值为:
即预测时输入网络的值为: sim(net,[-0.2,-0.2])
二、将预测值(输出)进行反归一化
假设上面BP神经网络的预测值是0.5
由于这个0.5是归一化后的的预测值,要获得真实预测值,需要将它反归一化
在归一化时,的最大值为5,最小值为-5,则反归一后的 为:
即最终网络的输出为2.5
本节介绍一些其它的标准化方法
其它标准化方法
下面我们介绍一些其它标准化方法,但实际中,我们最常用的还是上面介绍的方法
其它常见的数据标准化方法还有min-max(最小-最大值归一化),z-score(零-均值标准化)
一、 min-max归一化
min-max归一化公式如下:
解释:min-max归一化将数据规范到【0,1】之间
二、z-score零-均值标准化
z-score标准化公式如下:
解释:z-score标准化将数据处理为均值为1,标准差
我们最常用的,还是归一化到【-1,1】的方式,这与我们使用tansig传递函数是相对应的
tansig的非线性区间主要在【-1.7,1.7】之间,而将数据规范化到【-1,1】对于我们研究和讨论会更加便捷
以上就是BP神经网络的数据归一化的全部内容了~
End