势函数分类的设计与SOM神经网络.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
势函数分类的设计与SOM神经网络

第7题:势函数分类的设计与实现 势函数分类原理概述 1.1 势函数概念 势函数法是利用势函数的概念确定非线性判别函数的方法。所谓势函数是由势能的概念引申而来的。比如,两类模式样本集在n维模式空间中可以看做一个点集,每一点都比拟为具有某种能量的点,比如它们具有不同的电位能,在 类的中心 ,电位能达到峰值, 周围的点x上的电位能数值随着该点与 的距离增大而减小。将 附近空间上点的电位分布用函数K( ,x)来描述,这一函数就称为势函数。对于 类来说,相对于 ,它具有不同的电位分布,既然 是电位的峰值,则 类的点就处于低的电位上。在两类电位分布之间,选择合适的等位线,并用势函数描述它,就成为分类的判别函数。 势函数在选择时应同时满足以下三个条件: K(Xk ,X)= K(X, Xk)时,当且仅当X=Xk时达到最大值。 当向量Xk 与X的距离趋近于无穷时,K(X, Xk)趋近于0。 K(Xk ,X)是光滑函数,且是X与Xk 之间距离的单调减小函数。 通常选择的函数有 1.2 势函数判别函数的产生 在依据具体情况选取某一函数作为势函数K(Xk ,X)后,将模式样本集中的所有样本逐一输入。当用K(X, Xk)来计算其相应的势函数值得到正确的分类时,势函数不变;若分类错误,则势函数须加以改正,得到积累位势,积累位势函数以 K0(X)表示。 具体说来,首先设初始势函数K0(X)=0 第一步,输入样本X1,则 第二步,输入样本,则 若,且,或或,则分类正确,积累势函数不变,即 若,但,分类错误,需要修改积累势函数,改为 式中正负号取决于第一个加入的样本。 若,且,同样分类错误,需要修改积累势函数 …… 第n+1步,若为输入样本,,…后的积累位势,当输入第(n+1)个本时, 的确定按以下三种情况进行: 如,且或,,表明分类正确,则积累位势不变: 2)如,但,则 3)如,但,则 如此迭代下去,当对于所有样本,积累位势均不变时,就将最后所得势函数作为判别函数。 以上是积累位势函数的迭代算法,该算法也可写成: 而改正系数项r+1为: 由于将 作为判别函数d(x),于是有: 1.3 势函数的选取 一般两个n维向量x和 的函数 必须同时满足下列三个条件,方可作为势函数: ,当且仅当X= 时函数有最大值。 X与的距离趋近于无穷时,趋于0。 为光滑函数,且为X与之间距离的减函数。 下面几个函数满足上述三个条件,是可以作为势函数的: 势函数分类实例 实例:已知两类训练样本,ω1:[0,0]T,, [0, 1]T ; ω2: [1,0]T, [1,1]T 用势函数法计算两类模式的判别函数。 解: 二维情况下势函数为: 开始迭代,过程如下: 第一步,因为, 所以 第二步,因为, 可得: 分类正确,不修改积累势函数。 所以, 第三步,因为, 可得: 分类错误,修改积累势函数。 有, 第四步,因为, 可得: 分类正确, 第五步,因为, 可得,,不修正 有, 第六步,因为, 可得,,不修正 第七步,因为, 可得:,不修正 有, 第八步,因为, 可得,,不修正 有, 从第五步至第八步的计算中可知:所有的训练样本都被准确分类,因此算法收敛于判别函数,分类器计算完毕。 综上:可得判别函数,即 用MATlAB软件编写程序实现 程序流程图如下 程序1: start = [ 0, 0; 0, 1; 1, 0; 1, 1 ]; w = [ 1, 1, 2, 2 ];% w中1/2表示start中对应行的点属于第1/2类 Nc = 0;r = [ ];G = 0;k = 1; N = 4;m = 1;n = 0; while(Nc4) r( 1 ) = 0; if( w( m ) == 1) if( G 0) Nc = Nc+1; r( k+1 ) = 0; end if( G = 0) r( k+1 ) = 1; Nc = 0; end end if( w( m ) == 2) if( G 0) r( k+1 ) = 0; Nc = Nc+1; end if( G = 0) r( k+1 ) = -1; Nc = 0;

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档