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