パーセプトロンを多層にするとなぜXOR回路を表現できるのか

自分なりの考察をまとめました。

 

なぜ考察するに至ったか

単層パーセプトロンは線形であるのに、多層になっただけでなぜXORの非線形領域分類ができるのか疑問であったが、手元の資料では解説されてなかったため。(論理回路的にはAND、OR、NANDの組み合わせで出来るから、それを真似れば出来ます〜程度であった)

 

 解説

単層パーセプトロンは線形領域でしか分類できません。これは式を見ても明らかです。

f:id:kera6rhy:20170612231239p:plainf:id:kera6rhy:20170612231651p:plain

そのため、単層パーセプトロンではXOR回路は表せません。

f:id:kera6rhy:20170612232105p:plain

 

一方、AND回路、OR回路、NAND回路は単層パーセプトロンで表せます。

f:id:kera6rhy:20170612233352p:plain

f:id:kera6rhy:20170612233334p:plain

f:id:kera6rhy:20170612233345p:plain 

 

 

そして、論理回路的にはXOR回路は以下のように表せます。 

f:id:kera6rhy:20170612232536p:plain

 

これを上で書いた各回路のパーセプトロンでそのまま置き換えるとこのようになります。

f:id:kera6rhy:20170612232740p:plain

 

 このうちの2層目であるAND回路部分が、今回私が疑問に思った点です。

「NAND回路出力結果とOR回路出力結果を、AND回路に入力する」とは、一体なんなんだ....

図を用いてしばらく考察したらイメージできました。

 

f:id:kera6rhy:20170612234936p:plain

このようなイメージのことを言っているのだと分かりました。

 

OR回路、NAND回路の入力はともに重みw=1なので、右のグラフ中では赤:1,青:1、灰:2となります。この値を高さと見れば、グラフの軸が3次元方向にもう1つ追加された感じでしょうか。

この内、高さが1.5以上であるのは灰部分のみであるので、その領域にある黒点がヒットし、XOR回路が表現されるという仕組みです。別の言い方をすれば、非線形領域を分類できる仕組みです。

 

考察

層を増やすということは、グラフの次元を1つ増やすことなのでは?と思った。

グラフの次元を1つ増やし3次元方向の高さを自在にコントロールすれば、非線形どころか飛び飛びの領域も分別できるなーと思った。

 

 

 

ちなみに、NAND回路のみでXOR回路を表現した場合は以下のようになり、先程のものと異なった形となります。ぜひ自分で確認してみてください。

f:id:kera6rhy:20170701144646p:plain