神经网络-专题教程

【意义】BP神经网络归一化与数据分割的意义

作者 : 老饼 发表日期 : 2022-06-09 05:05:56 更新日期 : 2024-11-12 20:09:11
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



本文简单讲解BP神经网络归一化与数据分割的意义

通过本文理解为什么BP神经网络在建模前为什么需要归一化与数据分割



      01. BP神经网络归一化的意义     




本节讲解BP神经网络为什么要做归一化及其意义




      为什么要将数据归一化   


为什么要将BP神经网络的数据归一化到【-1,1】之间?
将数据归一化的主要原因如下:

 1.归一化能令模型的特性更简单
因为归一化后,能使BP神经网络的特性更加确定、统一、简单
 例如,归一化使每层的输入范围一致为[-1,1],如下:
 
BP神经网络为什么要归一化
易知,隐层的输出(也就是它下一层的输入)为[-1,1],
把输入层的数据归一化后,可以保持所有层的数据输入范围统一
这样可以更方便在初始化阶段就把数据统一映射到tansig的有效区间内
2.BP神经网络的大部分研究成果基于归一化数据
由于这种“简单、确定、统一”能给理论研究省去许多不必要的声明
因此许多研究结果都是基于归一化数据得出的研究结果
这导致在训练过程中一些细节的处理
都是依据“输入输出数据范围为【-1,1】”进行量身定造
 例如,梯度下降法中的学习率,如果在归一化的前提下,设为0.1是合理的,
而如果在数据是【-10000000,1000000】,那学习率设为0.1显然就不合理的

 当然,训练算法中的学习率只是一个例子,
用于说明训练细节依赖于“输入数据范围为【-1,1】”这一条件
总的来说,把数据归一化为【-1,1】,通常能让BP神经网络的训练效果更好





      02. BP神经网络-数据分割的意义     




本节讲解BP神经网络为什么要对数据进行分割




    为什么要将数据分割    


BP神经网络一般将数据分割为三分,训练数据、验证数据和测试数据
 BP神经网络的数据分割
  为什么要分割成三份数据?
主要因为训练出的BP神经网络在实际使用中不一定准确
  为了让模型在实际应用时的效果更好,将数据分割为三份
下面分别说下这三份数据各自的用处
 1.训练数据                                                  
  训练数据用于模型训练,模型的系数就是通过训练数据求得的       
 2.验证数据                                                  
     验证数据主要用于监督模型训练,预防BP神经网络模型走向过拟合 
       验证数据并不参与模型的求解,只是在求解过程中不断检验模型效果
                              在模型过拟合时,由于验证数据从未参与训练,所以验证数据的预测效果就会非常差 
     如此一来,如果出现训练数据误差越来越小,而验证数据误差越来越大
则说明模型已经开始走向过拟合,此时就该停止训练          

 3.测试数据                                                 
测试数据用于模型效果评估                                                      
                   由于测试数据完全不参与训练,它的预测效果相对会更接近实际使用的效果  




    BP神经网络训练数据、验证数据、测试数据总结    


 ✍️总的来说,训练数据、验证数据、测试数据的区别如下
 
👉1. 训练数据:训练数据是模型用于训练的数据,用于BP神经网络参数的求解       
 👉2. 验证数据:验证数据是在训练过程不断检验模型,防止模型走向过拟合          
  验证数据参与训练,但不参与模型的求解           
 👉3. 测试数据:测试数据是模型训练完后使用的数据,用于测试模型的效果          
 测试数据完全不参与模型的任何训练过程          





好了,上述就是BP神经网络归一化与数据分割的意义的全部内容了~






 End 




联系老饼