BP网络用于催化剂配方建模--MATLAB实例

合集下载

BP人工神经网络及matlab实现

BP人工神经网络及matlab实现
logsig()
功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元
的输入范围从(-∞,+∞)映射到(0, 1)。它是可导函数,适用于BP训 练的神经元。
5-4 一个简单的例子
下表为某药品的销售情况,现构建一个如下的三层BP神经网 络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5, 隐含层的激活函数为tansig;输出层结点数为1个,输出层的激活 函数为logsig,并利用此网络对药品的销售量进行预测,预测方法 采用滚动预测方式,即用前三个月的销售量来预测第四个月的销 售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2、 3、4月的销售量为输入预测第5个月的销售量.如此反复直至满足预 测精度要求为止。
e = e yio who yio who
p
(
yio(k)= who
h
whohoh(k)-bo)
who
=hoh(k)
e
yio
=(12oq=1(do(k)-yoo(k)))2 yio
=-(do(k)-yoo(k))yoo
(k)
=-(do(k)-yoo(k))f(yio(k)) -o(k)
5-2 BP网络的学习算法
情况二的直观表达
当误差对权值的偏导数 小于零时,权值调整量 为正,实际输出少于期 望输出,权值向增大方 向调整,使得实际输出 与期望输出的差减少。
e
who
w
e
h
o
<0,
此时Δwho>0
演示
BP算法 手控
5-3 BP神经网络的重要函数和基本功能
5-3-1 BP神经网络的重要函数
函数名 newff() tansig() logsig() traingd()

bp神经网络及matlab实现

bp神经网络及matlab实现

bp神经网络及matlab实现分类:算法学习2012-06-20 20:56 66399人阅读评论(28) 收藏举报网络matlab算法functionnetworkinput本文主要内容包括: (1) 介绍神经网络基本原理,(2) 实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法。

第0节、引例本文以Fisher的Iris数据集作为神经网络程序的测试数据集。

Iris数据集可以在找到。

这里简要介绍一下Iris数据集:有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。

不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。

我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。

一种解决方法是用已有的数据训练一个神经网络用作分类器。

如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。

第一节、神经网络基本原理1. 人工神经元( Artificial Neuron )模型人工神经元是神经网络的基本元素,其原理可以用下图表示:图1. 人工神经元模型图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。

则神经元i的输出与输入的关系表示为:图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。

若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:若用X表示输入向量,用W表示权重向量,即:X = [ x0 , x1 , x2 , ....... , xn ]则神经元的输出可以表示为向量相乘的形式:若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。

BP神经网络matlab实现和matlab工具箱使用实例

BP神经网络matlab实现和matlab工具箱使用实例
w=rand(hideNums,outputNums); %10*3;同V deltw=zeros(hideNums,outputNums);%10*3 dw=zeros(hideNums,outputNums); %10*3
samplelist=[0.1323,0.323,-0.132;0.321,0.2434,0.456;-0.6546,-0.3242,0.3255]; %3*3;上设输输作3*3(实作3和网网) expectlist=[0.5435,0.422,-0.642;0.1,0.562,0.5675;-0.6464,-0.756,0.11]; %3*3;星也输也作3*3(实作3和网网),如输有的有有学
num1=5; %设隐设稍 num2=10000; %最也迭迭迭稍 a1=0.02; %星也显显 a2=0.05; %学学学
test=randn(1,5)*0.5; %网网网稍5和个个作 in=-1:.1:1; %训训作 expout=[-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 .3072 .3960 .3449 .1816
%p,t作作我我训训输输,pp作作训训虚的我我输输网网,最然的ww作作pp神经训训虚的BP训 训然的输也
function ww=bpnet(p,t,ynum,maxnum,ex,lr,pp) plot(p,t,"+"); title("训训网网"); xlabel("P"); ylabel("t"); [w1,b1,w2,b2]=initff(p,ynum,"tansig",t,"purelin"); %我我我初稍和设设的BP我我 zhen=25; %每迭迭每每迭每稍显显 biglr=1.1; %学学学使学学学(和也用也用用用) litlr=0.7; %学学学使学学学(梯梯然梯经学使) a=0.7 %动网动a也也(△W(t)=lr*X*ん+a*△W(t-1)) tp=[zhen maxnum ex lr biglr litlr a 1.04]; %trainbpx [w1,b1,w2,b2,ep,tr]=trainbpx(w1,b1,"tansig",w2,b2,"purelin",p,t,tp);

基于BP神经网络模型优化Fe1-xO基氨合成催化剂

基于BP神经网络模型优化Fe1-xO基氨合成催化剂

化工进展Chemical Industry and Engineering Progress2024 年第 43 卷第 3 期基于BP 神经网络模型优化Fe 1-x O 基氨合成催化剂张书铭,刘化章(浙江工业大学工业催化研究所,浙江 杭州 310014)摘要:运用BP 神经网络建立了助催化剂含量与催化剂活性之间的预测模型,对Fe 1-x O 基氨合成催化剂的助催化剂进行优化。

首先将前期实验数据整理归纳为含有3、4、5、6和7个助催化剂等5类催化剂,以助催化剂含量(体积分数)为输入变量,以425℃反应器出口氨浓度(活性)为输出变量,对助催化剂进行优化。

结果表明,BP 神经网络预测模型拟合值均方误差最高为0.2784,预测值均方误差最高为0.1592,构建的BP 神经网络模型准确度较高。

在该模型的基础上,运用多种群遗传算法进行极值寻优,求解最优的催化剂配方,并进行实验验证。

结果表明,根据优化结果制备5个样品的实验测定值与预测值的相对误差最高为2.88%,优化结果较为准确;含有7个助催化剂的催化剂活性最高为18.83%,比原样本的统计平均活性值(17.52%)高1.31%,相对提高7.48%,助催化剂含量优化取得满意的结果。

关键词:Fe 1-x O ;催化剂;助催化剂;神经网络;遗传算法;优化中图分类号:O643.36 文献标志码:A 文章编号:1000-6613(2024)03-1302-07Optimization of Fe 1-x O ammonia synthesis catalyst by BP neural networkmodelZHANG Shuming ,LIU Huazhang(Institute of Industrial Catalysis, Zhejiang University of Technology, Hangzhou 310014, Zhejiang, China)Abstract: A prediction model between the content of promoter and the activity of catalyst was established by BP neural network, with which the promoter of Fe 1-x O ammonia synthesis catalyst was optimized. Firstly, the preliminary experimental data were summarized into five types of catalysts including three, four, five, six and seven promoters. With the content of the promoters (volume fraction) as the input model variable and the ammonia concentration (reactivity) at the outlet of the reactor at 425℃ as the output one, the formula of the promoter was optimized. The results showed that maximum mean square error of fitting values of BP neural network prediction model was 0.2784, while that of the predicted values was 0.1592, indicating the accuracy of the BP neural network model was high. On the basis of this model, multiple population genetic algorithm was used to search the extreme value, and the optimal catalyst formula was obtained and verified by experiments. The maximum relative error between the measured values of 5 samples prepared according to the optimized formula and the predicted ones was 2.88%. The highest activity was 18.83% for the catalyst containing seven promoters, 1.31% higher than the average reactivity value of the original sample (17.52%), and a relative increase of 7.48%.Keywords: Fe 1-x O; catalyst; promoters; neural networks; genetic algorithm; optimization研究开发DOI :10.16085/j.issn.1000-6613.2023-0433收稿日期:2023-03-22;修改稿日期:2023-05-30。

MATLAB程序代码BP神经网络的设计实例

MATLAB程序代码BP神经网络的设计实例

MATLAB 程序代码--BP 神经网络的设计实例例 1 采用动量梯度下降算法训练BP 网络。

训练样本定义如下:输入矢量为p =[-1 -2 3 1-1 1 5 -3]目标矢量为t = [-1 -1 1 1]解:本例的MA TLAB 程序如下:close allclearecho on clc% NEWFF ——生成一个新的前向神经网络% TRAIN ——对BP 神经网络进行训练% SIM ——对BP 神经网络进行仿真pause% 敲任意键开始clc% 定义训练样本% P 为输入矢量P=[-1, -2, 3, 1; -1, 1, 5,-3];% T 为目标矢量T=[-1, -1, 1, 1];pause; clc% 创建一个新的前向神经网络net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')% 当前输入层权值和阈值inputWeights=net.IW{1,1} inputbias=net.b{1}% 当前网络层权值和阈值layerWeights=net.LW{2,1} layerbias=net.b{2} pause clc% 设置训练参数net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9;n et.tra in Param.epochs = 1000;n et.tra in Param.goal = 1e-3;pauseclc% 调用TRAINGDM 算法训练BP网络[n et,tr]=trai n(n et,P,T);pauseclc% 对BP网络进行仿真A = sim( net,P)% 计算仿真误差E = T - AMSE=mse(E) pause clc echo off例2采用贝叶斯正则化算法提高BP网络的推广能力。

第3节 3.3 BPmatlab建模

第3节 3.3 BPmatlab建模

logsig()
功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元的输入范围从(-∞,+∞)映射 到(0,1)。它是可导函数,适用于BP训练的神经元。
BP神经网络学习算法的MATLAB实现
例1 : 下表为某药品的销售情况,现构建一个如下的三层BP神经 网络对药品的销售进行预测:输入层有三个结点,隐含层结点数 为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层 的激活函数为logsig,并利用此网络对药品的销售量进行预测, 预测方法采用滚动预测方式,即用前三个月的销售量来预测第四 个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销 售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反 复直至满足预测精度要求为止。 月份 销量 1 2056 2 2395 3 2600 4 2298 5 1634 6 1600
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
tansig()
功能 正切sigmoid激活函数 格式 a = tansig(n) 说明 双曲正切Sigmoid函数把神经元的输入范围从(-∞, +∞)映射到(-1,1)。它是可导函数,适用于BP训练的神经元。
月份
销量
7
1873
8
1478
9
1900
10
1500
11
2046
12
1556
BP神经网络学习算法的MATLAB实现
%以每三个月的销售量经归一化处理后作为输入 P=[0.5152 0.8173 1.0000 ; 0.8173 1.0000 0.7308; 1.0000 0.7308 0.1390; 0.7308 0.1390 0.1087; 0.1390 0.1087 0.3520; 0.1087 0.3520 0.0000;]'; %以第四个月的销售量归一化处理后作为目标向量 T=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761]; %创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有5个 神经元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活 函数为logsig,训练函数为梯度下降函数。 net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd'); net.trainParam.epochs=15000; net.trainParam.goal=0.01; %设置学习速率为0.1 LP.lr=0.1; net=train(net,P,T);

BP神经网络的设计实例(MATLAB编程)

BP神经网络的设计实例(MATLAB编程)

神经网络的设计实例(MATLAB编程)例1 采用动量梯度下降算法训练BP 网络。

训练样本定义如下:输入矢量为p =[-1 -2 3 1-1 1 5 -3]目标矢量为t = [-1 -1 1 1]解:本例的MATLAB 程序如下:close allclearecho onclc% NEWFF——生成一个新的前向神经网络% TRAIN——对BP 神经网络进行训练% SIM——对BP 神经网络进行仿真pause% 敲任意键开始clc% 定义训练样本P=[-1, -2, 3, 1; -1, 1, 5, -3]; % P 为输入矢量T=[-1, -1, 1, 1]; % T 为目标矢量pause;clc% 创建一个新的前向神经网络net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值inputWeights=net.IW{1,1}inputbias=net.b{1}% 当前网络层权值和阈值layerWeights=net.LW{2,1}layerbias=net.b{2}pauseclc% 设置训练参数net.trainParam.show = 50;net.trainParam.lr = 0.05;net.trainParam.mc = 0.9;net.trainParam.epochs = 1000;net.trainParam.goal = 1e-3;pauseclc% 调用TRAINGDM 算法训练BP 网络[net,tr]=train(net,P,T);pauseclc% 对BP 网络进行仿真A = sim(net,P)% 计算仿真误差E = T - AMSE=mse(E)pauseclcecho off例2 采用贝叶斯正则化算法提高BP 网络的推广能力。

在本例中,我们采用两种训练方法,即L-M 优化算法(trainlm)和贝叶斯正则化算法(trainbr),用以训练BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。

BP网络MATLAB仿真介绍

BP网络MATLAB仿真介绍

BP网络MATLAB仿真介绍对于BP网络,存在一个重要的结论,即单隐层的BP网络可以逼近任意的非线性映射,前提是隐含层的神经元个数可以随意调整。

下面以一个单隐层的BP神经网络设计为例,介绍利用神经网络工具箱进行BP网络设计及分析的过程。

此处,利用一个单隐层的BP网络来逼近一个函数。

1.问题描述通过对函数进行采样得到了网络的输入变量P和目标变量T,分别为:P = -1 : 0.1 : 1;T = [-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201];每组向量都有21维数据,可以将输入向量和目标向量绘制在一起,如下图:2. 网络设计网络的输入层和输出层的神经元个数均为1,根据隐含层设计经验,解决该问题的网络的隐层神经元个数应该在3~8之间。

下面设计一个隐含层神经元数目可变的BP网络,通过误差对比,确定最佳的隐含层神经元个数,并检查隐含层神经元个数对网络性能的影响。

网络设计及训练代码如下:P = -1 : 0.1 : 1;T = [-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201];s = 3 : 8; % S表示隐层数目的可选项res = 1 : 6;for i = 1 : 6% 隐含层神经元的传递函数为tansig,输出层神经元的传递函数为logsig% 目标函数在[-1, 1]间,刚好满足tansig的输出要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BP 网络用于催化剂配方建模--MATLAB 实例本例是《人工神经网络理论、设计及应用》(第二版)中BP 网络应用与设计的例子,现用MATLABF 仿真。

介绍:理论上已经证明,三层前馈神经网络可以任意精度逼近任意连续函数。

本例采用BP 神经网络对脂肪醇催化剂配方的实验数据进行学习,以训练后的网络作为数学模型映射配方与优化指标之间的复杂非线形关系,获得了较高的精度。

网络设计方法与建模效果如下:(1)网络结构设计与训练首先利用正交表安排实验,得到一批准确的实验数据作为神经网络的学习样本。

根据配方的因素个数和优化指标的个数设计神经网络的结构,然后用实验数据对神经网络进行训练。

完成训练之后的多层前馈神经网络,其输入与输出之间形成了一种能够映射配方与优化指标内在联系的连接关系,可作为仿真实验的数学模型。

图3.28给出针对五因素、三指标配方的实验数据建立的三层前馈神经网络。

五维输入向量与配方组成因素相对应,三维输出向量与三个待优化指标[脂肪酸甲脂转化率TR(%)、脂肪醇产率Y (%)和脂肪醇选择性S (%)]相对应。

通过试验确定隐层结点数为4。

正交表安排了18OH OH 组实验,从而得到18对训练样本。

训练时采用了改进BP 算法:)1()(−∆+=∆t W X t W αηδ(2)BP 网络模型与回归方程仿真结果的对比表3.3给出BP 网络配方模型与回归方程建立的配方模型的仿真结果对比。

其中回归方程为经二次多元逐步回归分析,在一定置信水平下经过F 检验而确定的最优回归方程。

从表中可以看出,采用BP 算法训练的多层前馈神经网络具有较高的仿真精度。

表3.3注:下标1表示实测结果,下标2表示神经网络输出结果,下标3表示回归方程以下是具体操作:编号A/CuZ n/C uB/CuC/CuMn/CuT R1/%T R2/%T R3/%YOH1/%YOH2/%YOH3/%SOH1/%SOH2/%SOH3/%10.050.130.080.140.0494.594.6283.8396.396.5695.9897.897.24102.8320.0650.070.120.160.0288.0588.0592.4375.575.9776.586.586.6879.6530.080.190.080.060.060.2560.4382.0340.2141.4344.8796.2595.3681.9240.0950.110.060.160.0493.0593.1194.3197.3196.29105.4399.399.39103.0850.110.050.020.060.0294.6594.7285.7988.5588.0677.8995.297.4987.1260.1250.170.00.140.096.0595.9697.0895.596.69105.4399.599.52104.7170.140.090.160.040.0461.0061.1365.3959.7258.954.7667.3569.173.5280.1550.030.120.140.0270.4070.3980.4437.541.8346.3652.2551.3871.4590.170.150.10.040.083.383.3270.2282.8580.4659.599.296.5374.3100.050.070.060.120.0584.585.2770.2290.990.4691.5195.997.8792.75110.0650.190.040.020.0369.569.4580.7761.865.0355.2288.292.4198.44120.080.130.00.120.0194.5595.694.7597.695.7492.4499.697.93101.65130.0950.050.160.020.0570.9569.5192.8862.5460.452.560.162.6368.12140.110.170.140.10.0387.287.1678.6491.089.1976.9299.899.3692.22150.1250.110.10.00.0164.264.0869.5958.359.1254.0258.960.2272.5160.140.030.080.10.0586.1586.1582.475.6561.4329.9386.578.0779.28170.1550.150.040.00.0377.1577.1775.2371.971.7283.9491.891.7494.23180.170.090.020.080.0196.059687.0594.6094.6294.6198.0099.1290.35Manager r 1)运行MATLAB,在COMMENT WINDOW中输入nntool,弹出Network/Data Manage 窗口;2)单击New Network...按钮,弹出Create New Network窗口,如图输入各项信息Input ranges栏输入为:[00.2;00.2;00.2;00.2;00.1]er2,Layer2,填完Properties for:Layer1各项信息,然后在Properties for中点击下拉按钮,选择Lay在Number of neurons:3;Transfer Function:LOGSIG。

点击Create完成。

你将在Network/Data Manager窗口中看到显示了Demonet网络名;图1.13)在Network/Data Manager窗口中点击New Data按钮,弹出Create New Data对话框,如0.111图输入信息,Value:[0.050.0650.080.0950.110.1250.140.1550.170.050.0650.080.0950.1 0.1250.140.1550.17;0.130.070.190.110.050.170.090.030.150.070.190.130.050.170.11 0.030.150.09;0.080.120.080.060.020.00.160.120.10.060.040.00.160.140.10.080.04 0.02;0.140.160.060.160.060.140.040.140.040.120.020.120.020.10.00.10.00.08;0.04 0.020.00.040.020.00.040.020.00.050.030.010.050.030.010.050.030.01],点Create,在Network/Data Manager窗口中显示了输入变量p;4)再Network/Data Manager窗口中点New Data按钮,弹出如图1.4,填入各项信息,注:Value:[0.9450.88050.60250.93050.94650.96050.610.70400.8330.8450.6950.94550.7095 0.8720.6420.86150.77150.9605;0.9630.7550.40210.97310.88550.9550.59720.3750.8285 0.9090.6180.9760.62540.910.5830.75650.7190.9460;0.9780.8650.96250.9930.9520.995 0.67350.52250.9920.9590.8820.10340.6010.10360.5890.8650.9180.98],点Create,在Network/Data Manager窗口中显示了输入变量t;5)在Network/Data Manager窗口中选中Demonet神经网络名,点击Train,弹出如图1.6,如图填入各项信息,点Train Network,网络开始训练,弹出误差曲线图1.7在Network/Data Manager窗口中选中Demonet神经网络名,点击Train,弹出如图1.8,填入各项信息,点Simulate Network,进行仿真,在Network/Data Manager窗口中选中aa 变量名,点击View,查看仿真结果;6)存盘在Network/Data Manager窗口中选中Demonet神经网络名,点Export,弹出如图2.0对话框,点Select All,点Save,弹出如图2.1,输入文件名“催化剂”,点保存;7)导入在Network/Data Manager窗口中点Import,弹出Import or load to Network/DatNetwork/Data aName e Manager窗口,在Source区域选择load from disk file项,此时可以直接在MAT-file Nam 编辑框输入源文件名,即可导入文件。

8)在Network/Data Manager窗口中,点击个变量名,然后点View,查看个变量信息。

图1.2图1.3图1.4图1.5图1.6图1.7图1.8图1.9图2.0图2.1整个实例到此为止,谢谢个人邮箱:jinyi8475@。

相关文档
最新文档