神经网络与matlab仿真
- 格式:doc
- 大小:268.00 KB
- 文档页数:7
在MATLAB中使用卷积神经网络的方法近年来,深度学习技术飞速发展,卷积神经网络(Convolutional Neural Network,CNN)已成为计算机视觉领域的主流模型。
CNN通过模拟人脑视觉系统的工作原理,可实现图像识别、目标检测、图像分割等任务。
而在实际应用中,MATLAB作为一款专业的数值计算软件,提供了强大的工具箱和函数库,使得使用卷积神经网络变得更加简便。
一、MATLAB中的CNN工具箱介绍MATLAB中的Deep Learning Toolbox提供了用于设计、训练和部署深度学习模型的功能。
在CNN方面,Deep Learning Toolbox提供了一系列用于构建卷积神经网络的函数和类。
其中,最常用的是convnet系列函数,可以用于创建并配置具有不同层结构的CNN模型。
此外,Deep Learning Toolbox还提供了用于图像数据增强、特征提取、预训练网络等功能,极大地方便了用户进行卷积神经网络实验和应用。
二、创建卷积神经网络模型在MATLAB中,创建卷积神经网络模型一般需要以下步骤:1. 导入数据集:将图像数据集导入MATLAB环境中。
可以使用ImageDatastore类来管理图像数据集,方便读取和处理数据。
2. 数据预处理:对导入的图像数据进行预处理,常见的预处理操作包括图像归一化、随机翻转、旋转等,以增强模型的鲁棒性。
3. 定义网络结构:使用convnet系列函数来定义卷积神经网络的结构。
可以通过添加卷积层、池化层和全连接层来构建自己需要的网络结构。
4. 配置网络参数:通过设置网络参数,如卷积核大小、卷积步长、池化大小等,来进一步调整网络结构和性能。
5. 训练网络:使用训练数据集对卷积神经网络进行训练。
可以选择不同的训练算法和优化器,如随机梯度下降(Stochastic Gradient Descent,SGD)和Adam。
6. 评估模型:使用独立的测试数据集对训练好的模型进行评估,计算准确率、精确率、召回率等指标,以评估模型的性能。
求用matlab编BP神经网络预测程序求一用matlab编的程序P=[。
];输入T=[。
];输出% 创建一个新的前向神经网络net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')% 当前输入层权值和阈值inputWeights=net_1.IW{1,1}inputbias=net_1.b{1}% 当前网络层权值和阈值layerWeights=net_1.LW{2,1}layerbias=net_1.b{2}% 设置训练参数net_1.trainParam.show = 50;net_1.trainParam.lr = 0.05;net_1.trainParam.mc = 0.9;net_1.trainParam.epochs = 10000;net_1.trainParam.goal = 1e-3;% 调用TRAINGDM 算法训练BP 网络[net_1,tr]=train(net_1,P,T);% 对BP 网络进行仿真A = sim(net_1,P);% 计算仿真误差E = T - A;MSE=mse(E)x=[。
]';%测试sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%不可能啊我200928对初学神经网络者的小提示第二步:掌握如下算法:2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。
3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。
第27卷 第2期大庆师范学院学报Vol.27 No.2 2007年4月JOURNAL OF DAQ I N G NOR MAL UN I V ERSI TY Ap ril,2007基于MAT LAB的RBF神经网络建模及应用王艳芹,张 维(大庆师范学院物理与电气信息工程系,黑龙江大庆163712)摘 要:MAT LAB中的神经网络工具箱是进行神经网络系统分析与设计的有力工具。
RBF神经网络以其计算量小,学习速度快,不易陷入局部极小等诸多优点为系统辨识与建模提供了一种有效的手段。
将二者结合起来,解决了油田试井系统中压力值的建模问题,取得了令人满意的结果。
关键词:RBF神经网络;MAT LAB;试井系统作者简介:王艳芹(1979-),女,黑龙江海伦人,大庆师范学院物理与电气信息工程系教师,从事神经网络辨识与建模研究。
中图分类号:TP273 文献标识码:A 文章编号:1006-2165(2007)02-0118-03 收稿日期:2007-01-220引言人工神经网络作为一门新兴学科在非线性系统的建模与辨识中得到了广泛的应用[1]。
目前应用最广泛、直观、易理解的是基于误差反向传播算法的多层前向神经网络,简称BP(Err or Back Pr opagati on)网络,但该网络存在着收敛速度慢、易陷入局部极小及隐含层结点个数不易确定等缺陷。
近些年备受关注的另一种前向神经网络———径向基函数(Radial Basis Functi on,简记RBF)神经网络有效地解决了上述问题。
在人工神经网络的功能实现上,与传统的利用Basic、Fortran、C等语言编程相比,直接应用第四代计算机语言MAT LAB的神经网络工具箱更加简便易行。
MAT LAB是由美国M ath works公司发布的面向科学计算、数据可视化以及交互式程序设计的高级语言,其诸如小波分析、鲁棒控制、模糊逻辑、神经网络等丰富的工具箱代表了当今一流专家学者在这些领域的前沿工作[2]。
MATLAB 在RBF 神经网络模型中的应用高宁1,张建中2(1.安徽农业大学信息与计算机学院,安徽合肥230036;2.安徽建筑工业学院电子与信息工程学院,安徽合肥230022)摘要:本文介绍了RBF 神经网络的基本原理及主要特点,并举例说明了基于MATLAB 神经网络工具箱建立RBF 神经网络模型及实现仿真的方法。
关键词:仿真;MATLAB 神经网络工具箱;RBF 神经网络中图分类号:TP399文献标识码:A文章编码:1672-6251(2009)02-0110-02Application of RBF neural network model based on MATLABGAO Ning 1,ZHANG Jan-zhong 2(1.College of Information and computer,Anhui Agriculture University,Hefei 230036,China;2.College of Electronics and Information Enginner,Anhui Architecture University,Hefei 230022,China)Abstract:In this paper,the principle and characteristic of RBF neural network are explained,and the method of building and simulating RBF neural network model is introduced.Key words:Simulation;MATLAB neural network toolbox;RBF neural network人工神经网络具有大规模并行处理能力、分布式存储能力、自适应(学习)能力等特征,神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法的缺陷,已广泛应用于模式识别、信号处理等各种应用领域。
BP神经网络实验详解(MATLAB实现)BP(Back Propagation)神经网络是一种常用的人工神经网络结构,用于解决分类和回归问题。
在本文中,将详细介绍如何使用MATLAB实现BP神经网络的实验。
首先,需要准备一个数据集来训练和测试BP神经网络。
数据集可以是一个CSV文件,每一行代表一个样本,每一列代表一个特征。
一般来说,数据集应该被分成训练集和测试集,用于训练和测试模型的性能。
在MATLAB中,可以使用`csvread`函数来读取CSV文件,并将数据集划分为输入和输出。
假设数据集的前几列是输入特征,最后一列是输出。
可以使用以下代码来实现:```matlabdata = csvread('dataset.csv');input = data(:, 1:end-1);output = data(:, end);```然后,需要创建一个BP神经网络模型。
可以使用MATLAB的`patternnet`函数来创建一个全连接的神经网络模型。
该函数的输入参数为每个隐藏层的神经元数量。
下面的代码创建了一个具有10个隐藏神经元的单隐藏层BP神经网络:```matlabhidden_neurons = 10;net = patternnet(hidden_neurons);```接下来,需要对BP神经网络进行训练。
可以使用`train`函数来训练模型。
该函数的输入参数包括训练集的输入和输出,以及其他可选参数,如最大训练次数和停止条件。
下面的代码展示了如何使用`train`函数来训练模型:```matlabnet = train(net, input_train, output_train);```训练完成后,可以使用训练好的BP神经网络进行预测。
可以使用`net`模型的`sim`函数来进行预测。
下面的代码展示了如何使用`sim`函数预测测试集的输出:```matlaboutput_pred = sim(net, input_test);```最后,可以使用各种性能指标来评估预测的准确性。
神经网络及深度学习(包含matlab代码).pdf
神经网络可以使用中间层构建出多层抽象,正如在布尔电路中所做的那样。
如果进行视觉模式识别,那么第1 层的神经元可能学会识别边;第2 层的神经元可以在此基础上学会识别更加复杂的形状,例如三角形或矩形;第3 层将能够识别更加复杂的形状,以此类推。
有了这些多层抽象,深度神经网络似乎可以学习解决复杂的模式识别问题。
正如电路示例所体现的那样,理论研究表明深度神经网络本质上比浅层神经网络更强大。
《深入浅出神经网络与深度学习》PDF+代码分析
《深入浅出神经网络与深度学习》PDF中文,249页;PDF英文,292页;配套代码。
提取码: 6sgh
以技术原理为导向,辅以MNIST 手写数字识别项目示例,介绍神经网络架构、反向传播算法、过拟合解决方案、卷积神经网络等内容,以及如何利用这些知识改进深度学习项目。
学完后,将能够通过编写Python 代码来解决复杂的模式识别问题。
matlab神经网络原理与实例精解Matlab神经网络原理与实例精解。
神经网络是一种模仿人脑神经元网络结构和工作原理的计算模型,它具有自适应、并行处理、学习能力强等特点,被广泛应用于模式识别、数据挖掘、人工智能等领域。
Matlab作为一种强大的科学计算软件,提供了丰富的神经网络工具箱,可以用于神经网络的建模、训练和应用。
神经网络的原理主要包括神经元模型、网络拓扑结构、激活函数、权值更新算法等。
在Matlab中,可以通过简单的代码实现神经网络的构建和训练。
首先,我们需要定义神经网络的结构,包括输入层、隐藏层和输出层的神经元个数,然后选择合适的激活函数和权值更新算法。
接下来,利用Matlab提供的训练函数,可以对神经网络进行训练,并通过验证集和测试集来评估网络的性能。
除了理论知识,本文还将介绍一些实际的案例,以帮助读者更好地理解神经网络在Matlab中的应用。
例如,我们可以利用Matlab实现手写数字识别的神经网络模型,通过训练和测试来验证模型的准确性。
另外,我们还可以使用Matlab进行时间序列预测、图像识别等实际问题的建模与求解,从而更深入地了解神经网络的实际应用。
在实际应用中,神经网络的性能往往受到许多因素的影响,如数据质量、网络结构、参数选择等。
因此,我们需要在实践中不断调整和优化神经网络模型,以获得更好的性能。
Matlab提供了丰富的工具和函数,可以帮助我们对神经网络进行调试和优化,从而更好地满足实际问题的需求。
总之,本文将全面介绍Matlab神经网络的原理与实例,帮助读者深入理解神经网络的工作原理和在Matlab中的应用。
通过学习本文,读者可以掌握神经网络的基本原理,了解Matlab神经网络工具箱的使用方法,掌握神经网络模型的建立、训练和优化技巧,从而更好地应用神经网络解决实际问题。
希望本文能对读者有所帮助,欢迎大家阅读和交流讨论。
MATLAB中的模糊逻辑与神经网络技术解析本文将重点讨论MATLAB中的模糊逻辑与神经网络技术的应用和解析。
模糊逻辑和神经网络是当前人工智能领域的热门技术,它们可以帮助我们处理模糊信息、进行复杂的数据分析和预测。
本文将分别介绍和比较这两种技术,并通过MATLAB软件进行演示和解析。
首先,我们来了解一下模糊逻辑技术。
模糊逻辑是一种以模糊集合论为基础的数学方法,用于处理不确定性和模糊性的问题。
在传统的布尔逻辑中,一个命题只有真和假两种取值,而在模糊逻辑中,一个变量可以具有多个模糊取值,介于完全真和完全假之间。
这使得我们可以更好地处理模糊或不确定的情况。
在MATLAB中,有几个常用的模糊逻辑工具箱可以帮助我们实现模糊逻辑系统的建模和仿真。
其中最常用的是Fuzzy Logic Toolbox。
使用这个工具箱,我们可以定义模糊集合、模糊规则和推理机制,从而构建一个完整的模糊逻辑系统。
在系统建模过程中,我们需要定义输入和输出变量的模糊集合,并通过规则来描述变量之间的关系。
然后,使用推理机制将输入与规则相结合,产生模糊输出。
最后,通过解模糊方法将模糊输出转化为具体的数值。
通过模糊逻辑技术,我们可以更好地处理模糊的现实问题。
例如,在交通控制系统中,我们可以使用模糊逻辑来调整信号灯的时长,根据交通流量和道路状况实现智能控制。
我们可以根据模糊集合的定义,例如“低流量”、“中等流量”和“高流量”,以及相应的规则来进行控制。
这样,我们就可以根据实时的交通情况智能地调整信号灯的时长,以达到最佳的交通流量控制效果。
接下来,让我们来了解一下神经网络技术。
神经网络是一种模仿人脑神经网络结构和功能的计算模型,通过模拟神经元之间的相互连接和信息传递,实现复杂的数据分析和处理。
神经网络可以自动学习和适应不同的环境和任务,具有强大的数据处理能力。
在MATLAB中,我们可以使用Neural Network Toolbox来构建和训练神经网络。
RBF神经网络:原理详解和MATLAB实现——2020年2月2日目录RBF神经网络:原理详解和MATLAB实现 (1)一、径向基函数RBF (2)定义(Radial basis function——一种距离) (2)如何理解径向基函数与神经网络? (2)应用 (3)二、RBF神经网络的基本思想(从函数到函数的映射) (3)三、RBF神经网络模型 (3)(一)RBF神经网络神经元结构 (3)(二)高斯核函数 (6)四、基于高斯核的RBF神经网络拓扑结构 (7)五、RBF网络的学习算法 (9)(一)算法需要求解的参数 (9)0.确定输入向量 (9)1.径向基函数的中心(隐含层中心点) (9)2.方差(sigma) (10)3.初始化隐含层至输出层的连接权值 (10)4.初始化宽度向量 (12)(二)计算隐含层第j 个神经元的输出值zj (12)(三)计算输出层神经元的输出 (13)(四)权重参数的迭代计算 (13)六、RBF神经网络算法的MATLAB实现 (14)七、RBF神经网络学习算法的范例 (15)(一)简例 (15)(二)预测汽油辛烷值 (15)八、参考资料 (19)一、径向基函数RBF定义(Radial basis function——一种距离)径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)=Φ(‖x‖),或者还可以是到任意一点c的距离,c点称为中心点,也就是Φ(x,c)=Φ(‖x-c‖)。
任意一个满足Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数。
标准的一般使用欧氏距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。
在神经网络结构中,可以作为全连接层和ReLU层的主要函数。
如何理解径向基函数与神经网络?一些径向函数代表性的用到近似给定的函数,这种近似可以被解释成一个简单的神经网络。
径向基函数在支持向量机中也被用做核函数。
常见的径向基函数有:高斯函数,二次函数,逆二次函数等。
close allclearecho onclc% NEWFF——生成一个新的前向神经网络% TRAIN——对BP 神经网络进行训练% SIM——对BP 神经网络进行仿真pause% 敲任意键开始clc% 定义训练样本矢量% P 为输入矢量sqrs=[0.0000016420520 0.0000033513140 0.0000051272540 0.0000069694860 0.0000088776310 0.0000139339960 -0.0000594492310 -0.0001080022920 -0.0001476714860 ...0.0000112367340 0.0002021567880 0.0008695337800 -0.0001189929700 -0.0000912336690 0.0002160472130 0.0006358522040 0.0012365884200 0.0049930394010 ]./0.001657904949 ;sqjdcs=[0.0000399039272 0.0000805129702 0.0001218448339 0.0001639173001 0.0002067504102 0.0003172835720 0.0000421189848 0.0000870310694 0.0001350858140 ...0.0001866997652 0.0002423599348 0.0004033628719 0.0000394450224 0.0000830935373 0.0001317612004 0.0001864881262 0.0002486249700 0.0004497441812 ]./0.000533286;sqglmj=[0.0000068430669 0.0000147605347 0.0000240097285 0.0000349372747 0.0000480215187 0.0000954580176 0.0000005804238 0.0000011640375 0.0000017508228 ...0.0000023407605 0.0000029338317 0.0000044301058 0.0000030813582 0.0000071511410 0.0000126615618 0.0000203910217 0.0000318028637 0.0001118629438 ]./0.000034868299 ;s1=[0.0001773503110 0.0003553133430 0.0005338922010 0.0007130899610 0.0008929096590 0.0013452002950 0.0005747667510 0.0012111415700 0.0019195724060 ...0.0027130110200 0.0036077110840 0.0064386221260 0.0005056929850 0.0010189193420 0.0015398201520 0.0020685403470 0.0026052286500 0.0039828224110 ]./0.00275071;%s2=[25.9167875445 24.0718476818 22.2364947192 20.4105777318 18.5939487791 14.0920619223 990.2535888432 1040.4661104131 1096.3830297389 1159.029******* ...% 1229.6925839338 1453.3788619676 164.1136642277 142.4834641073 121.6137611080 101.4436832756 81.9180522413 35.6044841634];glkyl=[1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3];glhyl=[2 4 6 8 10 15 2 4 6 8 10 15 2 4 6 8 10 15 ];P=[sqrs;sqjdcs;sqglmj;s1]; %输入数据矩阵T=[glkyl;glhyl]; %目标数据矩阵echo onclcpauseclc% 创建一个新的前向神经网络net=newff(minmax(P),[20,2],{'tansig','purelin'});pauseclcecho offclcdisp('1. L-M 优化算法TRAINLM'); disp('2. 贝叶斯正则化算法TRAINBR'); choice=input('请选择训练算法(1,2):');figure(gcf);if(choice==1)echo onclc% 采用L-M 优化算法TRAINLMnet.trainFcn='trainlm';pauseclc% 设置训练参数net.trainParam.epochs = 500;net.trainParam.goal = 1e-6;net=init(net);% 重新初始化pauseclcelseif(choice==2)echo onclc% 采用贝叶斯正则化算法TRAINBRnet.trainFcn='trainbr';pauseclc% 设置训练参数net.trainParam.epochs = 500;randn('seed',192736547);net = init(net);% 重新初始化pauseclcendnet.trainParam.epochs = 500; net.trainParam.goal = 1e-6; net.trainFcn='trainoss';% 调用相应算法训练BP 网络[net,tr]=train(net,P,T);pauseclc% 对BP 网络进行仿真A = sim(net,P);% 计算仿真误差E = T - A;MSE=mse(E)pauseclc。
神经网络与matlab仿真
随着技术的发展,人工神经网络在各个方面应用越来越广泛,由于matlab仿
真技术对神经网络的建模起着十分重要的作用,因此,通过讨论神经网络中基础
的一类——线性神经网络的matlab仿真,对神经网络的matlab仿真做一个基本
的了解。
1.面向matlab工具箱的神经网络设计
人工神经网络可通过硬件或软件方式来实现。硬件方式即神经计算机。目前
较常用的还是软件实现方式。已有许多公司和研究单位设计了通用的ANN程序
以方便人们使用,matlab提供的神经网络工具箱就是其重要代表。
神经网络工具箱是在matlab环境下所开发出来的许多工具箱之一,它是以人
工神经网络理论为基础,用matlab语言构造出典型神经网络的激活函数,如S
型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算变
成对激活函数的调用。另外,根据各种典型的修正网络权值的规定,加上网络的
训练过程,用matlab编写出各种网络设计与训练所涉及的公式运算、矩阵操作
和方程求解等大部分子程序,网络的设计者可以根据自己的需要进行调用,免除
了自己编写复杂而庞大的算法程序的困扰,集中精力去思考需要解决的问题,提
高工作效率和解题质量。
目前matlab几乎完整地概括了神经网络的基本成果,对于各种网络模型,神
经网络工具箱集成了多种学习算法,为用户提供了极大的方便。
同时,matlab的其他工具箱也为我们在神经网络工具箱的基础上开发研究模
糊与神经网络的结合、神经网络的样条算法等问题提供了辅助手段
。
2 线性神经网络
线性神经网络是最简单的一种神经元网络,它可以由一个或多个线性神经元
构成。50年代末期提出的自适应线性元件是线性神经网络最早的典型代表。其
每个神经元的传递函数为线性函数,其输出可以取任意值。线性神经网络可以采
用Widrow-Hoff学习规则,也称为LMS算法来调整网络的权值和阈值。
2.1 线性神经网络模型
线性神经元模型的神经元有一个线性传递函数purelin,其输入输出之间是简
单的比例关系,一次对单个线性神经元,由图1可得,a=purelin(ω×p+b).因此,
线性神经网络允许输出可以取任意值,而不仅仅是0或1。
线性神经元模型
线性神经元传递函数
具有R个输入的单层(S个神经元)线性神经网络模型。
单层多输入的线性神经网络模型
2.2 线性神经网络的学习算法
Widrow-Hoff学习规则,又称为最小均方误差LMS(Least Mean Square Error)
学习算法,由Widrow-Hoff提出,属于有导师学习算法。
LMS学习规则定义如下:
22
1111()(()())mmkkmseekdkykmm
其目标是通过调节权值,使mse从误差空间的某点开始,沿着mse的斜面向下
滑行,最终使mse达到最小值。
LMS算法的实现有五个步骤:
第一步:初始化。给各个连接赋一个较小的随机值;
第二步:输入一个样本,计算连接权值的调整量:
2
()()2()ijijekekek
2
()()2()ekekekbb
1()[()(())]Rijiijijiekedkpkb
第三步:调整连接权值:
根据负梯度下降的原则,网络权值和阈值修正公式如下
(1)()2()()(1)()2()Tkkekpkbkbkek
式中η为学习率,当其取较大值时,可以加快网络的训练速度,但是如果其
值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行
稳定的训练,学习率的值必须选择一个合适的值;
第四步:计算均方误差:
22
1111()(()())mmkkmesekdkykmm
第五步:判断误差是否为零或者是否达到预选设定的要求。如果是,则结束
算法,否则输入下一个样本,返回第二步进入下一轮求解过程。
3 线性神经网络的matlab实现
函数名称 功能
newlind 设计一个线性层
newlin 构造一个线性层
purelin 线性传递函数
dotprod 权值点积函数
netsum 网络输入求和函数
initlay 某层的初始化函数
initwb 某层的权值和阈值的初始化函数
initzero 零权值阈值初始化函数
init 一个网络的初始化函数
mae 求平均绝对误差性能函数
learnwh Widrow-hoff的学习规则
adaptwb 网络的权值阈值的自适应函数
adapt 神经网络的自适应函数
trainwb 网络的权值和阈值训练函数
train 神经网络训练函数
maxlinlr 线性层的最大学习率
errsurf 计算误差性能曲面
sim 仿真一个神经网络
下面给出一个线性神经网络的设计要求,并尝试用matlab提供的神经网络工
具函数实现。
设计一个简单的单层线性神经元,其输入和目标分别为P=[+1.0 -1.2],
T=[+0.5 +1.0]。权值和阈值的范围分别为-1~1。试用matlab实现其从输入到输出
的变化关系。
由例中的条件编写matlab源程序如下
:
%dlin1.m
%NEWLIND
%SIM
clf;
figure(gcf);
P=[1.0 -1.2];
T=[0.5 1.0];
w_range=-1:0.1:1;
b_range=-1:0.2:1;
ES=errsurf(P,T,w_range,b_range,'purelin');
plotes(w_range,b_range,ES);
ax=findobj(gcf.'type','axes');
pause
net=neslind(P,T);
format compact;
A=0;E=0;SSE=0;
A=sim(net,P)
E=T-A
SSE=sumsqr(E)
plotes(w_range,b_range,ES);
plotep(net.IW{1.1},net.b{1},SSE);
p=-1.2;
a=0;
a=sim(net,p) % 进行网络验证
disp('End of dline1')
执行程序,可得到线性网络求解后的误差曲面图
对此线性网络进行更多的训练以求最优解,则matlab程序更改如下。
% dlin2.m
% NEWLIN
% TRAIN
% SIM
clf;
figure(gcf);
P=[1.0 -1.2];
T=[0.5 1.0];
w_range=-1:0.2:1;
b_range=-1:0.2:1;
ES=errsurf(P,T,w_range,b_range,'purelin');
plotes(w_range,b_range,ES);
pause
maxlr=0.40*maxlinlr(P,'bias');
net=newlin([-2 2].1.[0],maxlr);
net.trainParam.goal=.001;
subplot(1,2,2);
h=text(sum(get(gca,'xlim'))*0.5,sum(get(gca,'ylim'))*0.5'*Click On ME*');
set(h,'horizontal','center','fontweight','bold');
[net.IW{1.1}net.b{1}]=ginput(1);
delete(h);
[net,tr]=train (net,P,T);
format conpact;
A=0;E=0;SSE=0;
A=sim(net,P)
E=T-A
SSE=sumsqr(E)
plotes(w_range,b_range,ES);
plotep(net.IW{1.1},net.b{1},SSE);
pause
plotperf(tr,net.trainParam.goal);
p=-1.2;
a=sim(net,P)
disp('End of dlin2')
运行程序,得到的误差曲面及误差等高线图。
参考文献
[1] 周开利,康耀红. 神经网络模型及其MATLAB仿真程序设计[M]. 北京:清
华大学出版社,2005:90-95.
[2] 闵惜琳,刘国华. 用MATLAB神经网络工具箱开发BP网络应用[J]. 计算机
应用,2001,21(8):163-164.
[3] 刘建斌. 人工神经网络在电磁建模中的应用[D]. 上海交通大学,2003:10-11.
[4] 张德丰. MATLAB神经网络应用设计[M]. 机械工业出版社,2009:7-12.