主讲:周润景教授单位:电子信息工程学院自组织特征映射神经网络数据分类设计目录自组织特征映射神经网络简介自组织特征映射神经网络结构自组织特征映射学习算法原理自组织特征映射学习算法步骤SOM学习算法的MATLAB实现SOM网络应用于模式分类一.自组织特征映射神经网络简介自组织特征映射神经网络(SOM)也是无教师学习网络,主要用于对输入向量进行区域分类。其结构与基本竞争型神经网络很相似。与自组织竞争网络的不同之处:SOM网络不但识别属于区域邻近的区域,还研究输入向量的分布特性和拓扑结构。二.自组织特征映射神经网络结构由芬兰学者TeuvoKohonen于1981年提出。与自组织竞争网络不同的是,在自组织映射神经网络中邻近的神经元能够识别输入空间中邻近的部分。I’mTeuvoKohonen二.自组织特征映射神经网络结构SOM神经网络结构三、自组织特征映射学习算法原理Kohonen自组织特征映射算法,能够自动找出输入数据之间的类似度,将相似的输入在网络上就近配置。因此是一种可以构成对输入数据有选择地给予响应的网络。类似度准则---欧氏距离:niijijwxd12)(四、自组织特征映射学习算法步骤1.网络初始化用随机数设定输入层和映射层之间权值的初始值2.输入向量把输入向量输入给输入层3.计算映射层的权值向量和输入向量的距离映射层的神经元和输入向量的距离,按下式给出niijijwxd12)(四、自组织特征映射学习算法步骤4.选择与权值向量的距离最小的神经元计算并选择使输入向量和权值向量的距离最小的神经元,把其称为胜出神经元并记为,并给出其邻接神经元集合。5.调整权值胜出神经元和位于其邻接神经元的权值,按下式更新:6.是否达到预先设定的要求如达到要求则算法结束,否则返回2,进入下一轮学习。ijijijwtwtw)()1(*j))(,(*ijjijwxjjhw五、SOM学习算法的MATLAB实现MATLAB中自组织神经网络的重要函数和基本功能函数名功能newsom()创建一个自组织特征映射神经网络plotsom()绘制自组织特征映射网络的权值矢量vec2ind()将单值矢量组变换成下标矢量compet()竞争传输函数midpoint()中点权值初始化函数learnsom()自组织特征映射权值学习规则函数五、SOM学习算法的MATLAB实现MATLAB中自组织神经网络的重要函数和基本功能newsom()_功能:创建一个自组织特征映射网络函数_格式:net=newsom(PR,[D1,D2,...],TFCN,DFCN,OLR,OSTEPS,TLR,TND)_说明:PR为网络输入矢量取值范围的矩阵[PminPmax];[D1,D2,...]为神经元在多维空间中排列时各维的个数;TFCN为拓扑函数,缺省值为hextop;DFCN为距离函数,缺省值为linkdist;OLR为排列阶段学习速率,缺省值为0.9;OSTEPS为排列阶段学习次数,缺省值为1000;TLR为调整阶段学习速率,缺省值为0.02,TND为调整阶段领域半径,缺省值为1。五、SOM学习算法的MATLAB实现MATLAB中自组织神经网络的重要函数和基本功能yec2ind()_功能:将单值向量组变换成下标向量_格式:ind=vec2ind(vec)_说明:式中,vec为m行n列的向量矩阵x,x中的每个列向量i,除包含一个1外,其余元素均为0,ind为n个元素值为1所在的行下标值构成的一个行向量。六、SOM网络应用于模式分类以酒瓶分类回收三元色数据为例,按照颜色数据所表征的特点,将数据按各自所属的类别归类。其中,前29组数据已确定类别,后30组数据待确定类别。使用自组织竞争网络对三元色数据进行分类,其MATLAB程序如下:clear;clc;%训练样本pConvert=importdata('SelfOrganizationCompetitiontrain.dat');p=pConvert';net=newsom(minmax(p),[41]);%神经元排列为[14]时结果相同,只是神经元的位置改变了%设置网络训练次数net.trainParam.epochs=200;%开始训练net=train(net,p);%绘制网络的神经元分布图plotsom(net.layers{1}.positions);六、SOM网络应用于模式分类%用训练好的自组织竞争网络对样本点分类Y=sim(net,p);%分类数据转换输出Yt=vec2ind(Y)pause%待分类数据dataConvert=importdata('SelfOrganizationCompetitionSimulation.dat');data=dataConvert';%用训练好的自组织竞争网络分类样本数据Y=sim(net,data);Ys=vec2ind(Y)由于自组织特征映射神经网络采用的是无教师学习方式,没有期望输出,因此训练过程中不用设置判断网络是否结束的误差项。只要设置网络训练次数就可以了,并且在训练过程中也只显示训练次数。运行上述程序后,系统显示运行过程,并给出聚类结果:TRAINR,Epoch0/200TRAINR,Epoch25/200TRAINR,Epoch50/200TRAINR,Epoch75/200TRAINR,Epoch100/200TRAINR,Epoch125/200TRAINR,Epoch150/200TRAINR,Epoch175/200TRAINR,Epoch200/200TRAINR,Maximumepochreached.Yt=1至16列242343214424411317至29列2112214132444六、SOM网络应用于模式分类系统训练结束后,给出分类结果。由于竞争型网络采用的是无教师学习方式,因此其显示分类结果的方式与目标设置方式可能不同,这里采用统计法比较自组织竞争网络给出的结果与原始分类结果,如下表所示。原始分类结果统计A(数据序号)4、6、16、25B(数据序号)8、14、15、18、19、22、24C(数据序号)1、3、7、11、17、20、21、26D(数据序号)2、5、9、10、12、13、23、27、28、29自组织特征映射神经网络分类结果A(数据序号)4、6、16、25B(数据序号)8、14、15、18、19、22、24C(数据序号)1、3、7、11、17、20、21、26D(数据序号)2、5、9、10、12、13、23、27、28、29六、SOM网络应用于模式分类网络的神经元分布图如图所示。六、SOM网络应用于模式分类从统计结果可知,自组织竞争网络输出结果与原始分类结果完全吻合。继续运行程序则可得到待分类样本数据的分类结果。Ys=1至15列24234321442441116至30列32112214132444231至45列23241124322314146至49列4241六、SOM网络应用于模式分类