关闭

关闭

关闭

封号提示

内容

首页 第19章 神经网络模型.pdf

第19章 神经网络模型.pdf

第19章 神经网络模型.pdf

上传者: Gingerjin 2012-07-26 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《第19章 神经网络模型pdf》,可适用于工程科技领域,主题内容包含第十九章神经网络模型神经网络简介人工神经网络是在现代神经科学的基础上提出和发展起来的旨在反映人脑结构及功能的一种抽象数学模型。自年美国心理学家WMc符等。

第十九章神经网络模型神经网络简介人工神经网络是在现代神经科学的基础上提出和发展起来的旨在反映人脑结构及功能的一种抽象数学模型。自年美国心理学家WMcCulloch和数学家WPitts提出形式神经元的抽象数学模型MP模型以来人工神经网络理论技术经过了多年曲折的发展。特别是世纪年代人工神经网络的研究取得了重大进展有关的理论和方法已经发展成一门界于物理学、数学、计算机科学和神经生物学之间的交叉学科。它在模式识别图像处理智能控制组合优化金融预测与管理通信机器人以及专家系统等领域得到广泛的应用提出了多种神经网络模型其中比较著名的有感知机Hopfield网络Boltzman机自适应共振理论及反向传播网络(BP)等。在这里我们仅讨论最基本的网络模型及其学习算法。人工神经元模型下图表示出了作为人工神经网络(artificialneuralnetwork以下简称NN)的基本单元的神经元模型它有三个基本要素:(i)一组连接(对应于生物神经元的突触)连接强度由各连接上的权值表示权值为正表示激活为负表示抑制。(ii)一个求和单元用于求取各输入信号的加权和(线性组合)。(iii)一个非线性激活函数起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在),(或),(之间)。此外还有一个阈值kθ(或偏置kkbθ=)。以上作用可分别以数学式表达出来:==pjjkjkxwukkkuvθ=)(kkvyϕ=式中pxxx,,,L为输入信号kpkkwww,,,L为神经元k之权值ku为线性组合结果kθ为阈值)(ϕ为激活函数ky为神经元k的输出。若把输入的维数增加一维则可把阈值kθ包括进去。例如==pjjkjkxwv)(kkuyϕ=此处增加了一个新的连接其输入为=x(或)权值为kkwθ=(或kb)如下图所示。激活函数)(ϕ可以有以下几种:(i)阈值函数<=,,)(vvvϕ()即阶梯函数。这时相应的输出ky为<=,,kkkvvy其中==pjkjkjkxwvθ常称此种神经元为PM模型。(ii)分段线性函数<<=,),(,)(vvvvvϕ()它类似于一个放大系数为的非线性放大器当工作于线性区时它是一个线性组合器放大系数趋于无穷大时变成一个阈值单元。(iii)sigmoid函数最常用的函数形式为)exp()(vvαϕ=()参数>α可控制其斜率。另一种常用的是双曲正切函数)exp()exp(tanh)(vvvv==ϕ()这类函数具有平滑和渐近性并保持单调性。Matlab中的激活(传递)函数如下表所示:函数名功能purelin线性传递函数hardlim硬限幅传递函数hardlims对称硬限幅传递函数satlin饱和线性传递函数satlins对称饱和线性传递函数logsig对数S形传递函数tansig正切S形传递函数radbas径向基传递函数compet竞争层传递函数各个函数的定义及使用方法可以参看Matlab的帮助(如在Matlab命令窗口运行helptansig可以看到tantig的使用方法及tansig的定义为)(=vevϕ)。网络结构及工作方式除单元特性外网络的拓扑结构也是NN的一个重要特性。从连接方式看NN主要有两种。(i)前馈型网络各神经元接受前一层的输入并输出给下一层没有反馈。结点分为两类即输入单元和计算单元每一计算单元可有任意个输入但只有一个输出(它可耦合到任意多个其它结点作为其输入)。通常前馈网络可分为不同的层第i层的输入只与第i层输出相连输入和输出结点与外界相连而其它中间层则称为隐层。(ii)反馈型网络所有结点都是计算单元同时也可接受输入并向外界输出。NN的工作过程主要分为两个阶段:第一个阶段是学习期此时各计算单元状态不变各连线上的权值可通过学习来修改第二阶段是工作期此时各连接权固定计算单元状态变化以达到某种稳定状态。从作用效果看前馈网络主要是函数映射可用于模式识别和函数逼近。反馈网络按对能量函数的极小点的利用来分类有两种:第一类是能量函数的所有极小点都起作用这一类主要用作各种联想存储器第二类只利用全局极小点它主要用于求解最优化问题。蠓虫分类问题与多层前馈网络蠓虫分类问题蠓虫分类问题可概括叙述如下:生物学家试图对两种蠓虫(Af与Apf)进行鉴别依据的资料是触角和翅膀的长度已经测得了支Af和支Apf的数据如下:Af:(,)(,)(,)(,)(,)(,)(,)(,)(,)Apf:(,)(,)(,)(,)(,)(,)现在的问题是:(i)根据如上资料如何制定一种方法正确地区分两类蠓虫。(ii)对触角和翼长分别为(,)(,)与(,)的个标本用所得到的方法加以识别。(iii)设Af是宝贵的传粉益虫Apf是某疾病的载体是否应该修改分类方法。如上的问题是有代表性的它的特点是要求依据已知资料(支Af的数据和支Apf的数据)制定一种分类方法类别是已经给定的(Af或Apf)。今后我们将支Af及支Apf的数据集合称之为学习样本。多层前馈网络为解决上述问题考虑一个其结构如下图所示的人工神经网络激活函数由)exp()(vvαϕ=来决定。图中最下面单元即由•所示的一层称为输入层用以输入已知测量值。在我们的例子中它只需包括两个单元一个用以输入触角长度一个用以输入翅膀长度。中间一层称为处理层或隐单元层单元个数适当选取对于它的选取方法有一些文献进行了讨论但通过试验来决定或许是最好的途径。在我们的例子中取三个就足够了。最上面一层称为输出层在我们的例子中只包含二个单元用以输出与每一组输入数据相对应的分类信息.任何一个中间层单元接受所有输入单元传来的信号并把处理后的结果传向每一个输出单元供输出层再次加工同层的神经元彼此不相联接输入与输出单元之间也没有直接联接。这样除了神经元的形式定义外我们又给出了网络结构。有些文献将这样的网络称为两层前传网络称为两层的理由是只有中间层及输出层的单元才对信号进行处理输入层的单元对输入数据没有任何加工故不计算在层数之内。为了叙述上的方便此处引人如下记号上的约定:令s表示一个确定的已知样品标号在蠓虫问题中,,,L=s分别表示学习样本中的个样品当将第s个样品的原始数据输入网络时相应的输出单元状态记为),(=iOsi隐单元状态记为),,(=jHsj输入单元取值记为),(=kIsk。请注意此处下标kji,,依次对应于输出层、中间层及输入层。在这一约定下从中间层到输出层的权记为ijw从输入层到中间层的权记为jkw。如果ijwjkw均已给定那么对应于任何一组确定的输入),(ssII网络中所有单元的取值不难确定。事实上对样品s而言隐单元j的输入是==kskjksjIwh()相应的输出状态是===)()(kskjksjsjIwhHϕϕ()由此输出单元i所接收到的迭加信号是=====)(jjkskjkijsjijsiIwwHwhϕ()网络的最终输出是))(()()(======jkskjkijjsjijsisiIwwHwhOϕϕϕϕ()这里没有考虑阈值正如前面已经说明的那样这一点是无关紧要的。还应指出的是对于任何一组确定的输入输出是所有权},{jkijww的函数。如果我们能够选定一组适当的权值},{jkijww使得对应于学习样本中任何一组Af样品的输入),(ssII输出),(),(=ssOO对应于Apf的输入数据输出为),(那么蠓虫分类问题实际上就解决了。因为对于任何一个未知类别的样品只要将其触角及翅膀长度输入网络视其输出模式靠近),(亦或),(就可能判断其归属。当然有可能出现介于中间无法判断的情况。现在的问题是如何找到一组适当的权值实现上面所设想的网络功能。向后传播算法对于一个多层网络如何求得一组恰当的权值使网络具有特定的功能在很长一段时间内曾经是使研究工作者感到困难的一个问题直到年美国加州大学的一个研究小组提出了所谓向后传播算法(BackPropagation)使问题有了重大进展这一算法也是促成人工神经网络研究迅猛发展的一个原因。下面就来介绍这一算法。如前所述我们希望对应于学习样本中Af样品的输出是),(对应于Apf的输出是),(这样的输出称之为理想输出。实际上要精确地作到这一点是不可能的只能希望实际输出尽可能地接近理想输出。为清楚起见把对应于样品s的理想输出记为}{siT那么=sisisiOTWE,)()(()度量了在一组给定的权下实际输出与理想输出的差异由此寻找一组恰当的权的问题自然地归结为求适当W的值使)(WE达到极小的问题。将式()代入()有===isjkskjkijsiIwwTWE,))(()(ϕϕ()易知对每一个变量ijw或ijw而言这是一个连续可微的非线性函数为了求得其极小点与极小值最为方便的就是使用最速下降法。最速下降法是一种迭代算法为求出)(WE的(局部)极小它从一个任取的初始点W出发计算在W点的负梯度方向)(WE这是函数在该点下降最快的方向只要)(WE就可沿该方向移动一小段距离达到一个新的点)(WEWW=ηη是一个参数只要η足够小定能保证)()(WEWE<。不断重复这一过程一定能达到E的一个(局部)极小点。就本质而言这就是BP算法的全部内容然而对人工神经网络问题而言这一算法的具体形式是非常重要的下面我们就来给出这一形式表达。对于隐单元到输出单元的权ijw而言最速下降法给出的每一步的修正量是===ΔsssjsisjsisisiijijHHhOTwEwδηϕηη)('()此处令)('sisisisiOTh=ϕδ()对输入单元到隐单元的权jkw==ΔissjsjijsisisijkjkIhwhOTwEw,)(')('ϕϕηη==ssksjissksjijsiIIhwδηϕδη,)('()此处=isiijsjsjwhδϕδ)('从()和()式可以看出所有权的修正量都有如下形式即=Δssqsppqvwδη()指标p对应于两个单元中输出信号的一端q对应于输入信号的一端v或者代表H或者代表I。形式上看来这一修正是“局部”的可以看作是Hebb律的一种表现形式。还应注意siδ由实际输出与理想输出的差及sih决定而sjδ则需依赖siδ算出因此这一算法才称为向后传播算法。稍加分析还可知道利用由()~()式所给出的计算安排较之不考虑spδ的向后传播直接计算所有含'ϕ的原表达式极大地降低了计算工作量。这组关系式称作广义δ法则它们不难推广到一般的多层网络上去。利用这一迭代算法最终生成在一定精度内满足要求的},{jkijww的过程称为人工神经网络的学习过程。可以看出这里所提供的学习机制是元与元之间权的不断调整学习样本中任何一个样品所提供的信息最终将包含在网络的每一个权之中。参数η的大小则反映了学习效率。为了更有效地应用BP算法我们做出如下一些补充说明。(i)在式()与()中jkijwwΔΔ,表示为与所有样品s有关的求和计算。实际上我们还可以每次仅考虑输入一个样品所造成的修正然后按照随机选取的顺序将所有样品逐个输入不断重复这一手续直至收敛到一个满意的解为止。(ii)在如上的算法中利用实际输出与理想输出差的平方和作为度量},{jkijww优劣的标准这并不是唯一的度量方式完全可以从其它的函数形式出发例如从相对熵出发导出相应的算法。(iii)在如上的讨论中使用的是最速下降法显然这也不是唯一的选择其它的非线性优化方法诸如共轭梯度法拟牛顿法等都可用于计算。为了加速算法的收敛速度还可以考虑各种不同的修正方式。(iv)BP算法的出现虽然对人工神经网络的发展起了重大推动作用但是这一算法仍有很多问题.对于一个大的网络系统BP算法的工作量仍然是十分可观的这主要在于算法的收敛速度很慢。更为严重的是此处所讨论的是非线性函数的优化那么它就无法逃脱该类问题的共同困难:BP算法所求得的解只能保证是依赖于初值选取的局部极小点。为克服这一缺陷可以考虑改进方法例如模拟退火算法或从多个随机选定的初值点出发进行多次计算但这些方法都不可避免地加大了工作量。蠓虫分类问题的求解下面利用上文所叙述的网络结构及方法对蠓虫分类问题求解。编写Matlab程序如下:clearp=,,,,,,,,,p=,,,,,,p=pp'pr=minmax(p)goal=ones(,),zeros(,)zeros(,),ones(,)plot(p(:,),p(:,),'h',p(:,),p(:,),'o')net=newff(pr,,,{'logsig','logsig'})nettrainParamshow=nettrainParamlr=nettrainParamgoal=enettrainParamepochs=net=train(net,p,goal)x='y=sim(net,p)y=sim(net,x)处理蠓虫分类的另一种网络方法几个有关概念在介绍本节主要内容之前首先说明几个不同的概念。在上一节中我们把利用BP算法确定联接强度即权值的过程称为“学习过程”这种学习的特点是对任何一个输入样品其类别事先是已知的理想输出也已事先规定因而从它所产生的实际输出与理想输出的异同我们清楚地知道网络判断正确与否故此把这一类学习称为在教师监督下的学习与它不同的是有些情况下学习是无监督的例如我们试图把一组样品按其本身特点分类所要划分的类别是事先未知的需要网络自身通过学习来决定因而在学习过程中对每一输入所产生的输出也就无所谓对错对于这样的情况显然BP算法是不适用的。另一个有关概念是所谓有竞争的学习。在上节所讨论的蠓虫分类网络中尽管我们所希望的理想输出是),(或),(但实际输出并不如此一般而言两个输出单元均同时不为。与此不同我们完全可以设想另外一种输出模式:对应任何一组输入所有输出单元中只允许有一个处于激发态即取值为其它输出单元均被抑制即取值为。一种形象的说法是对应任何一组输入要求所有的输出单元彼此竞争唯一的胜利者赢得一切失败者一无所获形成这样一种输出机制的网络学习过程称为有竞争的学习。最简单的无监督有竞争的学习本节叙述一种无监督有竞争的网络学习方法由此产生的网络可用来将一组输入样品自动划分类别相似的样品归于同一类别因而激发同一输出单元这一分类方式是网络自身通过学习从输入数据的关系中得出的。蠓虫分类问题对应有教师的网络学习过程显然不能由如上的方法来解决。但在这种无监督有竞争的学习阐明之后很容易从中导出一种适用于有监督情况的网络方法此外本节所介绍的网络在数据压缩等多种领域都有其重要应用。考虑一个仅由输入层与输出层组成的网络系统输入单元数目与每一样品的测量值数目相等输出单元数目适当选取。每一个输入单元与所有输出单元联接第j个输入元到第i个输出元的权记为ijw同层单元间无横向联接。无妨假设所有输入数值均已规化到,之间又因为是有竞争的学习输出单元只取或两个值且对应每一组输入只有一个输出元取。取的输出元记为*i称之为优胜者.对于任何一组输入s规定优胜者是有最大净输入的输出元即对输入),,(nIIIL=而言=jijijiIWIwh()取最大值的单元其中iW是输出元i所有权系数组成的向量也就是说IWIWii*)(i()如果权向量是按照=jijw的方式标准化的()式等价于||||*IWIWii)(i()即优胜者是其标准化权向量最靠近输入向量的输出元。令*=iO其余的输出=iO。这样的输出规定了输入向量的类别但为了使这种分类方式有意义问题化为如何将学习样本中的所有样品自然地划分为聚类并对每一聚类找出适当的权向量。为此采用如下的算法:随机取定一组不大的初始权向量注意不使它们有任何对称性。然后将已知样品按照随机顺序输入网络。对输入样品s按上文所述确定优胜者*i对所有与*i有关的权作如下修正)(**jisjjiwIw=Δη()所有其它输出单元的权保持不变。注意到*=iO)(*iiOi=所有权的修正公式可统一表示为)(**jisjijiwIOw=Δη这一形式也可视为Hebb律的一种表现。()式的几何意义是清楚的每次修正将优胜者的权向量向输入向量移近一小段距离这使得同一样品再次输入时*i有更大的获胜可能。可以合理地预期反复重复以上步骤使得每个输出单元对应了输入向量的一个聚类相应的权向量落在了该聚类样品的重心附近。当然这只是一个极不严密的说明。特别应当指出上述算法对于事先按照=jI标准化了的输入数据更为适用整个过程不难由计算机模拟实现。为了更有效地使用如上算法下面对实际计算时可能产生的问题作一些简要说明。首先如果初始权选择不当那么可能出现这样的输出单元它的权远离任何输入向量因此永远不会成为优胜者相应的权也就永远不会得到修正这样的单元称之为死单元。为避免出现死单元可以有多种方法。一种办法是初始权从学习样本中抽样选取这就保证了它们都落在正确范围内另一种办法是修正上述的学习算法使得每一步不仅调整优胜者的权同时也以一个小得多的η值修正所有其它的权。这样对于总是失败的单元其权逐渐地朝着平均输入方向运动最终也会在某一次竞争中取胜。此外还存在有多种处理死单元的方法感兴趣的读者可从文献中找到更多的方法。另外一个问题是这一算法的收敛性。如果式()或()中反映学习效率的参数η取为一个固定常数那么权向量永远不会真正在某一有限点集上稳定下来。因此应当考虑在公式中引进随学习时间而变化的收敛因子。例如取att==)(ηηη<a。这一因子的适当选取是极为重要的η下降太慢无疑增加了不必要工作量η下降太快则会使学习变得无效。LVQ方法上述有竞争学习的一个最重要应用是数据压缩中的向量量子化方法(VectorQuantization)。它的基本想法是把一个给定的输入向量集合sI分成M个类别然后用类别指标来代表所有属于该类的向量。向量分量通常取连续值一旦一组适当的类别确定之后代替传输或存储输入向量本身可以只传输或存储它的类别指标。所有的类别由M个所谓“原型向量”来表示我们可以利用一般的欧氏距离对每一个输入向量找到最靠近的原型向量作为它的类别。显然这种分类方法可以通过有竞争的学习直接得到。一旦学习过程结束所有权向量的集合便构成了一个“电码本”。一般而言上述无监督有竞争的学习实际提供了一种聚类分析方法对如蠓虫分类这种有监督的问题并不适用。年Kohonen对向量量子化方法加以修改提出了一种适用于有监督情况的学习方法称为学习向量量子化(LearningVectorQuantization)该方法可用于蠓虫分类问题。在有监督的情况下学习样品的类别是事先已知的与此相应每个输出单元所对应的类别也事先作了规定但是代表同一类别的输出单元可以不止一个。在LVQ中对于任一输入向量仍按无监督有竞争的方式选出优胜者*i但权的修正规则则依输入向量的类别与*i所代表的是否一致而不同确切地说令=Δ不一致情况一致情况)()(***jisjjisjjiwIwIwηη前一种情况修正和无监督的学习一致权朝向样品方向移动一小段距离后一种则相反权向离开样品方向移动这样就减少了错误分类的机会。对于上述的蠓虫分类问题我们编写Matlab程序如下:clearp=,,,,,,,,,p=,,,,,,p=pp'pr=minmax(p)goal=ones(,),zeros(,)zeros(,),ones(,)net=newlvq(pr,,,)net=train(net,p,goal)Y=sim(net,p)x='sim(net,x)习题十九利用BP算法及sigmoid函数研究以下各函数的逼近问题(i),)(=xxxf(ii),sin)(π=xxxf对每一函数要完成如下工作:获取两组数据一组作为训练集一组作为测试集利用训练集训练一个单隐层的网络用测试集检验训练结果改变隐层单元数研究它对逼近效果的影响。给定待拟合的曲线形式为)sin()(xxfπ=在)(xf上等间隔取个点的数据在此数据的输出值上加均值为均方差=σ的正态分布噪声作为给定训练数据用多项式拟合此函数分别取多项式的阶次为和阶图示出拟合结果并讨论多项式阶次对拟合结果的影响。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/10
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部