常见的几种神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、线性神经网络
线性神经网络是最简单的一种神经元网络,它可以由
一个或多个线性神经元构成,每个神经元的激活函数 都是线性函数(purelin)。 线性神经元模型如图
线性神经元
输入 p1
w11
∑
pR
· · ·
p2
n
a
w1R
b
a pureline( wp b)
1、线性神经网络特点
线性神经网络类似于感知器,但是线性神经网络的激
3.感知器神经网络仿真设计分析
⑤plotpc函数 功能:在存在的图上绘制出感知器分类线函数。 格式:plotpc(W,B) plotpc(W,B,H) 说明:
plotpc(W,B)对含权矩阵W和阈值矩阵B的硬特
性神经元的两个或三个输入画一个分类线。这一函数 返回分类线的句柄以便以后调用。
对线性神经网络可以不经过训练直接求出网络的权值 和阈值,如果网络有多个零误差姐,则取最小的一组 权值和与之;如果网络不存在零误差解,则取网络的 误差平方和最小的一组权值和阈值。
另外,当不能直接求出网络权值和阈值时,线性神经 网络及自适应线性神经网络可采用使均方误差最小的 学习规则,即LMS算法,或称之为WH学习规则来 调整网络的权值和阈值,它是一种沿误差的最陡下降 方向对前一步权值向量进行修正的方法。
3.线性神经网络的MATLAB实现
线性神经网络创建函数和设计函数 ① newlin函数 功能:用于创建一线性层。 线性层通常做信号处理和预测中的自适应滤波器。 格式:net = newlin(P,S,ID,LR) 说明:P是以输入元素的最大和最小值组成的矩阵;s为 输出向量数目;ID为输入延迟向量;LR为学习速率; net为创建的线性层。
以上两个过程反复交替,直到达到收敛为止。
Hale Waihona Puke Baidu
3.BP网络的MATLAB实现
BP 神经网络创建函数 ①newcf函数 功能:用于创建一个级联前馈BP网络。 格式: net=newcf(PR,[S1,S2…SN],TF1TF2…TFN},BTF,BLF,PF) 说明:
3.感知器神经网络仿真设计分析
例1 给定样本输入向量P,目标向量T及需要进行分
类的输入向量组Q,设计一个单层感知器,对其进行 分类。
P=[-0.6 -0.7 0.8;0.9 0 1]; %输入向量 T=[1 1 0]; %目标向量 net=newp([-1 1;-1 1],1); %初始化感知器网络 net.trainParam.epochs=15; %设置训练次数最大为15 net=train(net,P,T); %训练感知器网络 Q=[0.5 0.8 -0.2;-0.2 -0.6 0.6]; %给定输入向量 Y=sim(net,Q); %仿真结果 plotpv(Q,Y) ; %绘制分类结果 h=plotpc(net.iw{1},net.b{1}) %绘制分类线 可见,经过两次训练后,网络目标误差达到要求。
3.线性神经网络的MATLAB实现
线性神经网络的应用 应用在模式分类中
应用在噪声对消中 应用在信号预测中
完成对胎儿 心率的检测 自适应滤 波方面
三、BP传播网络
反向传播网络(Back-Propagation Network,简称BP网络)是 将W-H学习规则一般化,对非线性可微分函数进行权值训 练的多层网络; 权值的调整采用反向传播(Back-propagation)的学习算法; 它是一种多层前向反馈神经网络,其神经元的变换函数是 S型函数; 输出量为0到1之间的连续量,它可实现从输入到输出的任 意的非线性映射。
②newlind函数
功能:用于设计一线性层。 格式:net = newlind(P,T,Pi) 说明:P为输入向量组成的矩阵;T为目标分类向量组成 的矩阵;Pi为初始输入延迟状态的ID个单元矩阵。
3.线性神经网络的MATLAB实现
学习函数 ①learnwh函数 功能:Widrow_Hoff学习规则,实现输出误差的平方和最小 功能。 learnwh函数沿着误差平方和下降最快方向修改神经元 的权值和阅值.使输出误差的平方和最小。 格式:[dW,LS] =learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
3.感知器神经网络仿真设计分析
③sim函数 功能:对网络进行仿真。 格式:[Y,Pf,Af,E,perf]=sim(NET,P,Pi,Ai,T) [Y,Pf,Af,E,perf]=sim(NET,{Q,TS},Pi,Ai,T) [Y,Pf,Af,E,perf]=sim(NET,Q,Pi,Ai,T) 说明:
plotpc(W,B,H)包含从前的一次调用中返回的
句柄。它在画新分类线之前,删除旧线。
3.感知器神经网络仿真设计分析
⑥mae函数
功能:平均绝对误差性能函数。 格式:perf=mae(E,X,Y,FP) info=mae(code)
说明:perf表示平均绝对误差和;
E为误差矩阵或向量(网络的目标向量和输出向量之差); X为所有权值(可忽略); Y为阈值向量(可忽略); FP为性能参数(可忽略)。 mae(code)则可根据code的不同,返回不同信息, 包括: deriv:返回导数函数的名称。 name:返回函数全称。 pnames:返回训练函数的名称。 pdefaults:返回默认的训练参数。
阵。
最实用的功能:对输入向量进行分类。
2.感知器的局限性
①感知器神经网络的传输函数一般采用阈值函数,所 以输出值只能取0或1; ②感知器神经网络只能对线性可分的向量集合进行分
类。理论上已经证明,只要输入向量是线性可分的, 感知器在有限的时间内总能达到目标向量。
③当感知器神经网络的所有输入样本中存在奇异的样
BP神经元模型
a=f(wx+Θ)
1.网络拓扑结构
x1
W(1) W(2) W(3) W(L)
o1
x2
o2
…
…
…
…
…
…
…
om
xn 输入层 隐藏层 输出层
2.BP网络的学习
BP网络的学习过程分为两个阶段:
①输入已知学习样本,通过设置网络结构和前一次迭 代的权值和阈值,从网络的第一层向后计算各神经元 的输出。 ②对权值和阈值进行修改,从最后一层向前计算各权 值和阈值对总误差的影响(梯度),据此对各权值和 阈值进行修改。
本时,即该样本向量同其它所有样本向量比较起来特 别大或特别小时,网络训练花费的时间将很长。
3.感知器神经网络仿真设计分析
①newp函数
功能:用于创建一个感知器网络。 格式:net=newp(PR,S,TF,LF) 说明:
net为生成的感知器神经网络; PR为一个R×2的矩阵,有R组输入向量中的最大和最小值组成; S表示神经元的个数; TF表示感知器的激活函数 ,默认值为硬限幅激活函数handlim; LF表示网络的学习函数,默认值为learnp。
目录
一、感知器神经网络
二、线性神经网络
三、BP传播网络
四、Simulink神经网络仿真模型库
一、感知器神经网络
输入 神经元
感知器神经元的一般模型
1.感知器的学习
感知器的学习是有导师学习方式。
感知器的训练算法的基本原理来源于著名的Hebb学
习律。
基本思想:逐步地将样本集中的输入到网络中,根据 输出结果和理想输出之间的差别来调整网络中的权矩
3.感知器神经网络仿真设计分析
④plotpv函数 功能:绘制样本点的函数。 格式:plotpv(P,T) plotpv(P,T,V) 说明:
P定义了n个2或3维的样本,是一个2xn维或3xn维的矩阵; T表示个样本点的类别,是一个n维的向量; V=[x_min y_min x_max y_max]为一设置绘图坐标值范围的向量; 利用plotpv函数可以在坐标图中会出给定的样本样本点及其类别, 不同的类别使用不同的符号。例如,如果T只含一元向量,则目标为 0的输入向量在坐标图中用“o”表示;目标为1的输入向量在坐标图中 用“+”表示。如果T含二元向量,则输入向量在坐标图中采用的符号分 别为:[0 0]用“o”表示;[0 1]用“+”表示;[1 0]用“*”表示;[1 1] 用“×”表示。
[db,LS] = learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
②maxlinlr函数 功能:计算线性层的最大学习速率。 格式:lr = maxlinlr(P) lr = maxlinlr(P,'bias') 其中,P为由输入向量组成的矩阵。 lr = maxlinlr(P)是针对不 带阈值的线性层得到一个最大学习速率; lr =maxlinlr(P,‘bias’) 是针对带阈值的线性层得到一个最大学习速率。
3.线性神经网络的MATLAB实现
例题:输入向量P = [1.0 -1.2],目标向量T = [0.5 1.0],设计 一个线性神经网络给出P与T之间的线性关系。
P = [1.0 -1.2]; %输入向量 T = [0.5 1.0]; %目标向量 net = newlind(P,T);%设计函数newlind设计一个线性网络 A = sim(net,P); %用仿真函数sim对训练后的网络进行仿真 E = T-A; %计算神经元误差 SSE = sumsqr(E);%用sumsqr函数来计算平方误差的和 w_range = -1:0.1:1; b_range = -1:0.1:1; ES = errsurf(P,T,w_range,b_range,'purelin'); plotes(w_range,b_range,ES); %绘制单独神经元的误差曲面 plotep(net.IW{1,1},net.b{1},SSE);%绘制权值和阂值在误差曲面上的位置 最好的权值和阈值是误差曲面的最低点。
活函数是线性的,而不是硬性激活函数(hardlim)。 因此,线性神经网络的输出可以是任意值,而感知器 的输出不是0就是1。
线性神经网络和感知器一样只能求解线性可分的问题。
因此,线性神经网络的局限性和感知器相同。
线性神经网络包括单层网络和多层网络,其中以以单
层神经网络应用较多。
2、线性神经网络的学习
Y为网络的输出向量; Pf为训练终止时的输入延迟状态; Af为训练终止时的层延迟状态; E为误差向量; perf为网络的性能值; NET为要测试的网络对象; P为网络的输入向量矩阵; Pi表示初始输入延时,默认值为0; Ai表示初始的层延时,默认值为0;T为网络的目标矩阵(可省略)。 Q为批处理数据的个数; TS为网络仿真的时间步数。
3.感知器神经网络仿真设计分析
②train函数 功能:神经网络训练函数。 格式:[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai,VV,TV) 说明:net为训练后的网络; 网络训练函数是一种 tr为训练记录; Y为网络的输出向量; 通用的学习函数,训 E为误差向量; 练函数重复地把一组 Pf为训练终止时的输入延迟状态; 输入向量应用到一个 Af为训练终止时的层延迟状态; 网络上,每次都更新 NET为训练前的网络; P为网络的输入向量矩阵; 网络,直到达到了某 T为网络的目标矩阵,默认值为0; 种准则,停止准则可 Pi表示初始输入延时,默认值为0; 能是达到最大的学习 Ai表示初始的层延时,默认值为0; 步数、最小的误差梯 VV为验证矢量(可省略); 度或误差目标等。 TV为测试向量(可省略)。
3.线性神经网络的MATLAB实现
法二:用newlin函数设计一个线性神经网络,程序如下: P = [1.0 -1.2]; T = [0.5 1.0]; net = newlin(minmax(P),1 ,0,0.01); %学习速率为0.01 net=init(net); %对网络的参数进行初始化 net.trainParam.epochs=500; %训练次数为500次 net=train(net,P,T); %训练 训练500次后,误差小于10-8,