老饼讲解-神经网络 机器学习 神经网络 深度学习
BP神经网络建模
1.BP神经网络-工具箱说明
2.BP神经网络-建模代码
3.BP神经网络-训练技巧
4.BP神经网络-应用案例
5.BP神经网络-问题答疑

【概述】BP神经网络建模概述

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



本文简单讲述BP神经网络建模的相关内容,是具体建模的知识铺垫和初识



   01. BP神经网络模型构建与流程   



本节先介绍BP神经网络建模的两种流程



    两种BP神经网络建模的流程   


借助matlab神经网络工具箱构建BP神经网络模型有两种流程,

 标准流程
  
 
简捷流程 
 
标准流程需要自行做数据归一化、数据分割等预处理,matlab工具箱只是充当训练权重阈值的工具,最后再自行评估建模效果
简捷流程则将归一化、数据划分等工作都交给工具箱 ,并且利用工具箱返回的预测结果来评估建模效果                                   



    两种流程的比较    


简捷流程由于matlab高度封装,好处是使用起来较便捷,
特别是省去了归一化、数据分割,基本能少60%的代码
高度封装同时的坏处在于细节自主性更低,
例如我们要自行定义哪些数据用于预测,
那么使用工具箱就不方便了
在实际中,我们追求优质建模效果时,往往仍然需要使用标准流程,
即自己归一化数据、分割数据,只利用matlab的工具箱来训练神经网络。
所以,两种建模流程都是需要的,看我们是否需要自主设置一些细节。





   02. 模型的使用   



本节介绍在训练好模型后,如何使用模型进行预测新数据



   数据没自行归一化   


如果数据没做归一化,直接丢给工具箱建模,
那么模型使用时,只需要使用sim函数就可以了,如下
sim_y = sim(net,X);



    数据自行归一化   


如果数据已经自行做过归一化,再丢给工具箱建模,
那么工具箱训练出的模型是针对归一化数据的,
在模型使用时,必须遵守:  
 
 
PASS:归一化使用的参数(xmin,xmax,ymin,ymax)需要与训练模型时的参数保持一致





   03. 关于模型的外部使用   



如果要投入生产使用,则我们需要将模型提取出来。
模型提取有两种方式:提取模型程序对象和提取模型表达式



     提取模型程序对象     


提取matlab模型程序对象方式是指先提取出训练好的模型程序对象,
然后在外部使用时再用混合编程调用模型程序对象
使用时与在matlab内部使用时一致,
如果没做过归一化,直接调用sim就可以,
如果自行做过数据归一化,就需要在前后分别做归一化和反归一化



    提取模型数学表达式     


提取模型的数学表达式是指提取出类似如下的模型数学表达式:

通过直接计算模型的表达式来获得模型的预测结果
需要注意的是,
不管有没有自行做过归一化,提取的表达式是针对归一化数据的
在使用表达式时必须在前后分别做归一化和反归一化,
也可以进一步将模型表达式进行反归一化,
使用时直接用反归一化后的模型表达即可,而无需再归一反归一



   老饼小故事    


老饼当年刚参加工作时,不知道如何提取出模型的表达式,只能以matlab的模型程序对象形式输出模型。
由于模型是matlab,而生产上的系统是java,需要系统用java与matlab进行混合编程的方式调用matlab的对象,
而生产环境是linux,为了支持matlab环境,需要再布署一个matlab installer,非常折腾。
所以,后来老饼踏踏实实研究了一遍,怎么将表达式提取出来,并如何做反归一,这样,一步到位,干爽的感觉油然而生。







 End 








联系老饼