BP神经网络的建模
建模理论与实现
【附件】BP神经网络的数据归一化
作者 : 老饼 日期 : 2022-06-09 05:03:21 更新 : 2022-11-01 03:02:11
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com



由于梯度下降等算法,在数据归一化下更有利于求解。

因此,我们在用梯度下降等算法训练BP神经网络之前,一般会将数据进行归一化。

本文讲解BP神经网络的数据归一化和反归一化。



  01. BP神经网络的归一化与反归一化  


本节先了解什么是归一化,并讲解归一化的公式


    BP神经网络归一化简介    


BP神经网络的归一化一般是指按公式将数据归一化到[-1,1]之间,
反归一化则是把归一化后的数据映射回原始数据,
在训练阶段和应用阶段都涉及到数据归一化的相关处理 



     训练阶段的归一化处理   


训练阶段需要在训练前把所有数据归一化后再进行训练。
其中,归一化公式如下:



是原始数据,是归一化后的数据。
PASS:所有变量都要归一化,包括 y



    应用阶段的归一化与反归一化    


由于BP神经网络是使用归一化数据进行训练的,所以训练好的网络也是面向归一化数据的。
因此,我们在网络应用时
  输入输出要做对应的归一化和反归一化处理,
如下:
  👉 1. 将网络输入归一化          
   👉 2. 将网络输出反归一化        
需要注意的是,
  输入的归一化与训练阶段的归一化操作保持一致
 
输出的反归一则是归一化的逆操作
输出的反归一函数如下

        
 
PASS:​反归一化即归一化时的反函数





  02. 归一化操作实例  


下面通过具体的例子,讲述BP神经网络归一化和反归一化的具体操作


     BP神经网络训练阶段的归一化处理   


设我们原始数据如下:
 
由x1的最大值为8,最小值为-2,可求得  x1归一化后的值如下:
 
● 同样处理  x2和 y,得到归一化后的整体数据如下:  
  




    BP神经网络应用阶段的归一化与反归一化    


假设,我们要预测 x1 = 2,   x2 = 3, 操作如下:
BP神经网络输入的归一化
BP神经网络输入的归一化要与训练阶段保持一致。

在做归一化时候我们知道 : 
  的最大值为 8,最小值为 -2,
 的最大值为 6,最小值为1, 
那么归一化后的值为:



      

即预测时输入网络的值为:   sim(net,[-0.2,-0.2])
BP神经网络输出的反归一化
 
假设上面的网络输出是0.5,
但这个0.5指的是归一化后的y的预测值,
要获得真实的预测值,我们需要将结果反归一化。
我们在归一化时,知道: y的最大值为5,最小值为-5,则反归一后的 y:
 
  

  即最终网络的输出为2.5





   03. 其它标准化方法   


下面我们介绍一些其它的标准化方法,但实际中,我们最常用的还是上面介绍的方法



   其它标准化方法   


其它常见的数据标准化方法还有min-max(最小-最大规范化),z-score(零-均值规范化)。
它们的公式如下:

 min-max的公式:
    
解释:将数据规范到【0,1】
z-score的公式

解释:将数据处理成均值为1,标准差为1。
✍️备注
我们最常用的,还是规范化到【-1,1】的方式,这与我们使用tansig传递函数是相对应的,
tansig的非线性区间主要在【-1.7,1.7】之间,而将数据规范化到【-1,1】对于我们研究和讨论会更加便捷。










 End 









联系老饼