• 大小: 85KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Matlab
  • 标签: matlab  神经网络  

资源简介

Kohonen神经网络算法工作机理为:网络学习过程中,当样本输入网络时,竞争层上的神经元计算输入样本与竞争层神经元权值之间的欧几里德距离,距离最小的神经元为获胜神经元。调整获胜神经元和相邻神经元权值,使获得神经元及周边权值靠近该输入样本。通过反复训练,最终各神经元的连接权值具有一定的分布,该分布把数据之间的相似性组织到代表各类的神经元上,使同类神经元具有相近的权系数,不同类的神经元权系数差别明显。需要注意的是,在学习的过程中,权值修改学习速率和神经元领域均在不断较少,从而使同类神经元逐渐集中。

资源截图

代码片段和文件信息

%% 清空环境变量
clc
clear

%% 数据处理
load data
input=datatrain(:1:38);
%数据归一化
[inputninputps]=mapminmax(input);
%inputn=inputn‘;
[nnmm]=size(inputn);

%% 网络构建
%输入层节点数
Inum=38; 

%Kohonen网络
M=6;
N=6; 
K=M*N;%Kohonen总节点数

%Kohonen层节点排序
k=1;
for i=1:M
    for j=1:N
        jdpx(k:)=[ij];
        k=k+1;
    end
end

%学习率
rate1max=0.2;   
rate1min=0.05;
%学习半径
r1max=1.5;         
r1min=0.8;

%权值初始化
w1=rand(InumK);    %第一层权值

%% 迭代求解
maxgen=10000;
for i=1:maxgen
    
    %自适应学习率和相应半径
    rate1=rate1max-i/maxgen*(rate1max-rate1min);
    r=r1max-i/maxgen*(r1max-r1min);
    
    %从数据中随机抽取
    k=unidrnd(4000);   
    x=inputn(k:);

    %计算最优节点
    [mindistindex]=min(dist(xw1));
    
    %计算周围节点
    d1=ceil(index/6);
    d2=mod(index6);
    nodeindex=find(dist([d1 d2]jdpx‘)    
    %权值更新
    for j=1:K
        %满足增加权值
        if sum(nodeindex==j)
            w1(:j)=w1(:j)+rate1*(x‘-w1(:j));
        end
    end
end

%% 聚类结果
Index=[];
for i=1:4000
    [mindistindex]=min(dist(inputn(i:)w1));
    Index=[Indexindex];
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      90502  2009-12-25 16:53  Kohonen\data.mat

     文件       1209  2009-12-06 20:26  Kohonen\Kohonen.m

     目录          0  2010-10-01 00:02  Kohonen

----------- ---------  ---------- -----  ----

                91711                    3


评论

共有 条评论