Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

1 次元自己組織化マップ

2 次元層のニューロンは、入力ベクトルが発生する入力空間のさまざまな領域を表すことを学習します。さらに、近傍ニューロンは類似の入力に応答するように学習するため、この層は与えられた入力空間のトポロジを学習します。

ここで 100 個のデータ点が単位円上に作成されます。

競合ネットワークは、これらの点を自然なクラスに分類するために使用されます。

angles = 0:0.5*pi/99:0.5*pi;
X = [sin(angles); cos(angles)];
plot(X(1,:),X(2,:),'+r')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

マップは 10 個のニューロンの 1 次元層になります。

net = selforgmap(10);

ネットワークの学習を 10 エポック行うように指定し、train を使用して入力データでネットワークに学習させます。

net.trainParam.epochs = 10;
net = train(net,X);

Figure Neural Network Training (27-Jul-2023 15:32:33) contains an object of type uigridlayout.

次に、plotsompos を使用して学習済みネットワークの重み位置をプロットします。

赤い点はニューロンの重みベクトルであり、青い線によって距離が 1 以内の各ペアを接続します。

plotsompos(net)

Figure SOM Weight Positions (plotsompos) contains an axes object. The axes object with title SOM Weight Positions, xlabel Weight 1, ylabel Weight 2 contains 3 objects of type line. One or more of the lines displays its values using only markers

マップを使用して [1; 0] などの入力を分類できるようになりました。上記の入力ベクトルは与えられた入力空間の一方の端に位置したため、ニューロン 1 と 10 のどちらかの出力が 1 になるはずです。最初の数値のペアはニューロンを示し、単一の数値はその出力を示します。

x = [1;0];
a = net(x)
a = 10×1

     0
     0
     0
     0
     0
     0
     0
     0
     0
     1