BP基础理论
模型结构与训练
数据归一化
作者 : 老饼 日期 : 2022-06-09 05:03:21 更新 : 2022-06-29 01:23:35
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com



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

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

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



  01、归一化与反归一化  


BP神经网络的归一化一般是指按公式将数据归一化到[-1,1]之间,

反归一化则是把归一化后的数据映射回原始数据。

在训练阶段和应用阶段都涉及到数据归一化的相关处理。


     训练阶段的归一化处理   


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



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



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


由于网络是使用归一化数据进行训练的,所以训练好的网络也是面向归一化数据的。
因此,我们在网络应用时,输入输出要做对应的归一化和反归一化处理:
(1)  将网络输入归一化          
(2)  将网络输出反归一化      

其中,输入的归一化与训练阶段的归一化操作保持一致输出的反归一则是归一化的逆操作
输出的反归一函数如下:
        
 
PASS:​反归一化即归一化时的反函数。




  02. 例子实讲  


     训练阶段的归一化处理   


设我们原始数据如下:

 由x1的最大值为8,最小值为-2,可求得  x1归一化后的值如下:

● 同样处理  x2和 y,得到归一化后的整体数据如下:  




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



假设,我们要预测 x1 = 2,   x2 = 3, 操作如下:


(1) 网络输入的归一化


网络输入的归一化要与训练阶段保持一致。
在做归一化时候我们知道 : x1 的最大值为8,最小值为 -2,x2的最大值为6,最小值为1,
那么x1,x2归一化后的值为:



      

即预测时输入网络的值为:   sim(net,[-0.2,-0.2])


(2) 网络输出的反归一化


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

 

即最终网络的输出为2.5


03. 其它标准化方法


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

它们的公式如下:


min-max


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



z-score


z-score的公式:

解释:将数据处理成均值为1,标准差为1。


我们最常用的,还是规范化到【-1,1】的方式,这与我们使用tansig传递函数是相对应的,

tansig的非线性区间主要在【-1.7,1.7】之间,而将数据规范化到【-1,1】对于我们研究和讨论会更加便捷。








 End 









联系小饼