常见的几种神经网络
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:返回默认的训练参数。
Y为网络的输出向量; Pf为训练终止时的输入延迟状态; Af为训练终止时的层延迟状态; E为误差向量; perf为网络的性能值; NET为要测试的网络对象; P为网络的输入向量矩阵; Pi表示初始输入延时,默认值为0; Ai表示初始的层延时,默认值为0;T为网络的目标矩阵(可省略)。 Q为批处理数据的个数; TS为网络仿真的时间步数。
以上两个过程反复交替,直到达到收敛为止。
3.BP网络的MATLAB实现
BP 神经网络创建函数 ①newcf函数 功能:用于创建一个级联前馈BP网络。 格式: net=newcf(PR,[S1,S2…SN],TF1TF2…TFN},BTF,BLF,PF) 说明:
目录
一、感知器神经网络
二、线性神经网络
三、BP传播网络
四、Simulink神经网络仿真模型库
一、感知器神经网络
输入 神经元
感知器神经元的一般模型
1.感知器的学习
感知器的学习是有导师学习方式。
感知器的训练算法的基本原理来源于著名的Hebb学
习律。
基本思想:逐步地将样本集中的输入到网络中,根据 输出结果和理想输出之间的差别来调整网络中的权矩
对线性神经网络可以不经过训练直接求出网络的权值 和阈值,如果网络有多个零误差姐,则取最小的一组 权值和与之;如果网络不存在零误差解,则取网络的 误差平方和最小的一组权值和阈值。
另外,当不能直接求出网络权值和阈值时,线性神经 网络及自适应线性神经网络可采用使均方误差最小的 学习规则,即LMS算法,或称之为WH学习规则来 调整网络的权值和阈值,它是一种沿误差的最陡下降 方向对前一步权值向量进行修正的方法。
3.线性神经网络的MATLAB实现
线性神经网络的应用 应用在模式分类中
应用在噪声对消中 应用在信号预测中
完成对胎儿 心率的检测 自适应滤 波方面
三、BP传播网络
反向传播网络(Back-Propagation Network,简称BP网络)是 将W-H学习规则一般化,对非线性可微分函数进行权值训 练的多层网络; 权值的调整采用反向传播(Back-propagation)的学习算法; 它是一种多层前向反馈神经网络,其神经元的变换函数是 S型函数; 输出量为0到1之间的连续量,它可实现从输入到输出的任 意的非线性映射。
二、线性神经网络
线性神经网络是最简单的一种神经元网络,它可以由
一个或多个线性神经元构成,每个神经元的激活函数 都是线性函数(purelin)。 线性神经元模型如图
线性神经元
输入 p1
w11
∑
pR
· · ·
p2
n
a
w1R
b
a pureline( wp b)
1、线性神经网络特点
线性神经网络类似于感知器,但是线性神经网络的激
阵。
最实用的功能:对输入向量进行分类。
2.感知器的局限性
①感知器神经网络的传输函数一般采用阈值函数,所 以输出值只能取0或1; ②感知器神经网络只能对线性可分的向量集合进行分
类。理论上已经证明,只要输入向量是线性可分的, 感知器在有限的时间内总能达到目标向量。
③当感知器神经网络的所有输入样本中存在奇异的样
本时,即该样本向量同其它所有样本向量比较起来特 别大或特别小时,网络训练花费的时间将很长。
3.感知器神经网络仿真设计分析
பைடு நூலகம்
①newp函数
功能:用于创建一个感知器网络。 格式:net=newp(PR,S,TF,LF) 说明:
net为生成的感知器神经网络; PR为一个R×2的矩阵,有R组输入向量中的最大和最小值组成; S表示神经元的个数; TF表示感知器的激活函数 ,默认值为硬限幅激活函数handlim; LF表示网络的学习函数,默认值为learnp。
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,
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] 用“×”表示。
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) 说明:
②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.线性神经网络的MATLAB实现
线性神经网络创建函数和设计函数 ① newlin函数 功能:用于创建一线性层。 线性层通常做信号处理和预测中的自适应滤波器。 格式:net = newlin(P,S,ID,LR) 说明:P是以输入元素的最大和最小值组成的矩阵;s为 输出向量数目;ID为输入延迟向量;LR为学习速率; net为创建的线性层。
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.感知器神经网络仿真设计分析
例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}) %绘制分类线 可见,经过两次训练后,网络目标误差达到要求。
活函数是线性的,而不是硬性激活函数(hardlim)。 因此,线性神经网络的输出可以是任意值,而感知器 的输出不是0就是1。
线性神经网络和感知器一样只能求解线性可分的问题。
因此,线性神经网络的局限性和感知器相同。
线性神经网络包括单层网络和多层网络,其中以以单