本記事について
本記事では簡潔にパーセプトロンとは何か?という点に特化して書いていきます。
筆者は馬鹿なのでピンポイントで必要そうな情報だけまとめます。
短めです。2分位で読めちゃいます。
パーセプトロンとは
パーセプトロンとは、アルゴリズム(方法、考え方)であり、
ニューラルネットワークやDeepLearningの起源となったアルゴリズムです。
なのでDeepLearningで何から勉強すればいいの?って人は間違いなくこの考え方から学ぶべきでしょう。
▶起源
パーセプトロンは、1950年代から1960年代にかけて、Warren McCullochと Walter Pittsらの 先行研究に触発された Frank Rosenblattによって開発されたそうです。
ローゼンブラットさんだけ覚えておけば十分。
▶どういうものか
パーセプトロンはある複数の信号を受け取り、1つの信号を出力します。
電流が導線を流れて電子を先に送り出すようなイメージ。
ただし、パーセプトロンの信号は1か0(流す/流さない)の値のみです。
例として、以下の画像を見てください。
この画像では、3つの信号(x1,x2,x3)を入力として受け取り、yを結果として返すということを表しています。
wというのが重み(weight)を表しています。
※重みというのは電流で言うところの「抵抗」で、
この重みが信号の流れにくさをコントロールする値になります。
図の○はニューロンとかノードと呼ばれており、次のニューロンに信号が送られる際にそれぞれに固有の重みが乗算されます(上図でw1x1、w2x2、w3x3となる)。
その送られてきた値の総和がある限界値を超えた場合にのみ1を出力します。
(w1x1+w2x2+w3x3)
これを「ニューロンが発火する」と呼びます。
この限界値のことをここではしきい値と呼び、θという記号で表すことにします。
以上のことを計算式で表すと以下のようになります。
(w1x1 + w2x2 ≦ θ) → 0
(w1x1 + w2x2 > θ) → 1
この出力結果が「y」となります。
これがパーセプトロンの動作原理であり、かなりとっつきやすい内容だったかと思います。
ただこの考え方から発展したものがDeepLearningやニューラルネットワークを理解する上では重要になっていて、閲覧者が勉強を進めていく際にも頻繁に出てくるかと思います。
次回はこの考え方を利用した論理回路とPythonへの実装を行っていきたいと思います。
参考文献:
・http://nnadl-ja.github.io/nnadl_site_ja/chap1.html
・ゼロから作るDeepLearning