当前位置:首页 >> 计算机软件及应用 >>

Matlab神经网络工具箱_图文

MATLAB神经网络工具箱

人工神经网络的特点
自学习
自适应 并行处理 分布表达与计算

人工神经网络的应用
? ANN本质上可以理解为函数逼近,可以应用到

众多领域。

优化计算
信号处理 智能控制 模式识别 机器视觉等

生物神经元 生物神经网络:Biological Neural Network (BNN) ? 神经元:neuron
?

?神经元经突触传递信号给其他神经元(胞体或树 突) ?1011个神经元/人脑 ?104个连接/神经元

神经元

生物神经元
电脉冲 输 入 树 突 细胞体 信息处理 形成 轴突 传输 突 触 输 出

图 12.2 生物神经元功能模型 黑箱
一般而言, ANN与经典计算方法相比并非优越, 只有当常规方法解决不了或效果 不佳时ANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模 型表示的系统,如故障诊断、特征提取和预测等问题,ANN往往是最有利的工具。另

一方面, ANN对处理大量原始数据而不能用规则或公式描述的问题, 表现出极大的灵
活性和自适应性。

人工神经元
? Neuron

Model: 多输入,单输出,带偏置

1. R个输入pi∈R,即 R维输入矢量p 2. n: net input, n=wp+b。
? R个权值wi∈R,即 R维权向量w ? 阈值b

3. 输出a=f(n), f: transfer function 激励函数或 传递函数

常用激励函数(传递函数)
? 阈值函数

?1 (n ? 0) a ? f (n) ? hardlim(n) ? ? ?0 (n ? 0)
a 1 -1

-b

Wp

线性激励函数
?

Purelin Transfer Function :

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

ANN 结构 (连接)

单层前向网络

y1
w1m

y2
. . .
w21 w22w2m

yn
wn1 w n2 wnm

w11 w12

x1

x2

xm

多层前向网络
y1 y2
. . .

yn

Output Layer Hidden Layer Input Layer
x1 x2

. . .
. . .

. . .

xm

单层 反馈网络

y1

y2
. . .

yn

x1

x2

xm

多层反馈网络
y1 y2
. . .

y3

. . .

x1

x2

x3

神经网络的学习方法
? 神经网络的学习(learning)

:从环境中获取知识并改 进自身性能,主要指调节网络参数使网络达到某种 度量,又称为网络的训练(training) ? 学习方式: ?监督学习(supervised learning)或有导师学习 ?非监督学习(unsupervised learning)或无导师学习 ?强化学习(reinforcement learning) ? 学习规则(learning rule): ?Hebb学习算法 ?误差纠正学习算法 ?竞争学习算法

监督学习
? ?

对训练样本集中的每一组输入能提供一组目标 输出 网络根据目标输出与实际输出的误差信号来调 节网络参数 导师
t(n) 期望输出

环境

输入

实际输出

神经网络
a(n)

比较

p(n)

误差信号
e(n)

非监督学习与强化学习
? 非监督学习:不存在导

师,网络根据外部数据 的统计规律来调节系统 参数,以使网络输出能 反映数据的某种特性 ? 强化学习:外部环境对 网络输出只给出评价信 息而非正确答案,网络 通过强化受奖励的动作 来改善自身的性能

输入

环境
输出

神经网络

环境

输入 神经网络

评价信息

误差纠正学习
? 对于输出层第k个神经元的

实际输出: ak(n) 目标输出: tk(n) 误差信号: ek(n) = tk(n) - ak(n) 目标函数为基于误差信号ek(n)的函数,如误差平方 和判据(sum squared error, SSE),或均方误差判据 (mean squared error, MSE, 即SSE对所有样本的期望)
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 ? 对于感知器和线性网络:
? 梯度下降法:

?wkj ? ?ek p j
?W ? ?epT
?

delta学 习规则

对于多层感知器网络:扩展的delta学习规 则,BP算法

前馈神经网络及其主要方法
? 前馈神经网络(feed

forward NN):各神经元 接受前级输入,并输出到下一级,无反馈, 可用一有向无环图表示。 ? 前馈网络通常分为不同的层(layer),第i层的 输入只与第i-1层的输出联结。 ? 可见层:输入层(input layer)和输出层(output layer) ? 隐层(hidden layer) :中间层

前馈网络

训练一个单层感知器
Training Set T ? (x (1) , d (1) ), ( x (2) , d ( 2) ),? , ( x ( p ) , d ( p ) )

?

?

y1 d1
w11

y2 d2
w1m

. . .
w2m wn1

yn

Goal:
y
(k ) i T (k ) f ( w ) ? i x

. . .

dn
wn2 wnm

w12

w21

w22

? m (k ) (k ) ? ? f ? ? wil xl ? ? di ? l ?1 ?
? i ? 1, 2,?, n k ? 1, 2,?, p

x1

x2

. . .

xm-1 xm= ?1

感知器学习规则

?w ? ? ex
Learning Rate Error (d ? y) Input

感知器学习规则

x

. . .

. . .

y
?
+

?w ? ? (d ? y )x

?

d

BP神经网络
?

Rumelhart,McClelland于1985年提出了BP网络的误差反向 后传BP(Back Propagation)学习算法

David Rumelhart ?

J. McClelland

BP算法基本原理 ? 利用输出后的误差来估计输出层的直接前导层的误差 ,再用这个误差估计更前一层的误差,如此一层一层 的反传下去,就获得了所有其他各层的误差估计。

BP神经网络的特点
? 非线性映射能力 ? 能学习和存贮大量输入-输出模式映射关系,而无需事 先了解描述这种映射关系的数学方程。只要能提供足 够多的样本模式对供网络进行学习训练,它便能完成 由n维输入空间到m维输出空间的非线性映射。

? 泛化能力 ? 当向网络训练时输入未曾见过的非样本数据时,网络 也能完成由输入空间向输出空间的正确映射。这种能 力称为泛化能力。
? 容错能力 ? 输入样本中带有较大的误差甚至个别错误对网络的输 入输出规律影响很小。

BP神经网络模型
? 是一种多层前馈神经网络

BP神经网络模型
? 激励函数

?必须处处可导
? 一般都使用S型函数 ? 使用S型激励函数时BP网络输入与输出关系

?输入

?输出

net ? x1w1 ? x2 w2 ? ... ? xn wn
1 y ? f (net ) ? 1 ? e ? net

BP网络的标准学习算法
? 学习的过程:

? 神经网络在外界输入样本的刺激下不断改变网 络的连接权值,以使网络的输出不断地接近期 望的输出。 ? 学习的本质: ? 对各连接权值的动态调整 ? 学习规则: ? 权值调整规则,即在学习过程中网络中各神经 元的连接权变化所依据的一定的调整规则。

BP网络的标准学习算法-算法思想
? 学习的类型:有导师学习 ? 核心思想:

? 将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有 单元---各层单元的误 差信号
? 学习的过程:

修正各单元权 值

? 信号的正向传播

误差的反向传播

BP网络的标准学习算法-学习过程
?

正向传播:
? 输入样本---输入层---各隐层---输出层

?

判断是否转入反向传播阶段:
? 若输出层的实际输出与期望的输出(导师信号)不 符

?

误差反传
? 误差以某种形式在各层表示----修正各层单元 的权值
?

网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止

径向基函数网络RBF
? 径向基函数网络:只有一个隐层,隐层单元采用径

向基函数。隐层把原始的非线性可分的特征空间变 换到另一个空间(通常是高维空间),使之可以线 性可分。 ? 输出为隐层的线性加权求和。采用基函数的加权和 来实现对函数的逼近。 ? 径向基函数(radial basis function, RBF):径向对称 的标量函数k(||x-xc||),最常用的RBF是高斯核函数

(x ? x c ) (x ? x c ) k ( x ? x c ) ? exp( ? ) 2 2?
T

径向基函数网络结构

MATLAB神经网络工具箱

神经元模型
Neuron Model: 多输入,单输出,带偏置
?输入:R维列向量

p ? [ p1,? pR ]T
阈值:标量 b

?权值:R维行向量 w ? [w11 ,? w1R ] ?求和单元 n ? ? p w ?b i 1i
i ?1 R

?传递函数 f ?输出

a ? f ( wp ? b)

常用传递函数
? 阈值函数
?1 (n ? 0) MATLAB函数: hardlim a ? f (n) ? hardlim(n) ? ? ?0 (n ? 0)

a 1 -1

-b

Wp

? 1 (n ? 0) a ? f (n) ? hardlim(n) ? ? ??1 (n ? 0)

MATLAB函数: hardlims

线性函数
?

Purelin Transfer Function :

a ? f (n) ? n

a

n

MATLAB函数: purelin

Sigmoid函数
? Sigmoid
? 特性:

Function :

?值域a∈(0,1) ?非线性,单调性 ?无限次可微 ?|n|较小时可近似线性 函数 ?|n|较大时可近似阈值 函数

对数Sigmoid函数 1 a ? f (n) ? 1 ? e? n

正切Sigmoid函数
en ? e? n a ? tanh(n) ? n ? n e ?e

MATLAB函数: logsig(对数), tansig(正切)

单层神经网络模型
R维输入, S个神经元的单层神经网络模型

? w11 ?w W ? ? 21 ?? ? ? wS 1

w12 ? w1R ? w21 ? w2 R ? ? ? ? ?? ? wS 1 ? wSR ?

? b1 ? ?b ? b ? ? 2? ??? ? ? ?bS ?

a ? f (Wp + b)

多层神经网络模型

多层神经网络简化表示

前馈神经网络
? 前馈神经网络(feed

forward NN):各神经元 接受前级输入,并输出到下一级,无反馈, 可用一有向无环图表示。 ? 前馈网络通常分为不同的层(layer),第i层的 输入只与第i-1层的输出联结。 ? 可见层:输入层(input layer)和输出层(output layer) ? 隐藏层(hidden layer) :中间层

感知器(perceptron):
? ?

单层前馈网络 传递函数为阈值函数

? 主要功能是模式分类

感知器的生成
函数newp用来生成一个感知器神经网络

newp

net = newp( pr, s, tf, lf )

? net: 函数返回参数,表示生成的感知器网络

? pr: 一个R×2矩阵, 由R维输入向量的每维最小值和最
大值组成 ? s: ? tf: ? lf: 神经元的个数 感知器的传递函数, 默认为hardlim, 可选hardlims 感知器的学习函数,默认为learnp, 可选learnpn

net = newp([-2,+2;-2,+2],2) %生成一个二维输入,两个神经元的感知器

感知器的权值和阈值初始化
? newp默认权值和阈值为零(零初始化函数initzero). net = newp([-2,+2;-2,+2],2); W=net.IW{1,1} %显示网络的权值 b=net.b{1} %显示网络的阈值 W= 0 0 b= 0

0 0

0

? 改变默认初始化函数为随机函数rands net.inputweights{1,1}.InitFcn = ‘rands’; net.biases{1}.InitFcn = ‘rands’; net =init(net); %重新初始化

? 直接初始化定义权值和阈值 net.IW{1,1}=[1 2]; net.b{1}=1

感知器学习
? 感知器学习算法
权值增量: 阈值增量: 权值更新: 阈值更新:

?W ? (t ? a) pT ? epT
?b ? t ? a ? e

W new ? W old ? ?W bnew ? bold ? ?b

? 算法改进
(t ? a) pT epT ?W ? ? p p

输入样本归一化

权值和阈值训练与学习函数
设计好的感知器并不能马上投入使用. 通过样本训练, 确定感知器的权值和阈值.

train

net=train(net, P, T)

被训练网络

输入向量

目标向量

net.trainParam.epochs=10 ; %预定的最大训 练次数为10, 感知器经过最多训练10次后停止,

adapt

net=adapt(net, P, T) 自适应训练函数

权值和阈值学习函数
learnp
dW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS) dW:权值或阈值的增量矩阵 W:权值矩阵或阈值向量 P:输入向量 T:目标向量 E:误差向量 其他可以忽略,设为[ ]

learnpn

归一化学习函数

网络仿真函数
sim
a = sim(net, P)

网络输出

输入向量

?分类结果显示绘图函数

plotpv plotpc

plotpv(P,T)

画输入向量的图像

plotpc(W,b)

画分类线

例: 创建一个感知器
根据给定的样本输入向量P和目标向量T, 以及需分类 的向量组Q, 创建一个感知器, 对其进行分类.
P=[-0.5 -0.6 0.7;0.8 0 0.1]; T=[1 1 0]; net=newp([-1 1;-1 1],1); %已知样本输入向量 %已知样本目标向量 %创建感知器

handle=plotpc(net.iw{1},net.b{1});
net.trainParam.epochs=10; net=train(net,P,T); Q=[0.6 0.9 -0.1;-0.1 -0.5 0.5];

%返回划线的句柄
% 设置训练最大次数 %训练网络 %已知待分类向量

Y=sim(net,Q);
figure; plotpv(Q,Y); handle=plotpc(net.iw{1},net.b{1},handle)

%二元分类仿真结果
%新建图形窗口 %画输入向量 %画分类线

BP网络
? 多层前馈网络

? 传递函数:隐层采用S形函数,输出层S形函数或线性函数

? 主要功能: 函数逼近, 模式识别, 信息分类,数据压缩

BP网络的生成
newff
函数newff用来生成一个BP网络
net=newff(PR,[S1 S2...SN],{TF1 TF2... TFN},BTF,BLF,PF) PR: 一个R×2矩阵, 由R维输入向量的每维最小值和最大值组成 Si: 第i层的神经元个数 TFi: 第i层的传递函数, 默认为tansig BTF: 训练函数, 默认为trainlm BlF: 学习函数, 默认为learngdm PF: 性能函数, 默认为mse net=newff([0,10;-1,2],[5,1],{‘tansig’,’purelin’},’trainlm’);
%生成一个两层BP网络,隐层和输出层神经的个数为5和1, 传递函数分别为 tansig和purelin, 训练函数为trainlm, 其他默认

BP网络的初始化
newff 函数在建立网络对象的同时, 自动调用初始化函数, 根据缺省的参数对网络的连接权值和阈值. 使用函数init可以对网络进行自定义的初始化. 通过选择 初始化函数, 可对各层连接权值和阈值分别进行不同的初始 化.

BP网络的学习规则
权值和阈值的调节规则采用误差反向传播算法(back propagation). 反向 传播算法分二步进行,即正向传播和反向传播。

1.正向传播
输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层 之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对 下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比 较,如果现行输出不等于期望输出,则进入反向传播过程。

2.反向传播
反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个 隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。

BP算法实质是求取误差函数的最小值问题。这种算法采用非 线性规划中的最速下降方法,按误差函数的负梯度方向修改 权系数。

BP网络的快速学习算法与选择
MATLAB神经网络工具箱对常规BP算法进行改进,提供 了一系列快速算法,以满足不同问题的需要
学习算法 trainlm trainrp 适用问题类型
函数拟合

收敛性能
收敛快,误差小

占用存储空间


其他特点
性能随网络规模 增大而变差 性能随网络训练 误差减小而变差 尤其适用于网络 规模较大的情况 计算量岁网络规 模的增大呈几何 增长 适用于提前停止 的方法

模式分类 函数拟合 模式分类 函数拟合

收敛最快 收敛较快 性能稳定 收敛较快

较小

trainscg
trainbfg traingdx

中等

较大

模式分类

收敛较慢

较小

BP网络的训练
利用已知的”输入—目标”样本向量数据对网络进行训练, 采用train 函数来完成. 训练之前, 对训练参数进行设置 net = train(net, P, T)

训练参数
net.trainParam.epochs net.trainParam.show

参数含义
训练步数 显示训练结果的间隔步数

默认值
100 25

net.trainParam.goal
net.trainParam.time net.trainParam.lr

训练目标误差
训练允许时间 学习率

0
INf 0.01

BP网络的设计(1)
?网络层数
已经证明,单隐层的BP网络可以实现任意非线性映射. BP网络的隐层数一般不超过两层.

?输入层的节点数
输入层接收外部的输入数据, 节点数取决于输入向量 的维数

?输出层的节点数
输出层的节点数取决于输出数据类型和该类型所需 的数据大小. 对于模式分类问题,节点数为 log 2 m

BP网络的设计(2)
?隐层的节点数
隐层的节点数与求解问题的要求,输入输出单元数多 少有关. 对于模式识别/分类的节点数可按下列公式设计
n ? ni ? n0 ? a

其中 n 为隐层节点数, ni 为输入节点数, a 为1~10之间的整数

?传递函数
隐层传递函数采用S型函数, 输出层采用S型函数或 线性函数

?训练方法及其参数选择
针对不同应用, BP网络提供了多种训练学习方法.

BP网络设计实例
采用动量梯度下降算法训练BP网络. 训练样本
%定义训练样本 p=[-1 -1 3 1;-1 1 5 -3]; t=[-1 -1 1 1]; %创建一个新的BP网络 net=newff(minmax(p),[3 1],{'tansig','purelin'},'traingdm'); %设置训练参数 net.trainParam.epochs=1000; net.trainParam.goal=0.001; net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.mc=0.9; net=train(net,p,t); % 训练网络 A=sim(net,p) %网络仿真

训练误差变化曲线

训练误差变化曲线

目标线


相关文章:
MATLAB神经网络工具箱的详细使用步奏_图文.doc
神经网络| 工具箱| MATLAB神经网络工具箱的详细使用步奏_计算机软件及应用_IT/计算机_专业资料。详细介绍使用MATLAB神经网络工具箱的方法 在...
Matlab神经网络工具箱_图文.ppt
Matlab神经网络工具箱 - MATLAB神经网络工具箱 人工神经网络的特点
MATLAB 神经网络工具箱_图文.ppt
MATLAB 神经网络工具箱 - MATLAB神经网络工具箱 神经元模型 Neu
MATLAB神经网络工具箱_图文.ppt
MATLAB神经网络工具箱 - MATLAB神经网络工具箱 介绍及实验要求 神经
MATLAB神经网络工具箱及实验要求_图文.ppt
MATLAB神经网络工具箱及实验要求 - MATLAB神经网络工具箱 介绍及实验
Matlab神经网络工具箱使用教程_图文.pdf
Matlab神经网络工具箱使用教程_专业资料。Matlab神经网络工具箱使用教程 您的评论 发布评论 用户评价 Matlab神经网络工具箱使用教程,如何下载 2018-06-25 16:23:06...
Matlab神经网络工具箱(经典教程)_图文.pdf
Matlab神经网络工具箱(经典教程) - Matlab神经网络工具箱应用简介
Matlab-神经网络工具箱_图文.ppt
Matlab-神经网络工具箱 - 神经网络工具箱介绍 2016/12/11 1 MATLAB 2009b的神经网络工具箱neural network toolbox提供了图形用户界面(g...
matlab神经网络工具箱创建神经网络_图文.doc
matlab 神经网络工具箱创建神经网络为了看懂师兄的文章中使用的方法,研究了一
MATLAB 神经网络工具箱 神经网络模型_图文.ppt
MATLAB神经网络神经网络工 具箱中的神经网络 模型 神经网络工具箱简介 MATLAB 7对应的神经网络工具箱的版本为 Version 4.0.3,它以神经网络理论为基础,利用 ...
MATLAB神经网络工具箱1_图文.ppt
MATLAB神经网络工具箱1 - BP网络的初始化 newff 函数在建立网络对
MATLAB神经网络工具箱-精选文档_图文.ppt
MATLAB神经网络工具箱-精选文档 - MATLAB神经网络工具箱 介绍及实验
MATLAB神经网络工具箱中的神经网络模型_图文.ppt
MATLAB神经网络工具箱中的神经网络模型 - MATLAB神经网络工 具箱中的
第2章MATLAB神经网络工具箱函数_图文.ppt
第2章MATLAB神经网络工具箱函数 - 第2章 MATLAB神经网络 工具箱函数 2.1 MATLAB神经网络工具箱函数 2.2 MATLAB神经网络工具箱的图形用户界面 1 利用神经网...
Matlab_神经网络工具箱(GUI界面的使用方法)(看完)_图文.ppt
本部分介绍了MATLAB 神经网络工具箱的 图形用户界面,为尚不熟悉以MATLA
Matlab神经网络工具箱资料_图文.ppt
Matlab神经网络工具箱资料 - MATLAB神经网络工具箱 人工神经网络的特
MATLAB神经网络工具箱(函数拟合)_图文.ppt
MATLAB神经网络工具箱(函数拟合)_互联网_IT/计算机_专业资料。MATLAB神经网络工具箱 介绍及实验要求 神经元模型 Neuron Model: 多输入,单输出,带偏置 ?输入:R维列...
MATLAB神经网络工具箱_图文.ppt
MATLAB神经网络工具箱 - MATLAB神经网络工具箱 介绍及实验要求 神经
不错的Matlab神经网络工具箱实用指南.pdf
不错的Matlab神经网络工具箱实用指南 - Matlab 的神经网络工具箱实用
MATLAB 神经网络工具箱 神经网络模型_图文.ppt
MATLAB 神经网络工具箱 神经网络模型_计算机软件及应用_IT/计算机_专业资料。MATLAB MATLAB神经网络工 具箱中的神经网络 模型 神经网络工具箱简介 ? ? MATLAB 7...