【自组织竞争网络】自组织竞争网络进行分类的一个小案例
【自组织竞争网络】自组织竞争网络进行分类的一个小案例
注:本文仅作为自己的学习记录以备以后复习查阅
一 概述
自组织神经网络可以通过对客观事件的重复分析学习该事件的内在规律,并对具有类似/共同特征的新事物进行分类,它的基本思想类似于比赛,通过竞争来获得对输入模式的响应机会,最后也只会有一个神经元成为胜利者,那么各个连接的权重值就会向着更有利于胜利神经元(代表了当前输入样本的竞争模式)竞争的方向进行调整。
如图所示,可以将网络分为两个层(一般来说也就两层),分别是竞争层和输入层,网络连接的权值为:
竞争后的权值修正公式如下(当xij活跃时,对应的第i个权值增加,否则减小):
二 案例(MATLAB实现)
案例中使用到的关键函数为net(),调用格式如下:
net = newc(PR,S,KLR,CLR)# PR为R个输入元素的最大值和最小值的设定值;S为神经元数目;KLS为Kohonen的学习速率,默认为0.01;CLR为Conscience学习速率,默认为0.001;net为函数的返回值,一个新的竞争层
首先清空环境变量,并加载数据。原始数据一共包含60个样本,将其分为40个训练样本和20个预测样本:
# 清空环境变量 clc clear # 加载数据并进行划分 load gene.mat; data=gene; P=data(1:40,:); T=data(41:60,:); # 转置 P=P'; T=T'; # 取输入元素的最大值和最小值 Q=minmax(P);
接下来进行网络的建立和训练:
# 利用newc( )命令建立竞争网络:2代表竞争层的神经元个数,也就是要分类的个数。0.1代表学习速率。 net=newc(Q,2,0.1) # 初始化网络及设定网络参数: net=init(net); net.trainparam.epochs=20; # 训练网络: net=train(net,P);
验证训练后的网络效果:
# 将原数据回带,测试网络效果: a=sim(net,P); ac=vec2ind(a)
网络分类预测:
Y=sim(net,T) yc=vec2ind(Y)
yc就是我们的分类结果
三 参考资料
1、MATLAB神经网络43个案例分析
以上!!!!!!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!








