資源簡介
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
- 上一篇:基于matlab的電力系統仿真
- 下一篇:潮流計算matlab代碼
評論
共有 條評論