使用newsom函数创建网络:
net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND)
PR:R个输入元素的最大值和最小值的设定值,R*2维矩阵
Di:第I层的维数,默认为[5 8]
TFCN:拓扑函数,默认为hextop
DFCN:距离函数,默认为linkdist
OLR:分类阶段学习速率,默认为0.9
OSTEPS:分类阶段的步长,默认为1000
TLR:调谐阶段的学习速率,默认为0.02
TNS:调谐阶段的领域距离,默认为1.
例子:
>> P=[rand(1,400)*2;rand(1,400)];
>> plot(P(1,:),P(2,:),''.'',''markersize'',20)
>> net=newsom([0 1;0 1],[3 5]);
>> net=train(net,P);
>> hold on
>> plotsom(net.iw{1,1},net.layers{1}.distances)
>> hold off
第二个函数:newc函数
功能:该函数用于创建一个竞争层
net=newc
net=newc(PR,S,KLR,CLR)
S:神经元的数目
KLR:Kohonen学习速度,默认为0.01
CLR:Conscience学习速度,默认为0.001
net:函数返回值,一个新的竞争层。
也可以参考附件的代码,里面有一个案例是SOM神经网络的。