BP神经网络

【详述】BP神经网络的数据归一化

作者 : 老饼 发表日期 : 2023-03-08 09:36:43 更新日期 : 2024-04-15 05:37:43
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



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

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

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



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



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



    BP神经网络归一化简介    


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



     训练阶段的归一化处理   


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



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



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


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





  02. BP神经网络归一化操作实例  


本节通过一个具体的计算例子讲解BP神经网络数据归一化的操作



     训练阶段的归一化处理   


下面通过具体的例子,讲述归一化和反归一化的具体操作
设我们原始数据如下:

 
BP神经网络数据归一化例子数据1
由x1的最大值为8,最小值为-2,可求得  x1归一化后的值如下:
 BP神经网络数据归一化例子数据2
同样处理  x2和 y,得到归一化后的整体数据如下:  
  
BP神经网络数据归一化例子数据3




    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





   03. 其它标准化方法   



下面我们介绍一些其它的标准化方法,

但实际中,我们最常用的还是上面介绍的方法



   其它标准化方法   


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

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

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




以上就是BP神经网络的数据归一化的全部内容了~







 End 




联系老饼