自组织特征映射网(SOM)java的源码
发布网友
发布时间:2022-06-02 02:16
我来回答
共1个回答
热心网友
时间:2023-10-25 00:59
SOM神经网络也属于自组织型学习网络,只不过更特殊一点它属于自组织特征的映射网络。该网络是由一个全连接的神经元阵列组成的无教师,自组织,自学习的网络。kohonen认为,处于空间中不同区域的神经元有着不同的分工,当一个神经网络接受外界输入模式时,将会分为不同的反映域,各区域对于输入模式具有不同的相应特征。
%随机生成1000个二维向量,作为样本,并绘出其分布
P = rands(2,1000);
plot(P(1,:),P(2,:),'+r')
title('初始随机样本点分布');
xlabel('P(1)');
ylabel('P(2)');
%建立网络,得到初始权值
net=newsom([0 1; 0 1],[5 6]);
w1_init=net.iw{1,1}
%绘出初始权值分布图
figure;
plotsom(w1_init,net.layers{1}.distances)
%分别对不同的步长,训练网络,绘出相应的权值分布图
for i=10:30:100
net.trainParam.epochs=i;
net=train(net,P);
figure;
plotsom(net.iw{1,1},net.layers{1}.distances)
end
%对于训练好的网络,选择特定的输入向量,得到网络的输出结果
p=[0.5;0.3];
a=0;
a = sim(net,p)
SOM神经网络执行的时候,每次执行后的结构不一样,原因是每一次激发的神经元不一样,但是无论激活那个神经元,最后的分类结果不会改变。
缺点:就是有的神经元的初始权值向量里输入向量太远以至于他从未在竞争中获胜,因而也从未得到学习,就形成了死神经元。