原文来自 老饼玩转-BP神经网络
https://www.bbbdata.com/nn
目录
本文讲解一个BP神经网络的完整建模流程,具体例子见《一个BP的完整代码实现》。
一、建模步骤
一般来说建模会有6个必要步骤

(1) 数据预处理:数据归一化
(2) 预留检验数据:一般随机选用20%数据留作模型检验,80%数据用于训练( 求解w,b)。
(3) 网络结构设置:设置网络隐层层数(一般都是一个隐层),和隐层神经元个数。
(4) 网络训练(求解w,b):用训练数据对网络进行训练
(5) 模型训练效果评估: 检验模型对训练数据的预测效果
(6) 模型预测效果评估: 检验模型对检验数据(未参与训练的数据)的预测效果
二、模型应用
如果要投入生产使用,则我们需要将模型提取出来。
模型提取有两种方式:
(一)提取matlab模型程序对象方式
可以提取出训练好的模型程序对象,但由于建模时训练出来的是对应于归一化后的数据的模型,使用时需要将数据先归一化,再投到模型中预测,最后再后预测结果反归一化。
(二) 提取模型的数学表达式
如果是提取表达式,可以将模型的表达式提取后,将模型表达式进行反归一化,模型使用时直接用反归一化后的表达即可。
即得到类似如下形式的公式,直接代入X即可得到y的预测值:
PASS:建议直接提出模型的数学表达式。
三、老饼小故事:
老饼当年刚参加工作时,不知道如何提取出模型的表达式,只能以matlab的模型程序对象形式输出模型。
由于模型是matlab,而生产上的系统是java,需要系统用java与matlab进行混合编程的方式调用matlab的对象,而生产环境是linux,为了支持matlab环境,需要再布署一个matlab installer,非常折腾。
所以,后来老饼踏踏实实研究了一遍,怎么将表达式提取出来,并如何做反归一,这样,一步到位,干爽的感觉油然而生。
相关文章
本文详细介绍了BP神经网络的建模流程,包括数据预处理、模型训练、效果评估等步骤,并讨论了模型在实际应用中的两种提取方式:模型程序对象和数学表达式。作者分享了自己通过提取数学表达式避免复杂系统集成的经验,强调了模型提取的重要性。

1814

被折叠的 条评论
为什么被折叠?



