精华内容
下载资源
问答
  • 竞争神经网络

    千次阅读 2017-08-08 20:02:13
    竞争神经网络    竞争型神经网络是基于无监督学习(Unsupervised learning)方法的神经网络的一种重要类型,它经常作为基本的网络形式,构成其它一些具有自组织能力的网络,如自组织映射网络、自适应共振理论...
    竞争神经网络

           
           竞争型神经网络是基于无监督学习(Unsupervised learning)方法的神经网络的一种重要类型,它经常作为基本的网络形式,构成其它一些具有自组织能力的网络,如自组织映射网络、自适应共振理论网络、学习向量量化网络等。
           生物神经网络存在一种侧抑制的现象,即一个神经细胞兴奋后,通过它的分支会对周围其他神经细脑产生抑制,这种抑制使神经细胞之间出现竞争:在开始阶段,各神经元对相同的输入具有相同的响应机会,但产生的兴奋程度不同,其中兴奋最强的一个神经细胞对周围神经细胞的抑制作用也最强,从而使其它神经元的兴奋得到最大程度的抑制,而兴奋最强的神经细胞却“战胜”了其它神经元的抑制作用脱颖而出,成为竞争的胜利者,并因为获胜其兴奋的程度得到进一步加强,正所谓“成者为王,败者为寇”。

       1、竞争型神经网路模型:
         
    关于输入层到竞争层有几种不同的计算方法:
            1、计算输入向量和权值距离的负数,然后加上一个阈值,结果大的那个神经元获胜,获胜为1,其他为0,然后调节获胜神经元对应的阈值。以下为步骤:

        可以看出竞争型神经网络为单层网络。||ndist|| 的输入为输入向量p和输入权值向量IW,其输出为S11的列向量,列向量中的每个元素为输入向量p和输入权值向量IW距离的负数(negative),在神经网络工具箱中以距离函数negdist进行计算。 

           n1为竞争层传输函数的输入,其值为输入向量p和输入权值向量IW距离的负数与阈值b1之和。如果所有的阈值向量为0,则当输入向量p和输入权值向量IW相等时,n1为最大值0。
           对于n1中最大的元素,竞争层传输函数输出1(即竞争的“获胜者”输出为1),而其它元素均输出0。如果所有的阈值向量为0,则当神经元的权值向量最接近输入向量时,它在n1各元素中的负值最小,而值最大,从而赢得竞争,对应的输出为1。 

            2、下面的Kohonen学习规则里,让输入向量与阈值向量相乘,比较输出神经元的大小取最大值,为获胜神经元,置为1,其他的为0。

    3、《43个案例分析》里的学习方法暂时不采用。

            2、竞争型神经网络的学习

            (1)Kohonen权值学习规则:

            另外一种描述:

      竞争型神经网络按Kohonen学习规则对获胜神经元的权值进行调整。假若第i个神经元获胜,则输入权值向量的第i行元素(即获胜神经元的各连接权)按下式进行调整:


    而其它神经元的权值不变。

             Kohonen学习规则通过输入向量进行神经元权值的调整,因此在模式识别的应用中是很有用的。通过学习,那些最靠近输入向量的神经元权值向量被修正,使之更靠近,其结果是获胜的神经元在下一次相似的输入向量出现时,获胜的可能性会更大;而对于那些相差很远的输入向量,获胜的可能性将变得很小。

    这样,当经过越来越多的训练样本学习后,每一个网络层中的神经元的权值向量很快被调整为最接近某一类输入向量的值。最终的结果是,如果神经元的数量足够多,则具有相似输入向量的各类模式作为输入向量时,其对应的神经元输出为1;而对于其它模式的输入向量,其对应的神经元输出为0。所以,竞争型网络具有对输入向量进行学习分类的能力。

        (2)阈值学习规则

       


    说明:阈值学习规则也与上面不同的输入层到竞争层两种不同的计算方法相对应。那个有阈值的计算方法刚好包含了阈值学习规则。

    3、竞争型神经网络存在的问题 

      对于模式样本本身具有较明显的分类特征,竞争型神经网络可以对其进行正确的分类,网络对同一类或相似的输入模式具有较稳定的输出响应。但也存在一些问题:
            (1)当学习模式样本本身杂乱无章,没有明显的分类特征时,网络对输入模式的响应呈现振荡的现象,即对同一类输入模式的响应可能激活不同的输出神经元,从而不能实现正确的分类。当各类模式的特征相近时,也会出现同样的状况。
            (2)在权值和阈值的调整过程中,学习率的选择在学习速率和稳定性之间存在矛盾,而不象前面我们介绍的其它学习算法,可以在刚开始时采用较大的学习率,而在权值和阈值趋于稳定时,采用较小的学习率。而竞争型神经网络当增加新的学习样本时,权值和阈值可能需要比前一次更大的调整。 

    (3)网络的分类性能与权值和阈值的初始值、学习率、训练样本的顺序、训练时间的长短(训练次数)等都有关系,而又没有有效的方法对各种因素的影响加以评判。
         
    (4)在MATLAB神经网络工具箱中,以trainr函数进行竞争型神经网络的训练,用户只能限定训练的最长时间或训练的最大次数,以此终止训练,但终止训练时网络的分类性能究竟如何,没有明确的指标进行评判。

    %% Matlab神经网络43个案例分析
    
    % 单层竞争神经网络的数据分类—患者癌症发病预测
    
    %% 清空环境变量
    clc
    clear
    
    %% 录入输入数据
    % 载入数据并将数据分成训练和预测两类  60组样本,每组样本有114个数据。
    load gene.mat;
    data=gene;              %60*114
    P=data(1:40,:);
    T=data(41:60,:);
    
    % 转置后符合神经网络的输入格式 
    P=P';           %114*40    矩阵相乘放在后边,114与权值相乘。
    T=T';           %114*20
    % 取输入元素的最大值和最小值Q:
    Q=minmax(P);     %求每一行的最小值和最大值。实际求的是,114个元素,在40个样本中的最大值和最小值。
    
    %% 网络建立和训练
    % 利用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)
    
    % 这里使用了变换函数vec2ind(),用于将单值向量组变换成下标向量。其调用的格式为:
    %  ind=vec2ind(vec)
    % 其中,
    % vec:为m行n列的向量矩阵x,x中的每个列向量i,除包含一个1外,其余元素均为0。
    % ind:为n个元素值为1所在的行下标值构成的一个行向量。
    
    
    
    %% 网络作分类的预测
    % 下面将后20个数据带入神经网络模型中,观察网络输出:
    % sim( )来做网络仿真
    Y=sim(net,T)
    yc=vec2ind(Y)



    展开全文
  • 这是《MATLAB智能算法30个案例分析》(第二版)第27章竞争神经网络的代码,书里面有配套的讲解,大家如果感觉不错的话,请多去官网买书
  • 关于自组织竞争神经网络的几个简单例子,包括基本竞争神经网络、LVQ神经网络、SOM神经网络。
  • 竞争神经网络与SOM神经网络 竞争神经网络与SOM神经网络 竞争神经网络与SOM神经网络 竞争神经网络与SOM神经网络 竞争神经网络与SOM神经网络 竞争神经网络与SOM神经网络
  • 5 竞争神经网络和SOM神经网络等相关内容
  • 5 竞争神经网络和SOM神经网络等相关内容
  • 竞争神经网络与SOM神经网络竞争神经网络与SOM神经网络
  • 自组织竞争神经网络,自组织竞争神经网络预测matlab,matlab源码
  • 竞争神经网络与SOM神经网络matlab竞争神经网络与SOM神经网络matlab
  • 5 竞争神经网络和SOM神经网络,基于som神经网络,matlab源码
  • 竞争神经网络与SOM神经网络matlab参考程序,包括详细的代码资料和讲解注释
  • matlab神经网络源码集锦-单层竞争神经网络的数据分类—患者癌症发病预测
  • 第7章 竞争神经网络 概述 Hamming网络 自组织映射网络 学习矢量量化 主分量分析 仿真实例 概 述 人脑神经系统 学习的自主性 信息存储的自组织性 学习和记忆的弹性 脑神经元的侧抑制性 Bottom-Up & Top-Down视觉听觉 ...
  • 竞争神经网络与SOM神经网络详解与matlab实践

    万次阅读 多人点赞 2018-09-27 14:57:32
    竞争神经网络 权值和阈值调整的方法 竞争神经网络的缺点: SOM神经网络 SOM权值的调整: 竞争神经网络与SOM神经网络在MATLAB中实现 SOM是无监督式的机器学习算法,它的结果不会涉及到具体的分类。例如最近在做...

    目录

    竞争神经网络

    权值和阈值调整的方法

    竞争神经网络的缺点:

    SOM神经网络

    SOM权值的调整:

    竞争神经网络与SOM神经网络在MATLAB中实现


    SOM是无监督式的机器学习算法,它的结果不会涉及到具体的分类。例如最近在做一个场景中垃圾检测的项目,结果只要告诉我们有无垃圾,安排人去清扫就可以,无需再细分类地告诉我们具体是哪一类垃圾,这样太繁琐而且性价比不高。SOM等无监督式的网络就很适合于这类情况的使用。而竞争神经网络是基于无监督学习方法的神经网络的重要类型,常常作为基本的网络形式构成一些具有自组织能力的网络,如SOM。

    竞争神经网络

    我们注意到,结构上和RBF等网络是比较像的。这里的距离是负数距离,||ndist||中带一个n,表示negative。在matlab中计算方法是ngedist。

    它的计算过程是:待分类样本输入后,和样本(就是输入权值向量IW)计算负距离。||ndist||计算后输出是S1x1维的列向量,列向量中每个元素为输入向量p和IW距离的负数。之后,再和一个阈值b1相加,得到n1。接下来就进入了最重要的竞争层,在竞争层中,只有值最大的一个输入才能“崭露头角”,输出为1,其它菜鸡的输入都会变成0。

    举个例子:

    如上图,只有在输入4的位置处,对应的输出才是1,其它都是0。这就是竞争层的作用。

    通过这样的方法,对于n1中最大的元素,可以获胜,竞争层输出1。如果b1=0,即没有阈值向量作用,那么只有当神经元的权值向量IW与输入向量最接近时,它在n1中各元素的负值最小,而值最大,所以能赢得竞争。这就是为什么要用负距离

    就使得不是每次迭代就把所有神经元的权重都更新一遍,而是每次迭代只更新一个隐含层神经元的权重。例如上面这个例子的输出a1,a1是S1x1的维度,其中就一个值为1,其它为0,那么就只有1的位置对应的那个神经元的权重才会得到更新(只有获胜的神经元才有机会跳转权值)。

    这样不断迭代,势必会带来一个问题:获胜的神经元通过调整能够不断缩小误差,导致它们取胜几率不断增大,导致最后整个网络中只有一部分胜利的神经元取得成功,其他神经元始终没有取得训练,成为“死神经元”。

    解决这个问题的办法:设置较大的b1,帮助被冷落的神经元们获得竞争胜利的机会。针对某个竞争神经元而言,如果偏置b1取得比较大,那么就能帮助输入p在竞争中获得更大的取胜概率。当然,这个b也是会动态调整的,通过学习函数learncon来帮助动态调整b:Update the biases with the learning function learncon so that the biases of frequently active neurons become smaller, and biases of infrequently active neurons become larger.

    权重IW{1,1}如何设定?

    • are initialized to the centers of the input ranges with the function midpoint.也就是说是取输入向量的中心

    中心怎么理解呢?简单的说是最大最小值的平均值。

    而midpoint在matlab里的效果:W = midpoint(S,PR)

    S

    Number of rows (neurons)

    PR

    R-by-Q matrix of input value ranges = [Pmin Pmax]

    and returns an S-by-R matrix with rows set to (Pmin+Pmax)'/2.

    这里,输入参数意义是:产生S个神经元,PR是一个矩阵(向量)。输出结果中注意有个转置!

    输入:

    W = midpoint(5,[0 1; -2 2])
    

    按上述规则计算结果是:

    阈值b1在matlab中获取方法是:initcon (S,PR)

    S

    Number of rows (neurons)

    PR

    R-by-2 matrix of R = [Pmin Pmax] (default = [1 1])

    具体的计算过程 :

    权值和阈值调整的方法

    从上面函数我们知道PR参数,是可以调整的,从而调整权值和阈值。我们在matlab文档里来看一下:

    竞争获胜的神经元的权值调整公式

    核心计算公式:

    等于前一个权值加一个误差项。误差项是学习率乘上误差delta,可以类比BP网络的调整方法,有点相似。只是BP中误差delta用的是梯度下降,要求一个微分,而这里就直接相减了。

    阈值的调整方法在matlab中的计算公式是:

    在周开利老师的《神经网络模型及其MATLAB仿真程序设计》一书中,生动地将c称为良心值。lr为学习率。表现在matlab代码中如下图:

    The Kohonen rule allows the weights of a neuron to learn an input vector, and because of this it is useful in recognition applications.

    Thus, the neuron whose weight vector was closest to the input vector is updated to be even closer. The result is that the winning neuron is more likely to win the competition the next time a similar vector is presented, and less likely to win when a very different input vector is presented. As more and more inputs are presented, each neuron in the layer closest to a group of input vectors soon adjusts its weight vector toward those input vectors. Eventually, if there are enough neurons, every cluster of similar input vectors will have a neuron that outputs 1 when a vector in the cluster is presented, while outputting a 0 at all other times. Thus, the competitive network learns to categorize the input vectors it sees.

    The function learnk is used to perform the Kohonen learning rule in this toolbox.

    竞争神经网络的缺点:

    SOM神经网络

    SOM能够通过其输入样本学会检测其规律性和输入样本相互之间的关系,并且根据这些输入样本的信息自适应地调整网络,使得网络以后的响应与输入样本相适应。竞争型神经网络的神经元通过输入信息能够识别成组的相似输入向量;自组织映射神经网络通过学习同样能够识别成组的相似输入向量,使那些网络层中彼此靠的很近的神经元对相似的输入向量产生响应。与竞争型神经网络不同的是,SOM不但能学习输入向量的分布情况,还可以学习输入向量的拓扑结构,其单个神经元对模式分类不起决定性作用,而要靠多个神经元的协同作用才能完成模式分类。

    • A self-organizing map (SOM) or self-organizing feature map (SOFM) is a type of artificial neural network that is trained using unsupervised learning to produce a low-dimensional (typically two-dimensional), discretized representation of the input space of the training samples, called a map.

    • The self-organizing map describes a mapping from a higher dimensional input space to a lower dimensional map space.(它把一个高维度的样本映射到二维空间上)

    • This architecture is like that of a competitive network, except no bias is used here.(和传统竞争神经元很相似,就是少了个阈值向量)

    • Instead of updating only the winning neuron, neurons close to the winning neuron are updated along with the winning neuron.(一次不仅只更新一个神经元,而是竞争获胜的神经元邻域的神经元都会获得更新)

    训练(迭代)的过程分为两步:

    1、ordering phase:排序阶段。邻域神经元都会得到更新

    2、tuning phase:微调阶段。只有一个神经元更新

    SOM权值的调整:

     

    竞争神经网络与SOM神经网络在MATLAB中实现

    • newc

      • –  Create competitive layer

      • –  net = newc(PR,S,KLR,CLR)

    • newsom

      • –  Create self-organizing map

      • –  net = newsom(P,[D1,D2,...],TFCN,DFCN,STEPS,IN)

    %% I. 清空环境变量
    clear all
    clc
    
    %% II. 训练集/测试集产生
    %%
    % 1. 导入数据
    load water_data.mat
    
    %%
    % 2. 数据归一化,防止小特征淹没
    attributes = mapminmax(attributes);
    
    %%
    % 3. 训练集和测试集划分
    
    % 训练集――35个样本
    P_train = attributes(:,1:35);
    T_train = classes(:,1:35);
    % 测试集――4个样本
    P_test = attributes(:,36:end);
    T_test = classes(:,36:end);
    
    %% III. 竞争神经网络创建、训练及仿真测试
    %%
    % 1. 创建网络
    net = newc(minmax(P_train),4,0.01,0.01);
    
    %%
    % 2. 设置训练参数
    net.trainParam.epochs = 500;
    
    %%
    % 3. 训练网络
    net = train(net,P_train);
    
    %%
    % 4. 仿真测试
    
    % 训练集
    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);
    
    %% IV. SOFM神经网络创建、训练及仿真测试
    %%
    % 1. 创建网络
    net = newsom(P_train,[4 4]);
    
    %%
    % 2. 设置训练参数
    net.trainParam.epochs = 200;
    
    %%
    % 3. 训练网络
    net = train(net,P_train);
    
    %%
    % 4. 仿真测试
    
    % 训练集
    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);
    
    %% V. 结果对比
    %%
    % 1. 竞争神经网络
    result_compet_1 = [T_train' T_sim_compet_1']
    result_compet_2 = [T_test' T_sim_compet_2']
    
    %%
    % 2. SOFM神经网络
    result_sofm_1 = [T_train' T_sim_sofm_1']
    result_sofm_2 = [T_test' T_sim_sofm_2']
    

    数据:链接:https://pan.baidu.com/s/1e5WvhNGDh8J8PMxAN7kWpg  密码:eeoa(用matlab load mat格式文件)

    参考文献:

    1、周开利《神经网络模型及其MATLAB仿真程序设计》

    2、MATLAB文档

     

    展开全文
  • main_SOM竞争神经网络_神经网络_水质检测_self_CNN.zip
  • 基于MATLAB实现的自组织竞争神经网络,该视频详细的展现了使用MATLAB的实现过程
  • 一、竞争神经网络与SOM神经网络的原理 1.竞争神经网络与SOM神经网络的概述 ① 竞争神经网络和SOM神经网络的结构十分相似,可以大致看成一类,与BP神经网络、RBF和GRNN、PNN这一类区别,是在于其是无导师学习的神经...

    一、竞争神经网络与SOM神经网络的原理

    1.竞争神经网络与SOM神经网络的概述

    ① 竞争神经网络和SOM神经网络的结构十分相似,可以大致看成一类,与BP神经网络、RBF和GRNN、PNN这一类区别,是在于其是无导师学习的神经网络,没有理想的输出,相当于只有输入,并且对输出的结果进行分类,因此这种方法十分适合对数据进行聚类操作。

    ② 对于以上的其他的神经网络的介绍与认识可以参照:BP神经网络的简介:https://blog.csdn.net/ChenQihome9/article/details/81508916。以及RBF和GRNN、PNN的简介:https://blog.csdn.net/ChenQihome9/article/details/81533918

    2.竞争神经网络与SOM神经网络原理的介绍

    图 1-1 Competitive neural network
    图1-2 Self Organizing Map neural network

    首先图1-1中为竞争神经网络的结构,在竞争层中,神经元之间相互竞争,最终只有一个或者几个神经元获胜,以适应当前的输入样本。竞争胜利的神经元就代表着当前输入样本的分类模式;图1-2为SOM神经网络(自组织特征映射神经网络)的结构,跟竞争神经网络相比,它的结构更加简单,没有阈值的调整,而且它在调整权值的时候,即每次迭代的时候使用多个神经元进行调整。SOM神经网络的可以进行降维处理,即可以把高维的输入特征映射到一维或者二维的空间上面,然后可以查看它们组织映射的情况。也就是知道在训练完后的神经元分别属于哪一类和它们之间的差异性。

    二、竞争神经网络在矿井突水水源的应用

    1. 矿井突水水源判别的背景介绍

    ① 矿井水害是我国煤矿安全生产的重大隐患,是仅次于煤矿瓦斯灾害的第二大自然灾害;矿井突水是指掘进或采矿过程中当巷道揭穿导水断裂、富水溶洞、积水老窿时,大量的地下水突然涌入矿山井巷的现象;一旦发生突水灾害事故,将会给矿井带来严重的经济损失和人员伤亡,因此准确判别突水来源是防范水害的关键。

    ② 基于水文地球化学理论的矿井突水水源判别方法主要有,常规水化学分析法主要是对水源样本中的宏量组成成分(Na^{+},K^{+},Ca^{2+},Mg^{2+},Cl^{-},HCO_{3}^{-},CO_{3}^{2-},SO_{4}^{2-}) 和水质综合指标进行检测。这次神经网络的判别主要选取六大常规离子:即((Na^{+}+K^{+}),Ca^{2+},Mg^{2+},Cl^{-},HCO_{3}^{-},SO_{4}^{2-})作为判别水源的依据。

    2. 建立竞争神经网络

    ① 竞争神经网络主要包括输入层和竞争层,并且通过连接权相连。假设输入层有M个神经元,竞争层有N个神经元,则网络的连接权值为w_{ij},i=1,2,3\cdots M,j=1,2,3\cdots N ,并且满足条件从输入层到竞争层各个神经元的连接权值的和为1。

    ② 对检测所得的数据进行数据预处理,首先为了更好定量分析判别结果,对各含水层水源类型自上而下进行二进制编码。将水源样本分为这四类,因此需要设置的竞争层的神经元个数为4个。

    第四系含水层(1 0 0 0)顶板砂岩含水层(0 1 0 0)
    八灰含水层(0 0 1 0)二灰和奥陶纪含水层(0 0 0 1)

    根据设置的神经元个数和输入层与输出层的因素,可以得出下列竞争神经网络图:

    ③ 下列表格为35个水源样本的六大常规离子的数据,并将它们作为训练集参加竞争

    Na^{+}+K^{+}/Ca^{2+}/Mg^{2+}/Cl^{-}/{SO_{4}}^{2-}{HCO_{3}}^{-}
    (mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})
    111.9876.1515.568.526.9292.84
    219.3465.7318.4810.6467.24239.19
    311.584.5724.8119.8682.61253.83
    419.7852.516.299.9337.66229.43
    535.146.217.635.843.2212.9
    644.8873.2424.824.0785.97303.56
    710.2961.2329.3312.1647.46309.85
    810.6459.328.412.5934.7291.68
    9869.326.3910.9643.85295.24
    106.4563.4324.19.2441.9266.34
    118.363.526.911.1943.85282.52
    127.16324.77.3537.8266.13
    137.767.1398.8246.5281.57
    14768.72411.743.77282.16
    1517.8562.9617.286.6823.31284.57
    1613.5961.5918.856.6823.57276.69
    171063.8732.834.0665.09295.87
    1812.6969.3929.3813.6434.54325.08
    1998.13.11.123.543.84638.7
    20207.3534.7511.1623.7846.54558.82
    21311.7516.252.0433.5820.56736.76
    22303.1210.248.5532.8417.47773.45
    23304.825.773.6140.7753628.96
    24257.230027.2212.24428.71
    25502.4502.4829.049.791105.8
    26309.330029.030562.17
    27358.5810.223.7232.6814.69691.17
    289.186.531.822.457.8348.31
    2913.2599.231.129.8583361.12
    309.2106.739.140.169.8402.1
    3117.398.220.620.2453.2354.4
    324.6869.1422.9326.6713.38251.26
    3319.5874.6716.9224.4627.62272.94
    3419.970.4716.7818.410.79294.47
    3520.5451.7316.0424.3412.34236

     

    ④ 以下为待测的样本数据,是4个已知或者可以判断的实际水源类型的样本数据

    Na^{+}+K^{+}/Ca^{2+}/Mg^{2+}/Cl^{-}/{SO_{4}}^{2-}{HCO_{3}}^{-}实际水源类型
    (mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})(mg\cdot L^{-1})​​​​​​​(mg\cdot L^{-1})​​​​​​​
    I23.7666.419.5918.1357.26255.290 0 0 1
    II9.9764.4526.489.5940.53288.140 0 1 0
    III294.758.933.6330.2724.24680.510 1 0 0
    IV14.1981.9624.4125.8140.99315.081 0 0 0

    ⑤ 将训练集数据和待测数据输入至MATLAB并执行下列程序

    load water_data.mat                 %即含有总共39个数据的mat文件
    attributes = mapminmax(attributes); % 2. 数据归一化
    P_train = attributes(:,1:35);       % 训练集——35个样本
    P_test = attributes(:,36:end);      % 测试集——4个样本
    net = newc(minmax(P_train),4,0.01,0.01);% 1. 创建网络
    net.trainParam.epochs = 1500;       %你可以设置训练次数,比如500,1000等,默认是1000
    net = train(net,P_train);           %开始训练
    
    y= sim(net,P_train);  %将训练样本的分类结果以列矩阵列出
    y1 = vec2ind(y);      %将列矩阵转换成数字类型
    y2= sim(net,P_test);  %将待检测的分类结果以列矩阵列出
    y3= vec2ind(y2);      %将待检测的列矩阵转换成数字类型

    ⑥ 35个用于训练集的样本与4个作为检测的样本的分类即最终结果如下

    编号12345678910
    分类3413114444
    编号11121314151617181920
    分类4444334423
    编号21222324252627282930
    分类2222222111
    编号313233343536373839
    分类133331421

    3. 结论

    分析待测样本的检测结果可以知道,样本中编号I与编号IV(即第四系含水层与二灰和奥陶纪含水层)的差异性不是很高,但其他的分类较为明显,比如我们知道分类是2的多是属于顶板砂岩含水层,即样本(编号是19、21、22、23、24、25、26、27)极大可能是来自顶板砂岩含水层的水源样本。而分类是4多是属于八灰含水层,即样本(编号是2、7、8、9、10、11、12、13、14、17、18)极大可能是来自八灰含水层的水源样本。这样通过到勘察地所采水源样本的数据与以上样本数据进行训练竞争可以判别出所处的含水层。(非专业认知仅供参考)


    参考文献:
    [1]徐星,李垣志,田坤云,张瑞林.ACPSO-BP神经网络在矿井突水水源判别中的应用[J].重庆大学学报,2018,41(06):91-101.
    [2]陈红颖.矿井突水水源判别研究现状与进展[J].内蒙古煤炭经济,2018(08):20+30.
    [3]汪洋,左文喆,王斌海,程紫华.矿井突水水源判别方法研究进展[J].现代矿业,2018,34(01):69-73.

    展开全文
  • main_SOM竞争神经网络_神经网络_水质检测_self_CNN_源码.zip
  • 自组织竞争神经网络

    2012-04-09 09:30:58
    自组织竞争神经网络是一个介绍SOM的通俗易懂、细致的教学课件
  • 自组织竞争神经网络一、概述自组织竞争神经网络是一种无监督的学习方法。与之前不同的是,前几节讲述的神经网络都是有标签,并且更新所有权值,但是他们并没有考虑到人体神经元的侧抑制现象,也就是在很多情况下,某...

    自组织竞争神经网络

    一、概述

    自组织竞争神经网络是一种无监督的学习方法。与之前不同的是,前几节讲述的神经网络都是有标签,并且更新所有权值,但是他们并没有考虑到人体神经元的侧抑制现象,也就是在很多情况下,某一个神经元刺激仅能激活很少一部分神经元而不是所有神经元,这就体现了一种竞争的思想。竞争神经网络每次只更新一个被激活的权值并且没有标签去告诉他应该怎么做,这更像是一种聚类方法。

    二、网络模型

    这里写图片描述

    自组织竞争神经网络共有三层:输入层、竞争层、输出层。

    第一层为输入层

    输入方式为线性输入。

    第二层为竞争层

    竞争层规则:1.每次只更新获胜神经元的权值。

    2.与输入层全连接,层内神经元间无连接。

    第三层为输出层

    输出函数为线性函数,将训练好的权值线性输出。

    三、网络建立详解

    设置30个二维点,将他们分成2类。

    第一步:设置变量

    1.权值矩阵:随机矩阵,行为分的类别,列为维度。mat[2,2];

    2.迭代次数:maxiterator=2000。

    第二步:数据归一化

    为了更好的达到稳态,过大的或者变化过大的值会造成整个网络训练的不稳定,这是就需要数据归一化。我们将所有的x,y的值归一化到(-1,1)中。

    第三步:输入数据,得到输出

    输入所有输入的数据,利用数据乘上相应的权值得到输出结果。

    第四步:调整权值

    利用竞争策略,找出输出结果最大的值也就是获胜神经元,我们只调整这一个神经元,这样就可以让权值更接近聚类中心。

    四、网络实现(Matlab非API实现)

    输入数据

    x=[4.1,1.8,0.5,2.9,4.0,0.6,3.8,4.3,3.2,1.0,3.0,3.6,3.8,3.7,3.7,8.6,9.1,7.5,8.1,9.0,6.9,8.6,8.5,9.6,10.0,9.3,6.9,6.4,6.7,8.7];
    y=[8.1,5.8,8.0,5.2,7.1,7.3,8.1,6.0,7.2,8.3,7.4,7.8,7.0,6.4,8.0,3.5,2.9,3.8,3.9,2.6,4.0,2.9,3.2,4.9,3.5,3.3,5.5,5.0,4.4,4.3];
    
    data=[x;
        y];

    数据归一化

    [dataone]=mapminmax(data);
    x=dataone(1,:);
    y=dataone(2,:);
    

    规则数据的建立

    w=rand(2,2);
    sigma=0.2;
    
    maxiterator=2000;

    迭代循环,权值调整

    for i=1:maxiterator
        k=randi(30);
        ds=dataone(:,k);
        out=w*ds;
        [~,ind]=max(out);
        w(ind,:)=w(ind,:)+sigma*(ds'-w(ind,:)); 
    end
    

    运行结果

    初始值:

    这里写图片描述

    分类结果:2类 权值中心

    这里写图片描述

    分类结果:2类 分类演示

    这里写图片描述

    结束语

    竞争神经网络考虑了神经元侧抑制问题,并且无标签的训练相当于是聚类,也就是无监督的学习。下一节将会开始学习反馈神经网络。

    展开全文
  • 基于竞争神经网络的配电线路巡视周期分类.pdf
  • 基于竞争神经网络的变电站巡视周期分类.pdf
  • 针对无约束最优路径问题, 提出累积竞争神经网络模型及其搜索算法, 该算法具有高度并行性、能获得最优 解、结构简单等特点. 以QoS 路由选择为例, 将算法推广到多约束路由问题. 实验结果表明, 对于大多数多约束...
  • 自组织竞争神经网络SOM,包括讲课、作业、文献等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,378
精华内容 12,151
关键字:

竞争神经网络