ニューラルネットワーク 単純パーセプトロン
単純パーセプトロン
関連記事の単純モデルでは、入力が2つの場合を考えた。ここでは、図1に示すように入力がより多い場合を考える。
図1のように、入力が増えてもニューロンの動作(受け取った電気量が、閾値を超えた場合に$${1}$$を出力、それ以外の場合に$${0}$$を出力)は変わらない。したがって、出力$${y}$$は、
$$
y=
\begin{cases}
\,1 & (w_{1}x_{1}+w_{2}x_{2} + \cdots + w_{n}x_{n}\geq \theta)\\
\,0 &(w_{1}x_{1}+w_{2}x_{2}+ \cdots + w_{n}x_{n} < \theta)
\end{cases} \tag{1}
$$
となる。
ここで、次のような関数を考える。
$$
f(x)=
\begin{cases}
\,1 & (x\geq 0)\\
\,0 &(x< 0)
\end{cases}
$$
この関数をステップ関数という。
この関数を使うと式(1)は、
$$
y=f\left(w_{1}x_{1}+w_{2}x_{2} + \cdots + w_{n}x_{n}-\theta \right)\tag{2}
$$
と書き直すことができる。
式(2)では、負の値があるのでこれを正の値にするために$${b = -\theta}$$とすれば、
$$
y=f\left(w_{1}x_{1}+w_{2}x_{2} + \cdots + w_{n}x_{n}+b \right)\tag{3}
$$
となる。
重み$${w}$$と入力$${x}$$をそれぞれ列ベクトルで表すと、
$$
\bm{x} = \left(\begin{matrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{n}
\end{matrix}\right)
,\qquad
\bm{w} = \left(\begin{matrix}
w_{1}\\
w_{2}\\
\vdots\\
w_{n}
\end{matrix}\right)
$$
と表すことができるので、式(3)の$${w_{1}x_{1}+w_{2}x_{2} + \cdots + w_{n}x_{n}}$$は、この列ベクトルを用いると、
$$
\begin{align}
&\notag\\
\bm{w}^{T}\bm{x}&= \left(\begin{matrix}
w_{1}\\
w_{2}\\
\vdots\\
w_{n}
\end{matrix}\right)^{T}\left(\begin{matrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{n}
\end{matrix}\right) \notag\\
&= \left(\begin{matrix}
w_{1}&w_{2}&\cdots&w_{n}
\end{matrix}\right)\left(\begin{matrix}
x_{1}\\
x_{2}\\
\vdots\\
x_{n}
\end{matrix}\right) \notag\\
&= w_{1}x_{1}+w_{2}x_{2} + \cdots + w_{n}x_{n}\notag\\
\end{align}
$$
と表せる。
したがって、式(3)は、
$$
\begin{align}
&\notag\\
y&=f\left(\bm{w}^{T}\bm{x}+b \right)\notag\\
\end{align}
$$
となる。
ニューロンの出力がこの式の形で表されるモデルをパーセプトロンといい、図1のように入力した値が出力に直接伝播するモデルを単純パーセプトロンという。
また、ベクトル$${\bm{x}}$$を入力ベクトル、ベクトル$${\bm{w}}$$を重みベクトル、$${b}$$をバイアスという。
誤り訂正学習法をベクトルを用いて表すと、
$$
\begin{align}
\Delta \bm{w} &= (t-y)\bm{x}\notag\\
\Delta b &= (t-y)\notag\\
&\notag\\
{\bm{w}}^{(k+1)}&= {\bm{w}}^{(k)}+\Delta \bm{w} \notag\\
{b}^{(k+1)}&= {b}^{(k)}+\Delta b\notag\\
\end{align}
$$
モデルの作成
単純パーセプトロンを用いたモデルを作成していく。
モデルの作成にはPythonを用いる。
また、ここでは、Pythonのディープラーニング用のライブラリは使用せずに作成する。
モデルを作成していく際は、クラスを定義することで、可読性・再利用性を高めていく。
モデルの基本的な作成ステップは、
データの準備
モデルの構築
モデルの学習
モデルの評価
である。
データは2種類の正規分布に従う。
2次元データとし、$${30\times 2 = 60}$$個のデータからなる。
片方は、平均値$${0}$$、もう片方は平均値$${10}$$とする。
データを可視化すると、図2のようになる。
入力データのうち、平均値が$${0}$$となる方は出力$${0}$$、平均値が$${10}$$となる方は出力が$${1}$$となるように学習させる。
学習のプログラムは関連記事の単純パーセプトロン ニューラルネットワークを参照してほしい。
学習の結果は図3に示すように学習ができていることがわかる。
関連記事
ニューラルネットワーク 単純モデル
https://note.com/elemag/n/n7bf117b1c818?sub_rt=share_pw
単純パーセプトロン ニューラルネットワーク
https://note.com/elemag/n/n6ecd3604481b?sub_rt=share_pw
参考文献
サイト
https://sites.google.com/view/elemagscience/%E3%83%9B%E3%83%BC%E3%83%A0