ゼロから学ぶディープラーニング(私は既習)パーセプトロン

今日は、みんな大好きオライリーから、ゼロから学ぶdeeplearningから、第2章パーセプトロンについて勉強メモを残してみようと思います。

www.oreilly.co.jp

なお、1章はPythonの基本的な使い方や説明だったので(これはこれで面白かったですが)割愛します。

(ちなみにですが、タイトルにある通り私はこれ勉強したことありますし、なんなら大学の卒論がこれでしたので復習の意味も込めてという形になります。)

パーセプトロンとはなんぞや。

パーセプトロン(perceptron)とは、人間のニューロンをモデルに作られたアルゴリズムです。

rightcode.co.jp

ニューロンとはなんぞやというと、脳味噌の各機能の構成単位みたいなものです。 例えば、りんごを見たときに網膜に写った画像に対して、電気信号を人の脳にあるニューロンたちが処理をして、りんごであると認識できるようにしています。

上記ブログでも記載がある通り、パーセプトロンは受け取った信号に対して、それぞれに重み付けをした上の情報を見て出力を変更します。

簡単にパーセプトロンを説明しようと思います。

例えば、りんごを見て反応するパーセプトロンがあるとします。
そのパーセプトロンは「赤色」というインプットに対しては強く反応すべきですが、「丸くない」という情報には逆に『りんごじゃないぞー』と、マイナス方向に反応しなければなりません。
また、りんごを持っているであろう「人の手」というインプットに強く反応する必要も反対する必要もありません。

そのようにインプットに対して「重み付け」して、合計の信号の強さがとある「閾値(バイアス)」を超えた際に反応するものがパーセプトロンです。

論理回路パーセプトロン

パーセプトロンが何故取り上げられているかというと、それ自体で単純な論理回路になっているからです。 (ディープラーニングはこのパーセプトロンを大量に重ねたりつなげたりしたものになります。)

例えば、AND回路とかもパーセプトロンで作成できます。

AND回路といえば、0か1の入力が二つあった際にどちらも1であれば1を出力するもので、それもパーセプトロンで計算できます。

イメージとして分かりやすいものは、線を引いて1となる空間がどこで、0となる空間はどちらかをみることです。

参考ページ

AND回路とか分からない人はここでも見てみてください。 sagara-works.jp

多層パーセプトロン

パーセプトロン単体で論理回路が作れることは分かったけど、線形分離不可能なXORについて、パーセプトロンを多層に積んで解決することができます。

XORは、最初の入力をNANDとORのパーセプトロンにツッコミ、その出力をANDパーセプトロンに突っ込むことで表現できます。

ここから、パーセプトロンを多層化することで線形分離不可能な難しい問題も解けるようになります。

実際、現代のコンピュータのCPUもNAND回路の集積でできていたりと、身近な箇所でパーセプトロンの基本的な考え方が利用されています。

終わりに

次はニューラルネットワーク。ぱっと見で懐かしさがあって楽しみ。勉強進めよう。