一个BP神经网络的完整建模流程

原文来自 老饼玩转-BP神经网络http://bp.bbbdata.com/teach#99


目录

一、建模步骤

二、模型应用

(一)提取matlab模型程序对象方式

(二) 提取模型的数学表达式

三、老饼小故事:


本文讲解一个BP神经网络的完整建模流程,具体例子见《一个BP的完整代码实现》。

一、建模步骤

一般来说建模会有6个必要步骤

一个BP神经网络的完整建模流程_第1张图片

(1) 数据预处理:数据归一化
(2) 预留检验数据:一般随机选用20%数据留作模型检验,80%数据用于训练( 求解w,b)。
(3) 网络结构设置:设置网络隐层层数(一般都是一个隐层),和隐层神经元个数。
(4) 网络训练(求解w,b):用训练数据对网络进行训练
(5) 模型训练效果评估: 检验模型对训练数据的预测效果
(6) 模型预测效果评估: 检验模型对检验数据(未参与训练的数据)的预测效果



二、模型应用

如果要投入生产使用,则我们需要将模型提取出来。

模型提取有两种方式:

(一)提取matlab模型程序对象方式

可以提取出训练好的模型程序对象,但由于建模时训练出来的是对应于归一化后的数据的模型,使用时需要将数据先归一化,再投到模型中预测,最后再后预测结果反归一化。

(二) 提取模型的数学表达式

如果是提取表达式,可以将模型的表达式提取后,将模型表达式进行反归一化,模型使用时直接用反归一化后的表达即可。
即得到类似如下形式的公式,直接代入X即可得到y的预测值:

一个BP神经网络的完整建模流程_第2张图片


PASS:建议直接提出模型的数学表达式。


三、老饼小故事:

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


 相关文章

 《BP神经网络梯度推导》

​​​​​​《BP神经网络提取的数学表达式》

你可能感兴趣的:(神经网络初级学习,matlab,开发语言)