(转载)无监督学习神经网络的分类(matlab实现)

news/2024/4/19 2:11:57
        对于监督学习神经网络,事先需要知道与输入相对应的期望输出,根据期望输出与网络输出间的偏差来调整网络的权值和阈值。然而,在大多数情况下,由于人们认知能力以及环境的限制,往往无法或者很难获得期望的输出,在这种情况下,基于有导师学习的神经网络往往是无能为力的。
        与有导师学习神经网络不同,无监督学习神经网络在学习过程中无需知道期望的输出。其与真实人脑中的神经网络类似,可以通过不断地观察、分析与比较,自动揭示样本中的内在规律和本质,从而可以对具有近似特征(属性)的样本进行准确地分类和识别。本章将详细介绍竞争神经网络与自组织特征映射(SOFM)神经网络的结构及原理,并以实例说明其具体的应用范围及效果。

1 理论基础

1.1 竞争神经网络概述

        1.竞争神经网络的结构
        竞争神经网络是一种典型的、应用非常广泛的无导师学习神经网络,其结构如图1所示。竞争神经网络一般由输入层和竞争层组成。与RBF等神经网络类似,输入层仅实现输入模式的传递,并不参与实际的运算。竞争层的各个神经元以相互竞争的形式来赢得对输入模式的响应,最终只有一个神经元赢得胜利,并使与该获胜神经元相关的各连接权值和阈值向着更有利于其竞争的方向发展,而其他神经元对应的权值和阈值保持不变。

图1 竞争神经网络结构 

        2.竞争神经网络的学习算法
        如前文所述,竞争神经网络在学习的过程中,仅用到了样本的输入信息,无须知晓样本对应的输出信息。因此,其学习算法与有导师学习神经网络的学习算法有着本质上的区别。
        (1)网络初始化
        如图1所示,输入层由R个神经元构成,竞争层由S1个神经元构成。不失一般性,设训练样本的输入矩阵为

        3.竞争神经网络的MATLAB工具箱函数
        函数newc用于创建一个竞争神经网络,其调用格式为
net =newc(PR,S,KLR,CLR)
        其中,PR为输入变量的最小及最大值构成的矩阵;S为竞争层神经元个数;KLR为权值 的学习速率(默认为0.01);CLR为阈值的学习速率(默认为0.001);net为创建好的竞争网络。

1.2 SOFM神经网络概述

        1.SOFM神经网络的结构

图2 OFM神经网络结构 

        自组织特征映射(self-organizing feature mapping,SOFM)神经网络是Kohonen于1981年根据神经元有序的排列可以反映出所感觉到的外界刺激的某些物理特性而提出的。其主要思想是在学习过程中逐步缩小神经元之间的作用邻域,并依据相关的学习规则增强中心神经元的激活程度,从而去掉各神经元之间的侧向连接,以达到模拟真实大脑神经系统“近兴奋远抑制"的效果。如图2所示,SOFM神经网络的结构与竞争神经网络的结构类似,是一个由输入层和自组织特征映射层(竞争层)组成的两层网络。在竞争神经网络中,每次仅有一个神经元获胜,即只有一个神经元的权值和阈值得到修正。而在SOFM神经网络中,不仅与获胜神经元对应的权值和阈值得到调整,其邻近范围内的其他神经元也有机会进行权值和阈值调整,这在很大程度上改善了网络的学习能力和泛化能力。
        2.SOFM神经网络的学习算法
        SOFM神经网络的学习算法与竞争神经网络的学习算法类似,仅在权值调整部分有较大差异。

        (4)学习速率及邻域更新
        获胜神经元及其邻域内的神经元权值更新完成后,在进入下一次迭代前,需要更新学习速率及邻域,即

        (5)迭代结束判断
        若样本没有学习完,则再另外随机抽取一个样本,返回步骤(2)。否则,若N<T,令N=N+1,返回步骤(2);否则,迭代结束。
        3.SOFM神经网络的MATLAB工具箱函数
        函数newsom用于创建一个SOFM神经网络,其调用格式为
net=newsom(P,[D1,D2,...],TFCN,DFCN,STEPS,IN)
        其中,P为网络输入向量;Di为网络第i层的维数(默认为[58]);TFCN为网络的拓扑函数(默认为‘hextop’);DFCN为网络的距离函数(默认为'linkdist');STEPS为邻近距离递减到1的步数(默认为100);IN为初始的邻近距离(默认为3);net为创建好的SOFM网络。

2 案例背景

2.1 问题描述

        近年来,国内煤矿事故时有发生,严重危害了人民的生命和财产安全。其中,由于煤矿突水造成的事故不容忽视。因此,不少专家和学者致力于研究矿井突水事故的预防,突水水源的判别对预测矿井突水事故的发生有着重要的意义。相关研究表明,可以利用水化学法判别矿井的突水水源,其基本依据是:由于受到含水层的沉积期、地层岩性、建造和地化环境等诸多因素的影响,使储存在不同含水层中的地下水主要化学成分有所不同。为了准确地判别突水水源,需要综合多种因素,用得比较多的是“7大离子"溶解氧、硝酸根离子等。
        目前,有很多种判别突水水源的方法,如模糊综合评判、模糊聚类分析、灰色关联度法等,然而这些方法都要事先假定模式或主观规定一些参数,致使评价的结果主观性较强。现采集到某矿的39个水源样本,分别来自于4个主要含水层:二灰和奥陶纪含水层、八灰含水层、顶板砂岩含水层和第四系含水层(砂砾石成分以石灰岩为主)。以每个水源样本中的\text Na^+\text K^+\text Ca^{2+}\text {Mg}^{2+}\text{Cl}^-\text{SO}_4^{2-}\text{HCO}_3^-7种离子的含量作为判别因素,试利用竞争神经网络和SOFM神经网络分别建立判别模型,并对模型的性能进行综合评价。

2.2 解题思路及步骤

        依据问题描述中的要求,实现竞争神经网络及SOFM神经网络的模型建立及性能评价,可以分为以下几个步骤,如图3所示。

图3 模型建立步骤 

        1.产生训练集/测试集
        由于采集到的水源样本较少,为了保证所建立的判别模型具有较好的泛化性能,这里从每个含水层中取出一个水源样本(共4个样本)作为测试集,剩下的35个水源样本作为训练集。
        2.创建/训练竞争神经网络
        创建竞争神经网络前需要确定网络的结构,即竞争层神经元的数目与待分的类别数目相等,如问题描述所示,水源样本来自于4个不同的含水层,因此,竞争层神经元的数目为4。同时,还应考虑权值学习速率、阈值学习速率及训练次数等参数对网络性能的影响。
        3.创建SOFM神经网络
        创建SOFM神经网络前需要确定网络的结构,即确定竞争层神经元的数目及拓扑结构。同时,还应考虑邻近距离、距离函数及训练次数等参数对网络性能的影响。
        4.仿真测试
        判别模型训练完成后,便可以将测试集的4个水源样本对应的7个判别因素送入模型,模型的输出对应的便是各个水源样本的预测类别。
        5.性能评价
        通过对比预测类别与真实类别,可以对所建立的判别模型的性能进行综合评价。并通过研究网络结构及相关参数对网络性能的影响,寻求理想的网络结构及参数,从而使得判别模型的泛化能力得到不断的提升和改善。

3 MATLAB程序实现

        利用MATLAB神经网络工具箱提供的函数,可以方便地在MATLAB环境下实现上述步骤。
%% 清空环境变量
clear all
clc%% 训练集/测试集产生% 导入数据
load water_data.mat
% 数据归一化
attributes = mapminmax(attributes);
% 训练集——35个样本
P_train = attributes(:,1:35);
T_train = classes(:,1:35);
% 测试集——4个样本
P_test = attributes(:,36:end);
T_test = classes(:,36:end);%% 竞争神经网络创建、训练及仿真测试% 创建网络
net = newc(minmax(P_train),4,0.01,0.01);
% 设置训练参数
net.trainParam.epochs = 500;
% 训练网络
net = train(net,P_train);
% 仿真测试
% 训练集
t_sim_compet_1 = sim(net,P_train);
T_sim_compet_1 = vec2ind(t_sim_compet_1);
% 测试集
t_sim_compet_2 = sim(net,P_test);
T_sim_compet_2 = vec2ind(t_sim_compet_2);%% SOFM神经网络创建、训练及仿真测试% 创建网络
net = newsom(P_train,[4 4]);
% 设置训练参数
net.trainParam.epochs = 200;
% 训练网络
net = train(net,P_train);
% 仿真测试
% 训练集
t_sim_sofm_1 = sim(net,P_train);
T_sim_sofm_1 = vec2ind(t_sim_sofm_1);
% 测试集
t_sim_sofm_2 = sim(net,P_test);
T_sim_sofm_2 = vec2ind(t_sim_sofm_2);%% 结果对比% 竞争神经网络
result_compet_1 = [T_train' T_sim_compet_1']
result_compet_2 = [T_test' T_sim_compet_2']
% SOFM神经网络
result_sofm_1 = [T_train' T_sim_sofm_1']
result_sofm_2 = [T_test' T_sim_sofm_2']

说明:

       1.39个水源样本数据存放在water_data.mat文件中,其包含的变量attributes和classes分别对应判别因素和类别。如前文所述,前35个样本作为训练集建立判别模型,剩余的4个样本(分别对应4个类别)作为测试集对模型的性能进行评价。
        2.
为了减少输入变量间的变化较大(不属于同一数量级)对模型性能的影响,在模型建立之前有必要对输入变量进行归一化。这里采用函数mapminmax进行归一化预处理,具体用法请参考帮助文档。低版本的MATLAB中,归一化函数为premnmx,反归一化函数为postmnmx。
3.(1)result_compet_1为35行2列的矩阵,分别表示竞争神经网络训练集的真实类别和对应的获胜神经元标号。(2)result_compet_2为4行2列的矩阵,分别表示竞争神经网络测试集的真实类别和对应的获胜神经元标号。(3)result_sofm_1为35行2列的矩阵,分别表示SOFM神经网络训练集的真实类别和对应的获胜神经元标号。(4)result_sofm_2为4行2列的矩阵,分别表示SOFM神经网络测试集的真实类别和对应的获胜神经元标号。

3.6 结果分析

        由于网络在训练的过程中采取的是随机抽取训练样本的方法,因此每次运行的结果都会有所不同。某次运行的结果如表27-1所列。从表中不难发现以下几点:
        (1)对于竞争神经网络,第Ⅱ类水源样本大多与竞争层第1个神经元相对应(仅有第15号样本对应的是竞争层第3个神经元),因此可以认定对于第Ⅱ类水源样本而言,竞争层第1个神经元为获胜神经元。同理,可以认定,对于第Ⅲ类水源样本而言,竞争层第2个神经元为获胜神经元(仅有第20号样本对应的是竞争层第3个神经元)。然而,对于第I类和第IV类水源样本而言,则很难确定与之对应的获胜神经元。据此对应关系,可以发现测试集中37号和38号样本分类正确,而36号和39号样本难以判断。
        (2)对于SOFM神经网络,第I类水源样本对应的获胜神经元编号为3、8、11、12、14;第Ⅱ类水源样本对应的获胜神经元编号为14、15、16;第Ⅲ类水源样本对应的获胜神经元编号为1、2、5、6;第IV类水源样本对应的获胜神经元编号为4、7、8、13。据此对应关系可以发现,测试集中4个水源样本对应的获胜神经元编号在训练集中对应的获胜神经元编号集合内,因此,可以认定判别正确率为100%。值得一提的是,若测试集中某个水源样本的预测获胜神经元编号为8,则难以界定其属于第I类或是第IV类水源样本。同理,若测试集中某个水源样本的预测获胜神经元编号为14,则难以界定其属于第I类或是第Ⅱ类水源样本。
表1 竞争神经网络与SOFM神经网络预测结果对比
        与之类似,若测试集中某个水源样本的预测获胜神经元编号为9或者10,则难以确定其属于哪一类水源样本。这是因为在训练过程中,竞争层9号和10号神经元从未赢得获胜机会,一直处于抑制状态,即成为所谓的“死”神经元。从图4中的竞争层各个神经元成为获胜神经元的统计次数也可以直观地观察到这一点。
        值得一提的是,图4中神经元的编号方式是从左至右,从下至上,神经元编号逐渐增加,即左下角的神经元编号为1,右上角的神经元编号为16。神经元编号与其获胜次数间的映射关系如表2所列。  
表2神经元编号与其获胜次数间的映射关系 
        图25为竞争层各个神经元与其周围邻近神经元间的距离分布图,相邻神经元间填充区域的颜色表示两个神经元间的距离远近程度。颜色愈深(接近于黑色),表明神经元间的距离越远。从图中可以看出,2号与3号神经元间的距离较远,3号神经元与4号神经元间的距离较远,同时,从表27-1中可以看到,2、3、4号获胜神经元分别对应第Ⅲ、I、IV类水源样本,这表明,不同类别对应的获胜神经元间距离较远。同理,可以观察出,同一类别对应的获胜神经元间的距离较近,如14、15与16号神经元间的距离较近,均对应第Ⅱ类水源样本。其余类别分析方法类似,此处不再一一列举。  

4.总结

4.1 竞争神经网络与SOFM神经网络性能对比

        从表1及上述分析结果可以清晰地看出,与竞争神经网络相比,SOFM神经网络的性能更好,泛化能力更强(即使SOFM神经网络中存在“死”神经元问题)。这是因为,竞争神经网络在学习时,每次仅有一个神经元赢得获胜机会,只有获胜神经元对应的权值得到调整。而SOFM神经网络虽然每次亦只有一个神经元赢得获胜机会,但其及其邻近范围内的神经元对应的权值同时进行修正,朝着更有利于其获胜的方向调整。同时,SOFM神经网络逐渐缩小其邻域范围,逐渐“排斥”邻近的神经元。这种“协作”与“竞争”相结合的模式使得其性能更加优越。

4.2 案例延伸

        近年来,竞争神经网络与SOFM神经网络的算法越来越受到人们的重视,已经成为继BP网络之后研究最多、应用最广泛的一种神经网络模型。然而,越来越多的实践研究表明,竞争层中“死”神经元对网络性能的影响较大。对于“死”神经元,增加其阈值的调整幅度,可以使其逐渐成为获胜神经元,从而赢得公平竞争的机会。同时,SOFM神经网络需预先设定网络的拓扑结构,在训练过程中其拓扑结构保持不变,通常只有在训练结束之后才发现不同的网络拓扑结构也许能得到更好的结果。大多数情况下,并没有先验知识能够让人们事先去选择一个合适的网络规模,所以这些因素严重地影响了SOFM的应用,有待于进一步的研究和实践。

http://www.ppmy.cn/news/493839.html

相关文章

京东商品主图定时替换,90%卖家这样做

在京东平台上架产品&#xff0c;商家需要上传好精心制作的主图&#xff0c;尤其在节日促销的时候&#xff0c;还需要将主图打上水印以便更好地吸引用户点击购买。当促销结束后&#xff0c;运营需要及时更换主图。 正常情况下&#xff0c;投放主图水印的商品&#xff0c;创建了一…

京东七夕报名要注意什么?四川万顿思

距离今年的七夕节已经没有多长的时间了&#xff0c;到时候很多的电商平台都会举办七夕活动哦&#xff0c;像我们比较熟悉的电商平台就有京东了&#xff0c;一定会有活动的&#xff0c;那么七夕京东活动的力度大不大?下面进行介绍。 其实关于京东七夕的活动官方还没有公布&…

POP店铺设置京东拼购与拼购店铺一样么?

京东拼购是现在主打拼团购物形式的一个平台&#xff0c;加上使用费减免政策&#xff0c;吸引了不少商家入驻。商家可直接入驻京东拼购&#xff0c;若是已经有POP店铺了&#xff0c;也是可以进行拼购的相关设置的。这肯定有商家会问&#xff0c;POP店铺和拼购店铺设置京东拼购有…

360oauth token是什么意思_京东开放服务平台(JOS)关于token问题汇总(一)

很多京东pop商家以及第三方软件服务商在对接京东开放服务平台API接口时&#xff0c;会遇到各种与token相关的问题&#xff0c;下面对于合作伙伴经常遇到的问题做个汇总&#xff1a; 问&#xff1a;1丶京东pop商家在仓库对接京东后台的时候需要accessToken&#xff0c; 这个怎么…

京东个人版C店即将上线

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 来自小胖哥的爆料&#xff1a;京东在本月底过年之前马上要上线个人版的一个京东C店&#xff0c;这次C店是在主站内&#xff0c;对标的就是淘宝C店。 ​熟悉京东应该知道京喜跟京东主站是两个不同…

36氪独家|京东零售宣布多位高管新任命,POP平台部门成整合重点

36氪独家&#xff5c;京东零售宣布多位高管新任命&#xff0c;POP平台部门成整合重点 https://www.toutiao.com/i6911514634315170317/?tt_fromweixin&utm_campaignclient_share&wxshare_count1&timestamp1613486977&appnews_article&utm_sourceweixin&a…

用php写京东抢购,关于抢京东券高并发的问题?

之前在一个微信公众号上做了一个抢京东券的功能&#xff0c; 50 张京东券&#xff0c;面额 50 、 100 不等&#xff0c;存在一张 card 表中&#xff0c;四个字段&#xff0c; id &#xff0c; number &#xff0c; money &#xff0c; is_taken 。 因为之前没有这种高并发处理的…

京东向上的力量:初心不改,传递信赖

体验经济时代&#xff0c;京东如何引领消费服务&#xff1f;用户至上&#xff0c;体验为王。京东回归初心&#xff0c;下真功夫&#xff0c;给离客户最近的人上调话语权。 出品| 大力财经 文 | 魏力 2021年12月31日&#xff0c;全球疫情即将迎来拐点时刻&#xff0c;经济即将重…

京东自营售前客服考试

为什么会出现中差评&#xff1f; A 产品质量问题/售后流程不满 B 好评返现 C 恶意差评 D 想要赠品/讹钱 8 下列哪些问答场景是支持申请删除的呢&#xff1f; A 商品不好用 B 在问答上涉及到价格泄露 C 在问答上评论辱骂等不文明语言 D 在问答上发布反动情绪的相关文字…

京东HBase平台进化与演进

文章转载自公众号 京东零售技术 &#xff0c; 作者 吴怡燃 数据存储之HBase 随着信息化数字化的发展&#xff0c;越来越多的数据以数字化的方式存储在计算机系统中。而传统的数据库已经无法满足海量数据存储的需求。数据存储技术也由原来的单机演变成了现在的多机分布式。虽然…

京东平行门槛考试

如果商家没有设置商品的参照价和预警阈值&#xff0c;优惠监控系统还会报警吗&#xff1f; √ A 会&#xff0c;利用风控的兜底规则计算商品的报警价格&#xff0c;对商品进行预警 B 不会&#xff0c;商家没有设置&#xff0c;系统不会报警 02 在优惠监控系统中查看到商品未来可…

保卫方案(京东笔试题)

Question 战争游戏的至关重要环节就要到来了&#xff0c;这次的结果将决定王国的生死存亡&#xff0c;小B负责首都的防卫工作。首都位于一个四面环山的盆地中&#xff0c;周围的n个小山构成一个环&#xff0c;作为预警措施&#xff0c;小B计划在每个小山上设置一个观察哨&…

网络爬虫——爬取京东数据

下面是我的代码框架&#xff08;请先看代码需要改进的地方&#xff09; 需要改进的是 1、采用双缓冲队列&#xff0c;即两个队列&#xff0c;可以理解为一个队列用于生产者的数据写入&#xff0c;一个用于消费者的数据读取&#xff0c;当消费者队列没有数据从生产者队列获取&a…

京东到底做对了什么

昨天有朋友问我一个问题&#xff1a;究竟京东做对了什么&#xff0c;何以10年工夫就进入财富世界500强&#xff1f; 我想了想。 一、首先大风口肯定是都踩对了 1、互联网热潮&#xff1a;中国家庭ADSL宽带上网普及、性能加快、资费降低&#xff0c;最明显的是在2007、2008两年。…

京东交易架构分享

导读&#xff1a;对于应对突发的峰值访问&#xff0c;每个技术团队都有自己的经验及方法&#xff0c;但是这些方法远没有得到体系化的讨论。高可用架构在 6 月 25 日举办了『高压下的架构演进』专题活动&#xff0c;进行了闭门私董会研讨及对外开放的四个专题的演讲&#xff0c…

关于京东POP和采销双平台选择合作

前几天看到有派友在问如何进京东采销平台的问题&#xff08;也就是让京东做为经销商的方式零售产品&#xff09;。我这里做个简要说明&#xff0c;供大家参考1.一般采销平台和POP平台的品牌不重复&#xff0c;这里主要针对著名品牌和大牌&#xff0c;比如联想、戴尔、罗技等&am…

在京东工作是一种什么体验

作者&#xff1a;接蒜君。微信公众号&#xff1a;接蒜君(jiesuanjun)。互联网公司产品。 原创不易&#xff0c;大家看完文章后&#xff0c;记得顺手点赞或分享到朋友圈哦&#xff0c;这是对接蒜君的支持&#xff0c;谢谢。 1F加班 我所在的大部门&#xff0c;已婚已育的男的…

FMI飞马网【线上直播】京东POP接口自动化测试

【线上直播】京东POP接口自动化测试 ▼ 嘉宾&#xff1a;赵亮 赵亮简介 京东商城-POP平台-测试与质量管理部高级测试工程师。2012年加入京东&#xff0c;8年电商行业软件测试相关从业经验。参与过多个大型项目的测试&#xff0c;擅长功能测试、自动化测试。 ▼ FMI线上直播 分享…

京东POP客服初级考试

以下选项中&#xff0c;关于月平均响应时间描述正确的是&#xff1f; A 月度平均响应时间大于45秒&#xff0c;每次扣2分 B 月度平均响应时间大于30秒&#xff0c;每次扣2分 C 月度平均响应时间大于45秒&#xff0c;每次扣4分 D 月度平均响应时间大于30秒&#xff0c;每次扣…

2021年京东预售双11什么时候开始?

2021年京东双十一详细时间&#xff0c;2021年京东预售双11什么时候开始? 前面小编赵一八笔记分享了淘宝、天猫双11活动时间节奏&#xff0c;本篇文章小编就来和大家分享2021年京东双11预售时间、跨店满减、正式售卖时间节奏。后续有双11红包玩法更新会第一时间发出来。 2021…