・パーセプトロンをわかりやすく理解したい
・これからニューラルネットワークを勉強したい
こんにちは、るい(@CenotenBlog)です。
この記事では、上記の悩みにお答えします。
なるべくわかりやすく解説しています。
・パーセプトロンとは
ちなみに、この記事を書いている僕は、国立研究機関にて、人工知能に関する研究を行っています。
本記事は『ゼロから作るDeep Learning』を参考にしています。
では早速、パーセプトロンの概要から解説していきます。
パーセプトロンとは
パーセプロトンとは、人間の脳の神経細胞(ニューロン)を模倣したアルゴリズムのことです。
人口ニューロンと呼ばれたりします。
人間と同じ認識能力を再現しよう、という素直な発想ですね
パーセプトロンの主な役割は、複数の信号を受け取り、0または1の二値の値を返すと言うものです。
パーセプトロンの仕組みを理解するために、まず人間のニューロンについて解説します。
ニューロン(神経細胞)
ニューロンは主に、細胞体、樹状突起、軸索、軸索末端(シナプス)という4つの部分から構成されています。
ちなみに、ニューロンの主な役割も、受け取った信号を次のニューロンに、「伝達するか/しないか」判断することです。

各部位の役割は以下の通り
・細胞体(部) (soma) : 情報処理を行う。
・樹状突起 (dendrite) : 他のニューロンからの信号を受け取る。入力端子にあたる。
・シナプス (synapse) : 他のニューロンへ信号を出力する。出力端子にあたる。各シナプスは異なる伝達効率を持っている。
これかの部位を用いて、ニューロンは受け取った信号を「伝達するか/しないか」を判断します。処理の流れは下記の通り。
樹状突起で信号を受け取る→細胞体(部)で信号を処理する→信号がある閾値(しきい値:\(\theta\))を超えた場合、シナプスへ信号を送る。
重要なのが、信号がある閾値(\(\theta\))を超えた場合のみ、信号をシナプスへ送ることです。
閾値(\(\theta\))を超えたとき、「ニューロンが発火した」と表現します。
つまり、処理された入力の合計が閾値(\(\theta\))を超えた場合を1、超えない場合を0、として数式化すればよさそうですね。
以上が、ニューロンについての簡単な説明です。
このニューロンをモデル化し、情報処理を数式化したものが、パーセプトロンとなります。
パーセプトロン
下記に、ニューロンをモデル化した図を示します。
ちなみに、結合荷重とは、シナプスが異なる伝達効率を持っている事を表すための任意の実数値です。一般的に、「重み」と呼ばれます。

各部位の役割はニューロンと同様に以下の通り
・\(h()\):情報処理を行う関数。
・\(x\):他のニューロンからの入力値。
・\(y\):他のニューロンへの出力値。
・\(w\):各シナプスの伝達効率を表現。
\(x\)や\(a\)、\(y\)の○を「ニューロン」もしくは「ノード」と呼びます。
それでは、上の図の仕組みを数式化します。
\(a\)は重み付き入力信号の総和を示します。
$$a=w_{1}x_{1}+w_{2}x_{2}$$
$$y=h(a)=\begin{cases}
0 & (w_{1}x_{1}+w_{2}x_{2}\leq\theta)\\
1 & (w_{1}x_{1}+w_{2}x_{2}>\theta)
\end{cases}
$$
\(a\)は\(h()\)によって変換され、\(y\)が出力されるという流れですね。
今回、\(h()\)は、\(a\)が閾値(\(\theta\))を超えているか判断しています。
ちなみに、\(h()\)は活性化関数と呼ばれます。特に、上記の\(h()\)は、閾値を境に出力が切り替わるり、「ステップ関数」と呼ばれます。
他の活性化関数に関する詳しい内容は、下記の記事で解説しています。
[mathjax] ・活性化関数とは何か知りたい・活性化関数の代表例を知りたい・これから機械学習を勉強したい こんにちは、るい(@CenotenBlog)です。 この記事では、上記の悩みにお答えします。内容は以下の通り[…]
以上で、パーセプトロンのアルゴリズムの完成です。
何かわからないことがあれば、ご連絡ください。
参考文献⇩