自組織神經網路的實現

2021-07-04 03:40:28 字數 4298 閱讀 8987

1、可以呼叫matlab工具箱裡的函式建立競爭性神經網路:  主要進行分類:

newc(p,s,klr,clr)   --------------------------------------p表示輸入的範圍,

s-------------------------------表示神經元的個數                klr表示kohonen學習速率,-------------------------------clr表示conscience的學習速率

p=[0.1 0.8 0.1 0.9;0.2 0.9 0.1 0.8];

net=newc([0 1;0 1],2);

net.iw

net.b

該網路的訓練:

p = [.1 .8 .1 .9; .2 .9 .1 .8]

net = newc([0 1; 0 1],2);

wts = net.iw

biases = net.b

net.trainfcn

net.trainparam.epochs = 500;

net = train(net,p);

a = sim(net,p)

ac = vec2ind(a)

2、自組織特徵對映型別的神經網路

net=newsom(p,[d1 d2 .....],tfcn,dfcn,steps,in)

p表示輸入向量,di表示第i層大小,,預設[5 8], tfcn表示網路的拓撲結構,預設的是hextop,   dfcn表示網路的距離函式,預設的是linkdist

step表示調整階段的鄰域變為1的步驟,預設100, in表示初始網路的大小,預設3

sofm網路的建立:

net = newsom([0 2; 0 1],[2 3]);

p = [.1 .3 1.2 1.1 1.8 1.7 .1 .3 1.2 1.1 1.8 1.7;...

0.2 0.1 0.3 0.1 0.3 0.2 1.8 1.8 1.9 1.9 1.7 1.8]

plot(p(1,:),p(2,:),'o','markersize',8)

hold on

plotsom(net.iw,net.layers.distances)

hold off

net.iw

網路的訓練:

net = newsom([0 2; 0 1],[2 3]);

p = [.1 .3 1.2 1.1 1.8 1.7 .1 .3 1.2 1.1 1.8 1.7;...

0.2 0.1 0.3 0.1 0.3 0.2 1.8 1.8 1.9 1.9 1.7 1.8]

plot(p(1,:),p(2,:),'o','markersize',8)

hold on

plotsom(net.iw,net.layers.distances)

hold off

net.iw

net.trainparam.epochs = 1000;

net = train(net,p);

plotsom(net.iw,net.layers.distances)

lvq神經網路           

主要用於模式分類:

netnewlvq(pr,sl,pc,ir,if)

pr表示r*2的矩陣,代表輸入向量元素的最大值和最小值

s1表示隱含層的神經元數目;

pc為二元向量,表示典型的類別權重百分比;

ir表示學習速度

if學習函式

p = [-3 -2 -2 0 0 0 0 2 2 3; 0 1 -1 2 1 -1 -2 1 -1 0],

tc = [1 1 1 2 2 2 2 1 1 1],

plotvec(p,tc,'*'),

t = ind2vec(tc);%稀疏矩陣

targets = full(t) %對稀疏矩陣進行填充

net = newlvq(p,4,[.6 .4]); %表示第二層的權值重60的對應著targets第一行的元素1,40對應著第二行元素1

net.iw

net.lw

y = sim(net,p);

yc = vec2ind(y)

競爭性網路的乙個分類:

x = [0 1; 0 1];   % 定義輸入類別範圍

clusters = 8; % 類別數目

points = 10; % 每一類中的樣本數

std_dev = 0.05; % 每一類的標準差

p = nngenc(x,clusters,points,std_dev); %生成輸入樣本向量系列

plot(p(1,:),p(2,:),'+r');

title('input vectors');

xlabel('p(1)');

ylabel('p(2)');

net = newc([0 1;0 1],8,.1);

w = net.iw;

plot(p(1,:),p(2,:),'+r');

hold on;

circles = plot(w(:,1),w(:,2),'ob');

net.trainparam.epochs = 7;

net = train(net,p);

w = net.iw;

delete(circles);

plot(w(:,1),w(:,2),'ob');

p = [0; 0.2];

a = sim(net,p)

自組織特徵對映網路的實驗:

angles = 0:0.5*pi/99:0.5*pi;

p = [sin(angles); cos(angles)];

plot(p(1,:),p(2,:),'+r')

net = newsom([0 1;0 1],[10]);

net.trainparam.epochs = 10;

net = train(net,p);

plotsom(net.iw,net.layers.distances)

p = [1;0];

a = sim(net,p)

lvq神經網路的運用:分類:

p = [-3 -2 -2  0  0  0  0 +2 +2 +3;

0 +1 -1 +2 +1 -1 -2 +1 -1 0];

c = [1 1 1 2 2 2 2 1 1 1];

t = ind2vec(c);

clafor i=1:10

if(c(i)==1)

plot(p(1,i),p(2,i),'+')

hold on;

else

plot(p(1,i),p(2,i),'o')

hold on;

endend

net = newlvq(minmax(p),4,[.6 .4],0.1);

hold on

w1 = net.iw;

plot(w1(1,1),w1(1,2),'*')

title('input/weight vectors');

xlabel('p(1), w(1)');

ylabel('p(2), w(3)');

net.trainparam.epochs=150;

net=train(net,p,t);

w1 = net.iw;

w2 = vec2ind(net.iw);

cla;

for i=1:10

if(c(i)==1)

plot(p(1,i),p(2,i),'+')

hold on;

else

plot(p(1,i),p(2,i),'o')

hold on;

endend

for i=1:4

if(w2(i)==1)

plot(w1(i, 1),w1(i, 2),'*')

hold on;

else

plot(w1(i, 1),w1(i, 2),'.')

hold on;

endend

p = [0.2; 1];

a = vec2ind(sim(net,p)),

SOM自組織神經網路

som自組織神經網路 自組織神經網路競爭學習規則 winner take all。how to find the winner?首先,對網路當前輸入模式向量x和競爭層中的個神經元對應的權重向量wj 對應j神經元 全部進行歸一化,使得x和wj的模為1 當前網路得到乙個輸入模式向量x時,競爭層的所有神經...

SOM自組織特徵對映神經網路 MATLAB

競爭層?正方形?看不出來資料屬於哪類?神經網路建立函式 一 newsom函式 net newsom pr,d1,d2,tfcn,dfcn,olr,osteps,tlr,pr r個輸入元素的最大值和最小值的設定值,r 2維矩陣 di 第i層的維數,預設為 5 8 tfcn 拓撲函式,預設為hextop...

如何實現團隊的自組織管理

如何實現團隊的自組織管理 在 射鵰英雄傳 裡,以全真七子的武功是打不過東邪黃藥師的,但當他們擺出了 天罡北斗陣 時,卻能和黃藥師打成平手。這就是團隊合作形成合力的威力。自組織管理是原阿里itu內貿團隊採取的一種敏捷實踐,該實踐旨在幫助團隊成員加強團隊合作,形成團隊的合力,從而提高團隊整體的工作效率。...