1 次元自己組織化マップ
2 次元層のニューロンは、入力ベクトルが発生する入力空間のさまざまな領域を表すことを学習します。さらに、近傍ニューロンは類似の入力に応答するように学習するため、この層は与えられた入力空間のトポロジを学習します。
ここで 100 個のデータ点が単位円上に作成されます。
競合ネットワークは、これらの点を自然なクラスに分類するために使用されます。
angles = 0:0.5*pi/99:0.5*pi;
X = [sin(angles); cos(angles)];
plot(X(1,:),X(2,:),'+r')
マップは 10 個のニューロンの 1 次元層になります。
net = selforgmap(10);
ネットワークの学習を 10 エポック行うように指定し、train
を使用して入力データでネットワークに学習させます。
net.trainParam.epochs = 10; net = train(net,X);
次に、plotsompos
を使用して学習済みネットワークの重み位置をプロットします。
赤い点はニューロンの重みベクトルであり、青い線によって距離が 1 以内の各ペアを接続します。
plotsompos(net)
マップを使用して [1; 0] などの入力を分類できるようになりました。上記の入力ベクトルは与えられた入力空間の一方の端に位置したため、ニューロン 1 と 10 のどちらかの出力が 1 になるはずです。最初の数値のペアはニューロンを示し、単一の数値はその出力を示します。
x = [1;0]; a = net(x)
a = 10×1
0
0
0
0
0
0
0
0
0
1