Main Content

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

線形分離不可能なベクトル

2 入力ハード制限ニューロンは、線形分離不可能な 5 つの入力ベクトルを適切に分類できません。

X の 5 つの列ベクトルのそれぞれによって 2 要素入力ベクトルが定義され、行ベクトル T によってベクトルのターゲット カテゴリが定義されます。PLOTPV を使用してこれらのベクトルをプロットします。

X = [ -0.5 -0.5 +0.3 -0.1 -0.8; ...
      -0.5 +0.5 -0.5 +1.0 +0.0 ];
T = [1 1 0 0 0];
plotpv(X,T);

パーセプトロンは X の入力ベクトルを T によって定義されたカテゴリに適切に分類しなければなりません。しかし、2 種類の入力ベクトルを直線で分離できないため、パーセプトロンは適切な分類ができません。

ここで、初期のパーセプトロンを作成して構成します (通常、構成手順は ADAPT および TRAIN によって自動的に実行されるためオプションです)。

net = perceptron;
net = configure(net,X,T);

ニューロンによる最初の分類試行をプロットに追加します。初期重みは 0 に設定されているため、任意の入力に対して出力が同じになり、プロットには分類線が表示されません。

hold on
plotpv(X,T);
linehandle = plotpc(net.IW{1},net.b{1});

ADAPT は、入力データおよびターゲット データで学習した後の新しいネットワークと、その出力および誤差を返します。ループ処理によってネットワークの適応と分類線のプロットが繰り返され、25 回の反復後に停止します。

for a = 1:25
   [net,Y,E] = adapt(net,X,T);
   linehandle = plotpc(net.IW{1},net.b{1},linehandle);  drawnow;
end;

誤差 0 は一度も得られなかったことに注意してください。学習を行った後でもパーセプトロンは許容できる分類器になりませんでした。線形分離可能なデータのみを分類できるという点は、パーセプトロンの基本的な制限です。