ローゼンブラットのパーセプトロン(2)

ローゼンブラットのパーセプトロン

  • 図2

の学習能力について考察します。パーセプトロンの入力パターン)\vec{x}=(x_1,x_2,...,x_n)の種類が全部でm個あるとします。そしてそれらを\vec{x}(m)=(x_1(m),x_2(m),...,x_n(m))で表します。\vec{x}(k)の全体集合U_1=\{\vec{x}(1),\vec{x}(2),...,\vec{x}(m)\}を考えます。U_1の部分集合I(w)を考えます。ただしw=1,2,...,qです。そして部分集合は互いに共通要素を持たないとします。このパーセプトロンの出力y_1がパターン群I(1)にのみ反応し、y_2がパターン群I(2)にのみ反応し、・・・・y_wがパターン群I(w)にのみ反応し、・・・・y_qがパターン群I(q)にのみ反応するように、パーセプトロンを学習させたいとします。この学習が可能かどうかを検討します。


k番目の入力パターン\vec{x}(k)は真ん中の層によって\vec{z}(k)に変換されるとします。するとこのパターンもm個あることになり、それぞれは\vec{z}(1),\vec{z}(2),...,\vec{z}(m)と表すことにします。ただし、i\neq{j}\vec{z}(i)=\vec{z}(j)になる可能性もあります。\vec{z}(k)の全体集合U_2=\{\vec{z}(1),\vec{z}(2),...,\vec{z}(m)\}を考えます。I(w)に属する\vec{x}(k)が変換された結果、生成される\vec{z}(k)の集合をJ(w)とします。J(w)の補集合を\bar{J(w)}で表します。さてJ(w)\bar{J(w)}が線形分離可能でなければ、ニューロンn_{2w}J(w)を認識するように学習させることは出来ません。しかし、I(w)を真ん中の層がJ(w)に変換する際に、必ずJ(w)\bar{J(w)}が線形分離可能になるように変換することは出来ないでしょうか? もしこれが出来ればこのパーセプトロンI(w)に属する\vec{x}(k)についてy_wだけが1を出力し、他のyは0を出力するように学習出来ることになります。しかしこれは容易なことではありません。というのは、I(w)にどの\vec{x}(k)を含ませるかは任意ですので、そのあらゆる場合についてJ(w)\bar{J(w)}が線形分離可能になるようにしなけばなりません。そんなことが可能でしょうか?


ここで注意しなければならないことは、\vec{x}の次元と\vec{z}の次元が異なるということです。\vec{z}の次元をいくらでも大きくすることは可能です。つまり、真ん中の層のニューロンの数pを増やせばよいのです。ここでpを入力パターンの数mと等しくとることにしましょう。そして\vec{x}(k)は、z_k=1かつ、j{\neq}kであるjについてはz_j=0であるような\vec{z}(k)に変換されるとします。このような変換は、

  • x_i(k)=1の時
    • s_{1ki}=1・・・・(5)
  • x_i(k)=0の時
    • s_{1ki}=-1・・・・(6)
  • h_k=\Bigsum_{i=1}^nx_i(k)-0.5・・・・(7)

とすることで実現します。これを確かめてみましょう。式(5)(6)から

  • \Bigsum_{i=1}^ns_{1ki}x_i(k)=\Bigsum_{i=1}^nx_i(k)

なので

  • \Bigsum_{i=1}^ns_{1ki}x_i(k)-h_k=\Bigsum_{i=1}^nx_i(k)-\Bigsum_{i=1}^nx_i(k)+0.5=0.5

よって

  • \Bigsum_{i=1}^ns_{1ki}x_i(k)-h_k=0.5・・・・(8)

となるので、z_k=1となります。次にjj{\neq}kであるとしてこのニューロンn_{1k}にパターン\vec{x}(j)を入力した時を考えます。\vec{x}(k)\neq\vec{x}(j)なのでx_i(k)\neq{x}_i(j)であるようなiが存在します。これはx_i(k)=1かつx_i(j)=0の場合とx_i(k)=0かつx_i(j)=1の場合があります。もしx_i(k)=1かつx_i(j)=0であるとすると、

  • s_{1ki}x_i(j)=0

一方x_i(k)=1と式(5)からs_{1ki}=1。よって

  • s_{1ki}x_i(k)=1

よって

  • s_{1ki}x_i(k)=s_{1ki}x_i(j)+1・・・・(9)

が成り立ちます。次にx_i(k)=0かつx_i(j)=1であるとすると、x_i(k)=0と式(6)からs_{1ki}=-1。よって

  • s_{1ki}x_i(j)=-1

一方、

  • s_{1ki}x_i(k)=0

よって、この場合も式(9)が成り立ちます。よって\vec{x}(k)\vec{x}(j)の間で値の異なる成分の個数をAとすると

  • \Bigsum_{i=1}^ns_{1ki}x_i(k)=\Bigsum_{i=1}^ns_{1ki}x_i(j)+A・・・・(10)

となります。式(10)と(8)から

  • \Bigsum_{i=1}^ns_{1ki}x_i(j)+A-h_k=0.5

よって

  • \Bigsum_{i=1}^ns_{1ki}x_i(j)-h_k=0.5-A・・・・(11)

Aは1以上なので、

  • \Bigsum_{i=1}^ns_{1ki}x_i(j)-h_k<0・・・・(12)

よってz_k=0となります。つまり、ニューロンn_{1k}は入力パターン\vec{x}(k)のみに反応することが分かります。このことは真ん中の層の他のニューロンにも言えることなので、j{\neq}kであるニューロンn_{1j}\vec{x}(j)にのみ反応し\vec{x}(k)には反応しません。よってz_j=0です。よって\vec{x}(k)は真ん中の層によって、z_k=1かつ、j{\neq}kであるjについてはz_j=0であるような\vec{z}(k)に変換されることが分かります。