《人工智能导论》调研报告讲解(3)

2019-05-17 15:53

3.2模型建立

基于BP神经网络的非线性函数拟合算法流程可以分为BP神经网络构建、BP神经网络训练和BP神经网络预测三步。

BP神经网络模块构建中确定神经网路的结构以及学习方式,根据拟合函数的形式,采用神经网络的格式为:输入层有两个节点,输出层有一个节点,隐含层有五个节点,隐含层传递函数是‘tansig’函数,输出层传递函数是‘purlin’函数。

BP神经网络构建根据拟合非线性函数特点确定BP神经网络结构,由于该非线性函数有两个输入参数,一个输出参数,所以BP神经网络结构即输入层有2个结点,中间层有5个结点,输出层有1个结点。

BP神经网络训练用非线性函数输入输出数据训练神经网络,使训练后的网络能够预测非线性函数输出。从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据,用于测试网络的拟合性能。神经网络预测用训练好的网络预测函数输出,并对预测结果进行分析。

BP网络来拟合一个函数,说明BP网络在函数拟合中的作用。 训练好的数据对网络性能进行预测,从而判断网络拟合函数效果。

3.3 MatLab实现

3.3.1BP神经网络工具箱函数

Matlab软件中包含Matlab神经网络工具箱。它是以人工神经网络理论为基础,用Matlab语言构造出了该理论所涉及的公式运算、矩阵操作和方程求解等大部分子程序以用于神经网络的设计和训练。用户只需根据自己的需要调用相关的子程序,即可以完成包括网络结构设计、权值初始化、网络训练及结果输出等在内的一系列工作,免除编写复杂庞大程序的困扰。目前,Matlab神经网络工具包包括的网络有感知器、线性网络、BP神经网络、径向基网络、自组织网络和回归网络等。BP神经网络主要用到newff、sim和train3个神经网络函数,各函数解释如下。

(1)newff:BP神经网络参数设置函数

函数功能:构建一个BP神经网络。

函数形式:net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) P:输入数据矩阵。

T:输出数据矩阵。

S:隐含层结点数。

TF:结点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数pureline,正切S型传递函数tansig,对数S型传递函数logsig。

BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg_Marquardt的BP算法训练函数trainlm。

BLF:网络学习函数,包括BP学习规格learngd,带动量项的BP学习规则learngdm。

PF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse。

IPF:输入处理函数。

OPF:输出处理函数。

DDF:验证数据划分函数。

一般在使用过程中设置前面6个参数,后面4个参数采用系统默认参数。

(2)train:BP神经网络训练函数

函数功能:用训练数据训练BP神经网络。

函数形式:[net,tr] = train(NET,X,T,Pi,Ai) NET:待训练网络。 X:输入数据。 T:输出数据。

Pi:初始化输入层条件。 Ai:初始化输出层条件。 net:训练好的网络。 tr:训练过程记录。

一般在使用过程中设置前面3个参数,后面2个参数采用系统默认参数。

(3)sim:BP神经网络预测函数、

函数功能:用训练好的BP神经网络预测函数输出。 函数形式:y = sim(net,x) net:训练好的网络。 x:输入数据。 y:网络预测数据。

3.3.2实验结果

实际输出数据和神经网络的预测输出之间的结果对比图

优势分析:

神经网络预测模块既用训练好的数据对网络性能进行预测,从而判断网络拟合函数效果。

参考文献:

[1] 李晓慧.《基于MATLAB的BP神经网络的应用》[J]. 科技信息, 2010,(26) [2] 郝中华.《B P神经网络的非线性思想》. 洛阳师范学院学报2008.3(4) [3] 张玲,张钹.《人工神经网络理及应用》. 浙江:浙江科技大学出版社,1997.5:20-62

[4] 蒋宗礼.《人工神经网络导论》. 高等教育出版社,2001.5:15-90

[5] 闻新、周露、王丹力、熊晓英.《MATLAB神经网络应用设计.科学出版社》,2001.5:10-50

[6] 葛哲学、孙志强编著 .《神经网络与matlab2007实现》. 北京:电子工业出版社,2007.9:1-5

附录:

程序代码:

%% 清空环境变量 clc clear

%% 训练数据预测数据提取及归一化 %导入输入输出数据

load data input output

%从1到2000间随机排序 k=rand(1,2000); [m,n]=sort(k);

%随机选择1900组训练数据和100组预测数据 input_train=input(n(1:1900),:)'; output_train=output(n(1:1900)); input_test=input(n(1901:2000),:)'; output_test=output(n(1901:2000));

%训练数据归一化

[inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train);

%% BP网络训练

%初始化BP网络结构

net=newff(inputn,outputn,5);

%网络参数配置(迭代次数、学习率、目标) net.trainParam.epochs=100; net.trainParam.lr=0.1;

net.trainParam.goal=0.00004;

%网络训练

net=train(net,inputn,outputn);

%% BP网络预测 %预测数据归一化

inputn_test=mapminmax('apply',input_test,inputps);

%网络预测输出

an=sim(net,inputn_test);

%网络输出反归一化

BPoutput=mapminmax('reverse',an,outputps);

%% 结果分析

figure(1)

plot(BPoutput,':og') hold on

plot(output_test,'-*');

legend('预测输出','期望输出')

title('BP网络预测输出','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12) %预测误差

error=BPoutput-output_test;

figure(2)

plot(error,'-*')

title('BP网络预测误差','fontsize',12) ylabel('误差','fontsize',12) xlabel('样本','fontsize',12)

figure(3)

plot((output_test-BPoutput)./BPoutput,'-*'); title('神经网络预测误差百分比')

errorsum=sum(abs(error))


《人工智能导论》调研报告讲解(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京四中初三英语易错题总结118道题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: