Matlab 神经网络工具箱介绍
MATLAB神经网络工具箱详解
MATLAB 图形用户界面功能:——作者:强哥1573:2017-09-01 nnstart - 神经网络启动GUInctool - 神经网络分类工具nftool - 神经网络的拟合工具nntraintool - 神经网络的训练工具nprtool - 神经网络模式识别工具ntstool - NFTool神经网络时间序列的工具nntool - 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer - 线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind - 设计一个线性层。
newpnn - 设计概率神经网络。
newrb - 径向基网络设计。
newrbe - 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap - 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡- 模拟一个神经网络。
初始化- 初始化一个神经网络。
适应- 允许一个神经网络来适应。
火车- 火车的神经网络。
DISP键- 显示一个神经网络的属性。
显示- 显示的名称和神经网络属性adddelay - 添加延迟神经网络的反应。
closeloop - 神经网络的开放反馈转换到关闭反馈回路。
MATLAB神经网络工具箱
响应函数 y = σ ( s) 的基本作用:
1、控制输入对输出的激活作用; 2、对输入、输出进行函数转换; 3、将可能无限域的输入变换成指定的有限范 围内的输出。
根据响应函数的不同,人工神经元 有以下几种类型:
阈值单元
响应函数如图a所示,
线性单元
其响应函数如图b所示
非线性单元
常用响应函数为S型(Sigmoid)函数,如图c、 d所示
确定网络模型
选择模型的类型和结构,也可对原网络进行变形和扩充
网络参数的选择
确定输入输出神经元数目
训练模型的确定
选择合理的训练算法,确定合适的训练步数,指定适当的训练目标误 差
网络测试
选择合适的测试样本
人工神经元的一般模型
神经元模型及其简化模型如图所示,输入向
T p = [ p , p , Λ p ] 量 1 2 R 、权值矩阵 w = [ w1,1 , w1, 2 , Λ ,, w1, R ]
与阈值的加权和(内积运算)送入累加器,形成 净输入,即:
人工神经元模型
图中,xi(i=1,2,…,n)为加于输入端(突触)上的 输入信号;ωi为相应的突触连接权系数,它是模拟 突触传递强度的—个比例系数, ∑表示突触后信号的 空间累加;θ表示神经元的阈值,σ表示神经元的响 应函数。该模型的数学表达式为:
n
(3)误差平方和sse(sum squared error)
n
sse = ∑ (t k − ak )
k =1
2
无教师学习(无监督学习)
MATLAB工具箱中的神经网络结构
1.人工神经元的一般模型 在 s=
n
∑ ωi xi − θ 中,令 b = −θ
i =1
Matlab与神经网络工具箱(经典资料-免费分享)
2.4.6 单个矩阵元素的赋值与运算
Matlab允许用户对一个矩阵地单个元素进行赋值 和操作。 Matlab还允许对子矩阵进行定义和处理。 A(:,j)表示A矩阵的第j列元素; A(i,:)表示A矩阵的第i列全部元素。 A(:,1)=[1,4,7] A(2,:)=[4,5,6]
2.5 Matlab的控制语句
2.7.2 基本X-Y图形 plot 线性图形 title 图形标题 xlabel X轴标记 ylable Y轴标记 text 文本注释 grid 网格线 hold 保持当前图形 subplot 在一个图形窗口画多个坐标图。 例:subplot(2,3,2);plot(X)表示在2行3 列的大图形中的第2号图中画X的形状。
2.8神经网络工具箱常用函数列表
2.8.1重要的感知器神经网络函数
初始化: 训练: 仿真: 学习规则: initp trainp simup learnp
2.8.2线性神经网络函数
初始化: 设计: 仿真: 离线训练: 在线自适应训练: 学习规则: initlin solvelin simulin trainwh adaptwh learnwh
2.3.2 Matlab的保留字符串
判断0元素用的误差限eps,其默认值为
eps=2.2204×10-16 pi表示圆周率 Inf表示无穷大。Matlab允许的最大数据为 1.797693×10308;一个数据大于此数则认为是 Inf。1/0产生Inf。 即使在Matlab中保留了若干字符串,它们还可以 重新进行赋值。如果用户想将判0的误差限扩 大10倍,则可以采用eps=10×eps命令来进行修 正。
严格的说,Matlab并不是一种计算机语言,因为 用它编写出来的程序并不能脱离Matlab环境而 执行,但从功能上说,Matlab已经完全具备了 计算机语言的结构和性能,因此我们也习惯的 称之为Matlab语言。 Matlab 5.3以上版本提供了C/C++的接口,通过另 外一个工具MatCom,能用Visual C++调用 Matlab编写的程序,从而大大减少C++程序的 编写难度。此工具我已经用过,效果不错。
Matlab神经网络工具箱介绍ppt课件
自然语言处理
利用神经网络实现文本分类、机器翻译等功 能。
计算机视觉
通过神经网络提高图像识别、目标检测等任 务的准确率。
语音识别
利用神经网络实现更高效和准确的语音转文 字和语音合成。
控制与决策
在机器人、自动驾驶等领域,神经网络能够 提高系统的智能水平和决策能力。
THANKS.
MATLAB神经网络工具箱特点
易于使用 高度可定制 强大的可视化功能 广泛的集成
MATLAB神经网络工具箱提供了直观的图形用户界面,使得用 户可以轻松地创建、训练和测试神经网络模型。
用户可以根据需要自定义神经网络的架构、训练参数和性能指 标。
该工具箱支持数据可视化,使得用户可以更好地理解数据和神 经网络的性能。
初始化网络权重
随机初始化神经网络的权 重和偏置项。
训练神经网络
前向传播
根据输入数据计算输出结果, 计算误差。
反向传播
根据误差调整权重和偏置项, 更新网络参数。
选择优化算法
选择适合的优化算法,如梯度 下降、牛顿法等。
设置训练参数
设置训练轮数、学习率等参数 ,控制训练过程。
测试神经网络
01
测试数据集
混合模型
结合多种神经网络结构和 算法,实现更高效和准确 的预测。
MATLAB神经网络工具箱未来发展方向
集成更多算法
不断集成最新的神经网络算法,满足不同领域 的需求。
优化工具箱性能
提高工具箱的运行速度和稳定性,降低使用门 槛。
增强可视化功能
提供更丰富的可视化工具,帮助用户更好地理解和分析神经网络。
神经网络在人工智能领域的应用前景
MATLAB神经网络
02
工具箱
Matlab_神经网络工具箱(GUI界面的使用方法)(看完)
2014-2-20
11
• <step.4>训练网络 • Network/Data Manager窗口中选中network1, 双击或Open…。打开如下图 • 在Train中,见下页图,
2014-2-20
12
2014-2-20
13
可以看出,该窗口为一个多页面对话框,在 Train 页面有2个子页面: ●Training :训练数据(Training Data)的输入 向量(Inputs )选择为p,目标向量(Targets)选 择为t;训练结果(Training Results)的输出变 量(outputs ) 和误差性能变量(Errors)采用 系统自动生成的network1 _ output,和 network1 _ errors,当然它们也可以由用户重 新定义。
22
2014-2-20
19
• <step.6>结果Export和Save • Network/Data Manager窗口中点击Export… • 选择一个或多个变量,Export(导出至 Workspace)或Save(存储为*.mat文件)
2014-2-20
20
• <step.7>加载先前仿真过的网络于nntool • 假设已通过step 6将先前的网络等数据保存至 mat文件里,那么可以通过Import,将网络和 数据导入至nntool,过程同step.2中Load from disk file
2014-2-20
2
1图形用户界面简介 函数nntool 的详解见help文档。在MATLAB 命令窗口(cork\data manager(网络/ 数据管理器窗补如图1 所示。) (或点击Start/Toolboxes/Neural Network)
Matlab神经网络工具箱
wkj ek p j
W epT
delta学 习规则
对于多层感知器网络:扩展的delta学习规 则,BP算法
前馈神经网络及其主要方法
前馈神经网络(feed
forward NN):各神经元 接受前级输入,并输出到下一级,无反馈, 可用一有向无环图表示。 前馈网络通常分为不同的层(layer),第i层的 输入只与第i-1层的输出联结。 可见层:输入层(input layer)和输出层(output layer) 隐层(hidden layer) :中间层
a f (n) n
a
n
Sigmoid函数
Sigmoid
特性:
Function :
1 a f (n) 1 e n
值域a∈(0,1) 非线性,单调性 无限次可微 |n|较小时可近似线性 函数 |n|较大时可近似阈值 函数
en e n a tanh(n) n n e e
BP神经网络的特点
非线性映射能力 能学习和存贮大量输入-输出模式映射关系,而无需事 先了解描述这种映射关系的数学方程。只要能提供足 够多的样本模式对供网络进行学习训练,它便能完成 由n维输入空间到m维输出空间的非线性映射。
泛化能力 当向网络训练时输入未曾见过的非样本数据时,网络 也能完成由输入空间向输出空间的正确映射。这种能 力称为泛化能力。
1 1 T 2 J ( n ) ek ( n ) e ( n )e( n ) 2 k 2
1 1 T 2 J E ek (n ) E e (n )e(n ) 2 2 k
第八章 人工神经网络 19
误差纠正学习
wk J 对于感知器和线性网络:
Matlab神经网络工具箱(经典教程)
输入向量元素经加权矩阵 W 作用输入网络。
W= 注意加权矩阵 W 的行标标记权重的目的神经元,列标标记待加权的输入标号。因此,的
乘上权重
得到加权值输入求和节点。它们的和是 Wp,单行矩阵 W 和向量 p 的点乘。
这个神经元有一个偏置 b,它加在加权的输入上得到网络输入 n,和值 n 是转移函数 f 的参数。表达式自然可用 MATLAB 代码表示为: n =W*p + b
可是,用户很少要写如此底层的代码,因为这些代码已经被建立到函数中来定义和模拟 整个网络。上面所示的图包括了许多细节。当我们考虑有许多神经元和可能是许多神经元组 成的多层网络时,我们可能会漏掉许多细节。因此,作者设计了一个简洁的符号代表单个神 经元。这个符号如下图中所示,它将会在以后的多重神经元电路中用到。
标号表示从输入信号的第二个元素到第一个神经元的权重是 。有 S 个神经元和 R 个输入元 素的神经网络也能够简化成以下符号:
这里,p 是一个有 R 个元素的输入向量,W 是一个 SxR 的矩阵,a 和 b 是有 S 个元素 的向量。如前面所定义的,神经元层包括权重矩阵,乘法运算,偏置向量 b,求和符和转移 函数框。
神经网络领域已经有 50 年的历史了,但是实际的应用却是在最近 15 年里,如今神经网 络仍快速发展着。因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论 和设计过程都已牢固的建立和应用了好多年。我们没有把神经网络工具箱仅看作一个能正常 运行的建好的处理轮廓。我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能 够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工 具。因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用 它们,并且举例说明它们的成功和失败。我们相信要成功和满意的使用这个工具箱,对范例 和它们的应用的理解是很重要的,并且如果没有这些说明那么用户的埋怨和质询就会把我们 淹没。所以如果我们包括了大量的说明性材料,请保持耐心。我们希望这些材料能对你有帮 助。
第9章 MATLAB神经网络工具箱函数(教育课件)
研究学习
7
表1-1 神经网络的通用函数和功能
使网络的平均绝对误差和性能最小。平均绝对误 差性能函数的调用格式为:
perf=mae(E,w,pp) 式中 E为误差矩阵或向量(E=T-Y)。
研究学习
17
2.硬限幅传输函数hardlim( ) 硬限幅传输函数hardlim( )通过计算网络的输入得到
该层的输出。如果网络的输入达到门限,则硬限幅传 输函数的输出为1,否则为0。这表明神经元可用来作 出判断或分类。其调用格式为:
a= 1 -1 -1 1 11
研究学习
20
例1-2 建立一个感知机网络,使其能够完成“或”的 功能。 解 为了完成“或”函数,建立一个两输入、单输出 的一个单层感知机网络。 设输入向量为:X=[0 0 1 1;0 1 0 1],
目标向量为:T=[0 1 1 1]。 激活函数取硬限幅传输函数。
根据感知机学习算法的计算步骤,利用MATLAB 的神经网络工具箱的有关函数编写的程序如下。
>>N=-5:0.1:5; >>a=hardlim(N);plot(N,a)
研究学习 图2-1 硬限幅传输函数曲线 19
3.对称硬限幅传输函数hardlims( ) 对称硬限幅传输函数hardlims( )通过计算网络的
输入得到该层的输出。如果网络的输入达到门限, 则硬限幅传输函数的输出为1,否则为-1。例 >>w=eye(3);b=-0.5*ones(3,1); >>X=[1 0;0 1;1 1]; >>a=hardlims(w*X,b) 结果显示:
Matlab中的神经网络工具箱介绍与使用
Matlab中的神经网络工具箱介绍与使用神经网络是一种模拟人脑思维方式的计算模型,它通过由多个神经元组成的网络,学习数据的特征和规律。
在计算机科学领域,神经网络被广泛应用于模式识别、数据挖掘、图像处理等诸多领域。
Matlab作为一种功能强大的科学计算软件,提供了专门用于神经网络设计和实现的工具箱。
本文将介绍Matlab中的神经网络工具箱,并探讨其使用方法。
一、神经网络工具箱的概述Matlab中的神经网络工具箱(Neural Network Toolbox)是一款用于构建和训练神经网络的软件包。
它提供了丰富的函数和工具,可用于创建不同类型的神经网络结构,如前向神经网络、反向传播神经网络、径向基函数神经网络等。
神经网络工具箱还包括了各种训练算法和性能函数,帮助用户对神经网络进行优化和评估。
二、神经网络的构建与训练在使用神经网络工具箱前,我们需要先了解神经网络的基本结构和原理。
神经网络由输入层、隐藏层和输出层组成,每一层都包含多个神经元。
输入层接受外部输入数据,通过权重和偏置项传递给隐藏层,最终输出到输出层,形成网络的输出结果。
构建神经网络的第一步是定义网络的结构,可以使用神经网络工具箱中的函数创建不同层和神经元的结构。
例如,使用feedforwardnet函数可以创建一个前向神经网络,输入参数指定了每个隐藏层的神经元数量。
然后,可以使用train函数对神经网络进行训练。
train函数可以选择不同的训练算法,如标准反向传播算法、Levenberg-Marquardt算法等。
通过设置训练参数,例如训练迭代次数和学习速率等,可以对网络进行优化。
三、神经网络的应用案例神经网络在许多领域都有广泛的应用,下面以图像分类为例,介绍如何使用神经网络工具箱来训练一个图像分类器。
首先,我们需要准备训练数据和测试数据。
训练数据通常包含一组已经标记好的图像和相应的标签。
为了方便处理,我们可以将图像转化为一维向量,并将标签转化为二进制编码。
MATLAB中的神经网络工具箱详解
MATLAB中的神经网络工具箱详解神经网络是一种模拟人脑神经系统工作方式的计算模型,广泛应用于科学、工程和金融等领域。
而在MATLAB软件中,也有专门的神经网络工具箱,提供了丰富的功能和算法,用于实现神经网络的建模、训练和应用。
本文将对MATLAB中的神经网络工具箱进行详细的解析和介绍。
一、神经网络基础知识在深入了解MATLAB神经网络工具箱之前,我们首先来了解一些神经网络的基础知识。
1. 神经元和激活函数神经元是神经网络的基本单位,它接收来自其他神经元的输入,并通过激活函数将输入转化为输出。
在MATLAB中,可以使用`newff`函数创建一个前馈神经网络,可以通过`sim`函数进行网络的模拟和计算。
2. 训练算法神经网络的训练是指通过一系列的输入和输出样本来调整网络的参数,使得网络能够正确地学习和推断。
常用的训练算法包括误差逆传播算法(Backpropagation)、Levenberg-Marquardt算法等。
在MATLAB中,可以使用`train`函数进行网络的训练,可以选择不同的训练算法和参数。
二、MATLAB神经网络工具箱的使用1. 创建神经网络对象在MATLAB中,可以使用`newff`函数创建一个前馈神经网络对象,该函数的参数包括网络的结构、激活函数等。
例如,`net = newff(input, target, hiddenSize)`可以创建一个具有输入层、隐藏层和输出层的神经网络对象。
2. 设置神经网络参数创建神经网络对象后,可以使用`setwb`函数设置网络的权重和偏置值,使用`train`函数设置网络的训练算法和参数。
例如,`setwb(net, weights, biases)`可以设置网络的权重和偏置值。
3. 神经网络的训练神经网络的训练是通过提供一系列的输入和输出样本,调整网络的参数使得网络能够正确地学习和推断。
在MATLAB中,可以使用`train`函数进行网络的训练,该函数的参数包括训练集、目标值、训练算法和其他参数。
Matlab的BP神经网络工具箱及其在函数逼近中的应用
Matlab的BP神经⽹络⼯具箱及其在函数逼近中的应⽤1.神经⽹络⼯具箱概述Matlab神经⽹络⼯具箱⼏乎包含了现有神经⽹络的最新成果,神经⽹络⼯具箱模型包括感知器、线性⽹络、BP⽹络、径向基函数⽹络、竞争型神经⽹络、⾃组织⽹络和学习向量量化⽹络、反馈⽹络。
本⽂只介绍BP神经⽹络⼯具箱。
2.BP神经⽹络⼯具箱介绍BP神经⽹络学习规则是不断地调整神经⽹络的权值和偏值,使得⽹络输出的均⽅误差和最⼩。
下⾯是关于⼀些BP神经⽹络的创建和训练的名称:(1)newff:创建⼀前馈BP⽹络(隐含层只有⼀层)(2)newcf:创建⼀多层前馈BP⽹络(隐含层有多层)(3)train:训练⼀个神经⽹络(4)sim:仿真⼀个神经⽹络以上⼏个是最主要的语句,在后⾯的实例应⽤中会详细说明⽤法。
3.BP神经⽹络⼯具箱在函数逼近中的应⽤BP神经⽹络具有很强的映射能⼒,主要⽤于模式识别分类、函数逼近、函数压缩等。
下⾯通过实例来说明BP⽹络在函数逼近⽅⾯的应⽤。
本⽂需要逼近的函数是f(x)=1+sin(k*pi/2*x),其中,选择k=2进⾏仿真,设置隐藏层神经元数⽬为n,n可以改变,便于后⾯观察隐藏层节点与函数逼近能⼒的关系。
3.1 k=2,n=5时的仿真实验先作出⽬标曲线的图形,以下为matlab代码:clear allclc%%%%%%%%%%设置⽹络输⼊值和⽬标值%%%%%%%%%%k=2;%f(x)中的k值x=[-1:.05:8];f=1+sin(k*pi/2*x);plot(x,f,'-');title('要逼近的⾮线性函数');xlabel('时间');ylabel('⾮线性函数');接着⽤newff函数建⽴BP神经⽹络结构,以下为matlab代码:%%%%%%%%%%建⽴⽹络%%%%%%%%%%n=5;%隐藏层节点数net = newff(minmax(x),[n,1],{'tansig' 'purelin'},'trainlm');%对于初始⽹络,可以应⽤sim()函数观察⽹络输出。
MATLAB神经网络工具箱
用图形用户界面(GUI)实现
用图形用户界面(GUI)实现
Step5: 没训练时仿真
用图形用户界面(GUI)实现
Step6: BP网络训练
训练参数设置:
用图形用户界面(GUI)实现
训练结果:
用图形用户界面(GUI)实现
用图形用户界面(GUI)实现
Step7: 训练后仿真
用图形用户界面(GUI)实现
采用函数编程的方法实现
Step1: 将要逼近的非线性函数设为正弦函数
k = 1; p = [-1:.05:1];
t = sin(k*pi*p);
plot(p,t,'-')
title('要逼近的非线性函数');
xlabel('时间'); ylabel('非线性函数');
采用函数编程的方法实现
Step 2: 网络建立
参数含义
训练步数 显示训练结果的间隔步数
默认值
100 25
Hale Waihona Puke net.trainParam.goal
net.trainParam.time net.trainParam.lr
训练目标误差
训练允许时间 学习率
0
INf 0.01
BP网络的实例分析
BP网络用于曲线拟合实例:
设计要求:设计一个简单的BP网络,实现对非线性函数的逼 近。通过改变该函数的参数以及BP网络隐层神经元的数目, 来观察训练时间以及训练误差的变化情况。 (假设逼近函数为正弦函数:y=sin(k*pi*p),其中k可以调 节。) 方法一:采用函数编程的方法实现。 方法二:采用图形用户界面(GUI)实现。
采用函数编程的方法实现
Matlab神经网络工具箱介绍(Neural Network Toolbox)
2020/5/6
10
• <step.3>建立网络
• Network/Data
Manager窗口中New… 打开Create Network or Data,如右图。
• Name:定义网络名为 network1
• 选择Input/Target Data,设置训练函数等参 数。
• View:查看模型
2020/5/6
f ( p)
Forecasting error xn1 t '
2020/5/6
6
• <step.1>数据构造与预处理 •
2020/5/6
7
• <step.2>训练数据导入nntool
• 根据数据的多少,数据文件的格式等获取样本 数据的方法有:
• 1)直接输入数据:通过采用元素列表方式输 入。适用于样本数目较少时。New…按钮
2020/5/6
21
总结
需要注意的是,源文件名及路径名不能是汉 字,否则导致读取文件失败。
本部分介绍了MATLAB 神经网络工具箱的 图形用户界面,为尚不熟悉以MATLAB 编程进 行神经网络设计与仿真的用户提供了一个非常 好的交互式图形界,使得神经网络的设计和仿真 变得轻而易举。
2020/5/6
22
单击Simulate Network按钮,则在Network/ Data Manager窗口的Outputs和Errors区域分 别显示出相应的仿真结果,选中变量名,单击该 窗口的Open按钮,弹出数据窗口,在该窗口可以 查看仿真结果的具体数据,如图 所示。
2020/5/6
19
• <step.6>结果Export和Save
matlab神经网络工具箱简介和函数及示例参考PPT
代码运行结果: 网络训练误差
结论:隐含层节点设为8
BP网络训练步骤
步骤1: 初始化 步骤2:计算网络各层输出矢量 步骤3:计算网络各层反向传播的误差变化,并计算各 层权值的修正值及修正值 步骤4:再次计算权值修正后的误差 平方和 步骤5:检查误差 平方和是否小于 误差期望值,若是, 停止训练,否则继续.
函数类型 输入函数
其它
函数名 称
netsum netprcd concur dotprod
函数用途
输入求和函数 输入求积函数 使权值向量和阈值向量的结构一致 权值求积函数
BP网络的神经网络工具箱函数
函数类型
函数名称 函数用途
前向网络创建 函数
传递函数
学习函数
函数类型 性能函数 显示函数
函数名 函数用途 称
MATLAB的神经网络工具箱函
数
函数类型
通用函数
函数名 函数用途 称
仿真函数 训练函数
学习函数 初始化函数
SIM train trainh adapt learn int intlay
针对给定的输入,得到网络输出 调用其它训练函数,对网络进行训练 对权值和阈值进行训练 自适应函数 网络权值和阈值的学习 对网络进行初始化 对多层网络初始化
说明:
参数TFi可以采用任意的可微传递函数,比如transig, logsig和purelin等; 训练函数可以是任意的BP训练函数,如trainm,trainbfg, trainrp和traingd等。BTF默认采用trainlm是因为函数的速度 很快,但该函数的一个重要缺陷是运行过程会消耗大量的内 存资源。如果计算机内存不够大,不建议用trainlm,而建议 采用训练函数trainbfg或trainrp。虽然这两个函数的运行速度 比较慢,但它们的共同特点是内存占用量小,不至于出现训 练过程死机的情况。
MATLAB神经网络工具箱
MATLAB神经网络工具箱与液位控制BP 模型的设计与仿真随着科学技术的发展,在控制领域中被控对象变得越来越复杂,控制系统呈现出复杂的非线性、时变及不确定性的特点,难于精确建模,有的虽然可以建立粗略的模型,但求解困难。
人工神经网络具有一定的自学习、自适应和非线性映射能力及容错性等优点,为解决复杂的非线性、不确定、不确知系统的控制问题开辟了一条新的途径。
其中,BP 网络,即基于误差反向传播算法的多层前馈神经网络,由于它可以以任意精度逼近任意的连续函数,因此被广泛应用于非线性建模、函数逼近、模式分类、智能控制及预测等领域。
MATLAB神经网络工具箱是以神经网络理论作为背景的专业工具箱,本文针对某发电厂液位控制建立BP 预测模型,利用目前工程领域流行的MATLAB 6.1中提供的神经网络工具箱,对网络模型进行训练和仿真,给出优化的BP 模型实现步骤。
MATLAB及其神经网络工具箱MATLAB是由MATHWORKS公司开发的一个高性能的技术计算语言。
它在一个简单易用的交互式环境中集成了计算、可视化和程序设计等强大的功能。
神经网络工具箱是MATLAB中集成的一个重要工具箱,工具箱中提供了面向不同神经网络模型特别是BP网络模型的丰富多彩的网络学习和训练函数,其中包括了BP算法和各种改进BP算法,为神经网络的仿真分析提供了极大的方便,从而使MATLAB成为目前世界上最为流行的神经仿真平台。
用户只要调用工具箱中相关函数并输入参数,就可以完成相应的训练仿真。
在本文液位控制BP模型的设计与仿真研究中,主要用到以下几个函数及其主要参数:1)Newff格式: net = newff(PR,[S1 S2… S nl],{TF1 TF2… TF nl},BTF,BLF,PF)其中net是神经网络名;S i是第i层神经网络的神经元个数,网络共有nl层;TFi 是第i层网络神经元的转移函数,缺省为tansig; BTF是BP训练函数,缺省为trainlm;BLF 是学习函数,缺省为learngdm;PF是性能函数,缺省为mse。
Matlab神经网络工具箱函数 说明书
MATLAB神经网络工具箱函数说明:本文档中所列出的函数适用于MATLAB5.3以上版本,为了简明起见,只列出了函数名,若需要进一步的说明,请参阅MATLAB的帮助文档。
1. 网络创建函数newp 创建感知器网络newlind 设计一线性层newlin 创建一线性层newff 创建一前馈BP网络newcf 创建一多层前馈BP网络newfftd 创建一前馈输入延迟BP网络newrb 设计一径向基网络newrbe 设计一严格的径向基网络newgrnn 设计一广义回归神经网络newpnn 设计一概率神经网络newc 创建一竞争层newsom 创建一自组织特征映射newhop 创建一Hopfield递归网络newelm 创建一Elman递归网络2. 网络应用函数sim 仿真一个神经网络init 初始化一个神经网络adapt 神经网络的自适应化train 训练一个神经网络3. 权函数dotprod 权函数的点积ddotprod 权函数点积的导数dist Euclidean距离权函数normprod 规范点积权函数negdist Negative距离权函数mandist Manhattan距离权函数linkdist Link距离权函数4. 网络输入函数netsum 网络输入函数的求和dnetsum 网络输入函数求和的导数5. 传递函数hardlim 硬限幅传递函数hardlims 对称硬限幅传递函数purelin 线性传递函数tansig 正切S型传递函数logsig 对数S型传递函数dpurelin 线性传递函数的导数dtansig 正切S型传递函数的导数dlogsig 对数S型传递函数的导数compet 竞争传递函数radbas 径向基传递函数satlins 对称饱和线性传递函数6. 初始化函数initlay 层与层之间的网络初始化函数initwb 阈值与权值的初始化函数initzero 零权/阈值的初始化函数initnw Nguyen_Widrow层的初始化函数initcon Conscience阈值的初始化函数midpoint 中点权值初始化函数7. 性能分析函数mae 均值绝对误差性能分析函数mse 均方差性能分析函数msereg 均方差w/reg性能分析函数dmse 均方差性能分析函数的导数dmsereg 均方差w/reg性能分析函数的导数8. 学习函数learnp 感知器学习函数learnpn 标准感知器学习函数learnwh Widrow_Hoff学习规则learngd BP学习规则learngdm 带动量项的BP学习规则learnk Kohonen权学习函数learncon Conscience阈值学习函数learnsom 自组织映射权学习函数9. 自适应函数adaptwb 网络权与阈值的自适应函数10. 训练函数trainwb 网络权与阈值的训练函数traingd 梯度下降的BP算法训练函数traingdm 梯度下降w/动量的BP算法训练函数traingda 梯度下降w/自适应lr的BP算法训练函数traingdx 梯度下降w/动量和自适应lr的BP算法训练函数trainlm Levenberg_Marquardt的BP算法训练函数trainwbl 每个训练周期用一个权值矢量或偏差矢量的训练函数 11. 分析函数maxlinlr 线性学习层的最大学习率errsurf 误差曲面12. 绘图函数plotes 绘制误差曲面plotep 绘制权和阈值在误差曲面上的位置plotsom 绘制自组织映射图13. 符号变换函数ind2vec 转换下标成为矢量vec2ind 转换矢量成为下标矢量 14. 拓扑函数gridtop 网络层拓扑函数hextop 六角层拓扑函数randtop 随机层拓扑函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-1
1
MATLAB 2009b的神经网络工具箱neural network toolbox提供了图形用户界面(graph user interface , GUI) ,从而使用户在图形 界面上,通过与计算机的交互操作设计和仿真 神经网络,使得神经网络的设计和仿真变得简 单易学.
2013-8-1
11
• <step.4>训练网络 • Network/Data Manager窗口中选中network1, 双击或Open…。打开如下图 • 在Train中,见下页图,
2013-8-1
12
2013-8-1
13
可以看出,该窗口为一个多页面对话框,在 Train 页面有2个子页面: ●Training :训练数据(Training Data)的输入 向量(Inputs )选择为p,目标向量(Targets)选 择为t;训练结果(Training Results)的输出变 量(outputs ) 和误差性能变量(Errors)采用 系统自动生成的network1 _ output,和 network1 _ errors,当然它们也可以由用户重 新定义。
2013-8-1
2
1图形用户界面简介 函数nntool 的详解见help文档。在MATLAB 命令窗口(command window)输入nntool, 按 Enter后即可打network\data manager(网络/ 数据管理器窗补如图1 所示。) (或点击Start/Toolboxes/Neural Network)
2013-8-1
5
• <step.1>数据构造与预处理 • Time Series Forecasting
Given time series :{x1 , x2 ,..., xn 1 , xn }, in order to forecast xn 1 Consider , x2 … xd x1 xd 1 x2 x3 … xd 1 xd 2 X Y … … … … … xn d xn d 1 … xn 1 xn by learning , there ' s a pattern f , which Y f ( X ) then if p xn d 1 xn d 2 … xn is available,
2013-8-1
14
●TrainingParameters :设置训练的各种参数, 这要根据具体训练和学习函数进行确定,相关内 容可参看各神经网络模型的训练和学习算法。 本例采用其默认值即可。
• epochs:训练的最大循环次数 • goal:性能目标 • max_fail:最大验证数据失败的次数 • mem_reduc:降低内存需求的系数 • min_grad:最小性能梯度 • mu:动量的初始值 • mu_dec:动量减少系数 • mu_inc:动量增加系数 • mu_max:动量最大值 • show:每格多少训练循环次数会 显示训练过程 • time:最大的训练所须时间, 单位为秒
22
2013-8-1
19
• <step.6>结果Export和Save • Network/Data Manager窗口中点击Export… • 选择一个或多个变量,Export(导出至 Workspace)或Save(存储为*.mat文件)
2013-8-1
20
• <step.7>加载先前仿真过的网络于nntool • 假设已通过step 6将先前的网络等数据保存至 mat文件里,那么可以通过Import,将网络和 数据导入至nntool,过程同step.2中Load from disk file
' hence, t ' xn 1 f ( p )
Forecasting error xn 1 t '
2013-8-1 6
• <step.1>数据构造与预处理 •
2013-8-1
7
• <step.2>训练数据导入nntool • 根据数据的多少,数据文件的格式等获取样本 数据的方法有: • 1)直接输入数据:通过采用元素列表方式输 入。适用于样本数目较少时。New…按钮 • 2)Import from Matlab Workspace:Import… 按钮。 • 3)Load from disk file:适合从M-file 文件中 读取数据。 Import…按钮。
2013-8-1
8
2013-8-1
Import from M file
2013-8-1 10
• <step.3>建立网络 • Network/Data
Manager窗口中New… 打开Create Network or Data,如右图。 • Name:定义网络名为 network1 • 选择Input/Target Data,设置训练函数等参 数。 • View:查看模型
2013-8-1
3
•
2013-8-1
图1 图形用户界面
4
• 2.nntool使用过程与实例
• • • • • • • <step.1>数据构造与预处理 <step.2>训练数据导入nntool <step.3>建立网络 <step.4>训练网络 <step.5>仿真网络 <step.6>输出与存储模拟结果 <step.7>加载先前仿真过的网络于nntool
2013-8-1
15
以上过程完成后,单击该页面的Train Network 按钮,开始训练,其训练过程如图9所示。
Algorithms:相关参数 Progress:终止条件(只要 一个满足则停止) Plots:各种图形曲线
2013-8-1
图9 训练误差性能曲线
16
训练完成后,在Network/Data Manager窗口 可以看到,在Outputs区域显示出输出变量名 network1 _outputs,在Errors区域显示出误差 性能变量名network1 _ errors。选中变量名,单 击该窗口的Open按钮,则弹出数据(Data)窗口, 在该窗口可以查看到该所选中变量的具体数据。
2013-8-1
17
• <step.5>仿真 • Network/Data Manager窗口中选中network1, 双击或Open…。 • 在Simulate中,见图,
2013-8-1
18
将仿真数据选择为testX,仿真结果选择为 network1_outputs_sim;Targets选为TestY, 误差errors为network1_errors_sim。 单击Simulate Network按钮,则在Network/ Data Manager窗口的Outputs和Errors区域分 别显示出相应的仿真结果,选中变量名,单击该 窗口的Open按钮,弹出数据窗口,在该窗口可以 查看仿真结果的具体数据,如图 所示。
2013-8-1
21
总结 需要注意的是,源文件名及路径名不能是汉 字,否则导致读取文件失败。 本部分介绍了MATLAB 神经网络工具箱的 图形用户界面,为尚不熟悉以MATLAB 编程进 行神经网络设计与仿真的用户提供了一个非常 好的交互式图形界,使得神经网络的设计和仿真 变得轻而易举。
2013-8-1