专题二:神经网络PPT推荐.ppt
《专题二:神经网络PPT推荐.ppt》由会员分享,可在线阅读,更多相关《专题二:神经网络PPT推荐.ppt(48页珍藏版)》请在冰豆网上搜索。
存储及检索功能。
定义三:
一个神经网络是一个由简单处理元构成的规模宏大的定义三:
一个神经网络是一个由简单处理元构成的规模宏大的并行分布式处理器。
天然具有存储知识和使之可用的特性。
神经网络并行分布式处理器。
神经网络在两个方面与人脑相似:
在两个方面与人脑相似:
1.神经网络获得的知识是从外界环境中学习得到的。
神经网络获得的知识是从外界环境中学习得到的。
2.互连神经元的连接强度,即突触权值,用于储存获取的知识。
互连神经元的连接强度,即突触权值,用于储存获取的知识。
多层感知器多层感知器如果在输入和输出层间加上一层或多层的神经元(隐层神经元),就可构成多层前向网络,这里称为多层感知器。
这里需指出的是:
多层感知器只允许调节一层的连接权。
这是因为按感知器的概念,无法给出一个有效的多层感知器学习算法。
上述三层感知器中,有两层连接权,输入层与隐层单元间的权值是随机设置的固定值,不被调节;
输出层与隐层间的连接权是可调节的。
1.2激活(传递)函数的取法在Matlab工具箱里包括了许多激活(传递)函数。
在“TransferFunctionGraphs”中可以找到它们的完全列表函数名功能purelin线性传递函数hardlim硬限幅递函数hardlims对称硬限幅递函数satli饱和线性传递函数satlins对称饱和线性传递函数logsig对数S形传递函数tansig正切S形传递函数radbas径向基传递函数compet竞争层传递函数1.3、网络结构以及工作方式从连接方式看NN主要有两种网络拓扑结构:
n前馈型网络:
结点分为输入单元和计算单元n反馈型网络:
所有结点都是计算单元NN的工作过程主要分为两个阶段:
第一阶段:
学习期,此时个计算单元状态不变,各连线上的权值可通过学习来修改第二阶段:
工作期,此时各连接权值固定,计算各单元状态变化网络结构:
前馈型神经网络两个或更多的上面所示的神经元可以组合成一层,一个典型的网络可包括一层或者多层。
我们首先来研究神经元层。
单层神经元网络单层神经元网络有R输入元素和S个神经元组成的单层网络如下图所示n1=net.IW1,1*p+net.b1多层神经元网络上面所示的网络有R1个输入,第一层有S1个神经元,第二层有S2个神经元中间层的输出就是下一层的输入。
第二层可看作有S1个输入,S2个神经元和S1xS2阶权重矩阵W2的单层网络。
第二层的输入是a1,输出是a2,现在我们已经确定了第二层的所有向量和矩阵,我们就能把它看成一个单层网络了。
其他层也可以照此步骤处理。
多层网络的功能非常强大。
例、一个两层的网络,第一层的转移函数是曲线函数,第二层的转移函数是线性函数,通过训练,它能够很好的模拟任何有有限断点的函数。
这种两层网络集中应用于“反向传播网络”。
注意:
我们把第三层的输出a3标记为y。
我们将使用这种符号来定义这种网络的输出。
神经网络模型节点n神经网络模型的学习过程(A)模型的特点模型的特点1、有指导的学习、有指导的学习2、前馈网络、前馈网络3、反向传播算法、反向传播算法(B)可变参数可变参数1、隐含层的数目、隐含层的数目2、学习效率、学习效率3、动态常量、动态常量4、停止准则、停止准则神经网络模型节点n神经网络的主要特点并行分布处理并行分布处理并行结构和并行实现,适于实时和动态处理并行结构和并行实现,适于实时和动态处理非线性映射非线性映射可以处理非线性问题可以处理非线性问题适应和集成适应和集成适用于复杂、大规模和多变量系统,可以在线适用于复杂、大规模和多变量系统,可以在线运行和定性定量分析运行和定性定量分析自学习训练自学习训练可以解决数学模型和规则难以解决的问题可以解决数学模型和规则难以解决的问题nClementine中神经网络的特有功能:
敏感度分析:
以辅助解释神经网络结果敏感度分析:
以辅助解释神经网络结果修剪和验证:
以避免过度训练修剪和验证:
以避免过度训练动态网络动态网络:
自动找出合适的网络结构设计:
自动找出合适的网络结构设计神经网络模型节点n神经网络模型的主要功能分类(分类(Cl)预测(预测(Pr)控制(控制(Ct)函数拟合(函数拟合(Ft)n神经网络的不足:
不足:
模型为黑匣子,得到的结果不易解释模型为黑匣子,得到的结果不易解释模型可能会出现过拟合的情况模型可能会出现过拟合的情况结果可能是局部最小值,而非全局最优值结果可能是局部最小值,而非全局最优值1.4创建网络newp创建感知器网络newlind设计一线性层newlin创建一线性层newff创建一前馈BP网络newcf创建一多层前馈BP网络newfftd创建一前馈输入延迟BP网络newrb设计一径向基网络newrbe设计一严格的径向基网络newgrnn设计一广义回归神经网络newpnn设计一概率神经网络newc创建一竞争层newsom创建一自组织特征映射newhop创建一Hopfield递归网络newelm创建一Elman递归网络1.5数据结构:
影响网络仿真的输入数据结构的格式静态网络中的同步输入仿真:
例1动态网络中的异步输入仿真:
当网络中存在延迟时,顺序发生的输入向量就要按一定的序列输入网络。
为了演示这种情况,我们以一个有延迟的简单网络为例。
动态网络中的同步输入仿真n如果我们在上例中把输入作为同步而不是异步应用,我们就会得到完全不同的响应。
这就好象每一个输入都同时加到一个单独的并行网络中。
在前一个例子中,如果我们用一组同步输入,我们有:
p1=1,p2=2,p3=3,p4=4这可用下列代码创建:
P=1234;
模拟这个网络,我们得到:
A=sim(net,P)A=1234n在某些特定的情况下,我们可能想要在同一时间模拟一些不同序列的网络响应。
这种情况我们就要给网络输入一组同步序列。
比如说,我们要把下面两个序列输入网络:
p
(1)=1,p
(2)=2,p(3)=3,p(4)=4p
(1)=4,p
(2)=3,p(3)=2,p(4)=1输入P应该是一个细胞数组,每一个数组元素都包含了两个同时发生的序列的元素。
P=14233241;
现在我们就可以模拟这个网络了:
A=sim(net,P);
网络输出结果将是:
A=1441178105n可以看到,每个矩阵的第一列是由第一组输入序列产生的输出序列,每个矩阵的第二列是由第二组输入序列产生的输出序列。
这两组序列之间没有关联,好象他们是同时应用在单个的并行网络上的。
前面的讨论中,不论是作为一个同步向量矩阵输入还是作为一个异步向量细胞数组输入,模拟的输出值是一样的。
在训练网络时,这是不对的。
当我们使用adapt函数时,如果输入是异步向量细胞数组,那么权重将在每一组输入提交的时候更新(就是增加方式);
如果输入是同步向量矩阵,那么权重将只在所有输入提交的时候更新(就是批处理方式)。
1.6训练方式两种不同的训练方式
(1)增加方式:
每提交一次输入数据,网络权重和偏置都更新一次;
(2)在批处理方式中:
仅仅当所有的输入数据都被提交以后,网络权重和偏置才被更新.n增加方式(应用于自适应网络和其他网络)虽然增加方式更普遍的应用于动态网络,比如自适应滤波,但是在静态和动态网络中都可以应用它。
静态网络中的增加方式用增加方式来训练静态同步仿真中的例1,这样每提交一次输入数据,网络权重和偏置都更新一次。
在此我们用函数adapt,并给出输入和目标序列:
假定我们要训练网络建立以下线性函数:
t=2p1+p2.我们的输入是:
目标输出是:
t1=4,t2=5,t3=7,t4=7首先用0初始化权重和偏置。
为了显示增加方式的效果,先把学习速度也设为0。
net=newlin(-11;
-11,1,0,0);
net.IW1,1=00;
net.b1=0;
为了用增加方式,我们把输入和目标输出表示为以下序列:
P=1;
22;
12;
33;
1;
T=4577;
用增加方式训练网络:
net,a,e,pf=adapt(net,P,T);
由于学习速度为0,网络输出仍然为0,并且权重没有被更新。
错误和目标输出相等。
a=0000e=4577如果我们设置学习速度为0.1,我们就能够看到当每一组输入提交时,网络是怎么调整的了。
net.inputWeights1,1.learnParam.lr=0.1;
net.biases1,1.learnParam.lr=0.1;
a=026.05.8e=431.01.22、BP神经网络2.1、概述nBP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。
一个典型的BP网络采用的是梯度下降算法,也就是Widrow-Hoff算法所规定的。
backpropagation就是指的为非线性多层网络计算梯度的方法。
现在有许多基本的优化算法,例如变尺度算法和牛顿算法。
神经网络工具箱提供了许多这样的算法。
n一个经过训练的BP网络能够根据输入给出合适的结果,虽然这个输入并没有被训练过。
这个特性使得BP网络很适合采用输入/目标对进行训练,而且并不需要把所有可能的输入/目标对都训练过。
为了提高网络的适用性,神经网络工具箱提供了两个特性-规则化和早期停止。
2.2、基础网络结构1)常用的前馈型BP网络的转移函数有logsig,tansig有时也会用到线性函数purelin。
当网络的最后一层采用曲线函数时输出被限制在一个很小的范围内,如果采用线性函数则输出可为任意值。
如果需要也可以创建其他可微的转移函数。
2)在BP网络中,转移函数可求导是非常重要的,tansig、logsig和purelin都有对应的导函数dtansig、dlogsig和dpurelin。
为了得到更多转移函数的导函数,可以输入tansig(deriv)ans=dtansig网络构建和初始化训练前馈网络的第一步是建立网络对象。
函数newff建立一个可训练的前馈网络。
net=newff(PR,S1S2.SNl,TF1TF2.TFNl,BTF,BLF,PF)这里需要4个输入参数。
第一个参数是一个RxS1的矩阵以定义R个输入向量的最小值和最大值。
第二个参数是一个每层神经元个数的数组。
第三个参数是包含每层用到的转移函数名称的细胞数组。
最后一个参数是用到的训练函数的名称。
例、创建一个二层网络它的输入是两个元素的向量,第一层有四个神经元,第二层有三个神经元。
第一层的转移函数是tan-sigmoid,输出层的转移函数是linear。
输入向量的第一个元素的范围是-1到2,输入向量的第二个元素的范围是0到5,训练函数是traingd。
net=ne