智能中国网提供学习支持自组织神经网络模型与学习算法概述自组织神经网络,又称为自组织竞争神经网络,特别适合于解决模式分类和识别方面的应用问题。自组织神经网络属于前向神经网络类型,采用无导师学习算法,自组织特征映射神经网络不仅能够像自组织竞争神经网络一样学习输入的分布情况,而且可以学习神经网络的拓扑结构。概述自组织竞争神经网络类型自适应共振理论(AdaptiveResonanceTheory,ART)网络自组织特征映射(self-OrganizingMap,SOM)网络对传(CounterPropagation,CP)网络协同神经网络(SynergeticNeuralNetwork.SNN)2.6.1自组织特征映射神经网络结构由芬兰学者TeuvoKohonen于1981年提出基本上为输入层和映射层的双层结构,映射层的神经元互相连接,每个输出神经元连接至所有输入神经元I’mTeuvoKohonen2.6.1自组织特征映射神经网络结构竞争层输入层SOM神经网络结构2.6.1自组织特征映射神经网络结构SOM神经网络平面示意图竞争层输入层2.6.1自组织特征映射神经网络结构SOM神经网络立体示意图竞争层输入层2.6.2自组织特征映射网络的学习算法自组织特征映射学习算法原理Kohonen自组织特征映射算法,能够自动找出输入数据之间的类似度,将相似的输入在网络上就近配置。因此是一种可以构成对输入数据有选择地给予响应的网络。类似度准则欧氏距离n21()jiijidxw2.6.2自组织特征映射网络的学习算法自组织特征映射学习算法步骤(1)网络初始化用随机数设定输入层和映射层之间权值的初始值(2)输入向量把输入向量输入给输入层(3)计算映射层的权值向量和输入向量的距离映射层的神经元和输入向量的距离,按下式给出n21()jiijidxw2.6.2自组织特征映射网络的学习算法自组织特征映射学习算法步骤(4)选择与权值向量的距离最小的神经元计算并选择使输入向量和权值向量的距离最小的神经元,把其称为胜出神经元并记为,并给出其邻接神经元集合。(5)调整权值胜出神经元和位于其邻接神经元的权值,按下式更新:(6)是否达到预先设定的要求如达到要求则算法结束,否则返回(2),进入下一轮学习h(,)()ijiijwjjxw(1)()ijijijwtwtwj2.6.2自组织特征映射网络的学习算法邻域函数由邻域函数可以看到,以获胜神经元为中心设定了一个邻域半径,称为胜出邻域。学习初期,胜出神经元和其附近的神经元全部接近当时的输入向量,形成粗略的映射。随着学习的进行而减小,胜出邻域变窄,胜出神经元附近的神经元数变少。因此,学习方法是一种从粗调整向微调整变化,最终达到预定目标的过程。22h(,)exp()jjjj22.6.3自组织网络学习算法的MATLAB实现MATLAB中自组织神经网络的重要函数和基本功能函数名功能newsom()创建一个自组织特征映射神经网络plotsom()绘制自组织特征映射网络的权值矢量vec2ind()将单值矢量组变换成下标矢量compet()竞争传输函数midpoint()中点权值初始化函数learnsom()自组织特征映射权值学习规则函数2.6.3自组织网络学习算法的MATLAB实现MATLAB中自组织神经网络的重要函数和基本功能newsom()功能创建一个自组织特征映射网络函数格式net=newsom(PR,[D1,D2,...],TFCN,DFCN,OLR,OSTEPS,TLR,TND)说明net为生成的新BP神经网络;PR为网络输入矢量取值范围的矩阵[PminPmax];[D1,D2,...]为神经元在多维空间中排列时各维的个数;TFCN为拓扑函数,缺省值为hextop;DFCN为距离函数,缺省值为linkdist;OLR为排列阶段学习速率,缺省值为0.9;OSTEPS为排列阶段学习次数,缺省值为1000;TLR为调整阶段学习速率,缺省值为0.02,TND为调整阶段领域半径,缺省值为1。2.6.3自组织网络学习算法的MATLAB实现plotsom()功能绘制自组织特征映射网络图的权值向量函数格式(1)plotsom(pos)(2)plotsom(W,D,ND)说明式中pos是网络中各神经元在物理空间分布的位置坐标矩阵;函数返回神经元物理分布的拓扑图,图中每两个间距小于1的神经元以直线连接;W为神经元权值矩阵;D为根据神经元位置计算出的间接矩阵;ND为领域半径,缺省值为1;函数返回神经元权值的分布图,图中每两个间距小于ND的神经元以直线连接。2.6.3自组织网络学习算法的MATLAB实现yec2ind()功能将单值向量组变换成下标向量格式ind=vec2ind(vec)说明式中,vec为m行n列的向量矩阵x,x中的每个列向量i,除包含一个1外,其余元素均为0,ind为n个元素值为1所在的行下标值构成的一个行向量。2.6.3自组织网络学习算法的MATLAB实现例2-5人口分类是人口统计中的一个重要指标,现有1999共10个地区的人口出生比例情况如下:出生男性百分比分别为:0.55120.51230.50870.50010.60120.52980.50000.49650.51030.5003;出生女性百分比分别为:0.44880.48770.49130.49990.39880.47020.50000.50350.48970.49972.6.3自组织网络学习算法的MATLAB实现例2-5源程序建立一个自组织神经网络对上述数据分类,给定某个地区的男、女出生比例分别为0.5,0.5,测试训练后的自组织神经网络的性能,判断其属于哪个类别。解答:MATLAB代码如下:P=[0.55120.51230.50870.50010.60120.52980.50000.49650.51030.5003;0.44880.48770.49130.49990.39880.47020.50000.50350.48970.4997];%创建一个自组织神经网络,[01;01]表示输入数据的取值范围在[0,1]之%间,[3,4]表示竞争层组织结构为34,其余参数取默认值net=newsom([01;01],[34]);net.trainParam.epochs=500;net=init(net);net=train(net,P);y=sim(net,P);%获取训练后的自组织神经网络的权值w1=net.IW{1,1};%绘出训练后自组织神经网络的权值分布图plotsom(w1,net.layers{1}.distances);例2-5SOM网络权值分布图例2-5SOM网络数据分类图类别1类别2类别5类别4类别3测试数据属于类别5小结概述自组织特征映射神经网络结构自组织特征映射网络的学习算法自组织网络学习算法的MATLAB实现自组织特征映射网络的特点