LoginSignup
0
1

More than 1 year has passed since last update.

パーセプトロンについて

Last updated at Posted at 2022-04-18

はじめに

ディープラーニングの元であるパーセプトロンについて理解する。
私が調べて学習した範囲なので、抜けている点や疑問点がありましたら、そちらは各々調べていただければと思います。
また、間違っている部分がありましたらご指摘いただけると幸いです。

前提知識

パーセプトロンについて理解するうえで必要となる前提知識。

ANDゲートとNANDゲート

ANDゲート
二値の条件を満たしている(True)時、出力することができる。

x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1

NANDゲート
二値の条件を満たしていない時にTrueになる。逆に二値の条件を満たしている時はFalseになる。
NANDゲートはANDゲートの逆のゲートである。

x1 x2 y
0 0 1
1 0 1
0 1 1
1 1 0

ORゲートとNORゲート

ORゲート
二値の条件のうちどちらかが満たしている(True)ならば出力することができる。

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 1

NORゲート
二値の条件を満たしていない時にTrueになる。逆に二値の条件を満たしている時はFalseになる。
NORゲートはORゲートの逆のゲートである。

x1 x2 y
0 0 1
1 0 0
0 1 0
1 1 0

XORゲート

XORゲートは排他的論理和と呼ばれている。排他的論理和とは自分以外は拒否するという意味である。
下図にあるようにx1、x2のどちらかが1の時にだけ出力できる。

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 0

パーセプトロンとは

パーセプトロンはアルゴリズムであり、1957年にアメリカの研究者のローゼンブラットによって考案された。
これは人間の脳神経回路を真似た学習モデルである。

仕組み

  • 複数信号を入力とし、1つの信号を出力
  • 出力は信号を流す 1 か流さない 0 の二値分類
  • 閾値を超えるか否かで出力信号が決定

パーセプトロンは入力された信号の総和が計算され、この総和がある限界値を超えた場合にのみ「1」を出力する。これを"ニューロンが発火する"と表現することがある。
ここでは、その限界値を閾値と呼ぶ。
パーセプトロンの動作原理は、これだけである。以上のことを数式で表すと次の式(1)のようになる。

y = \left\{
\begin{array}{ll}
0 & (x_{1} + x_{2} \geq 0) \\
1 & (x_{1} + x_{2} \lt 0)
\end{array}
\right.\tag{1}

パーセプトロン.jpg

パーセプトロンの実装

今回は、Pythonを用いて簡単なパーセプトロンの実装を行う。
パーセプトロンには閾値があるが、これに加えて入力の個数分重みも用意する。

ANDゲート

ANDGate.py
def AND(x1, x2)
    # 重みをw1とw2、閾値をthetaとする
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1*w1 + x2*w2
    if tmp <= theta:
        return 0
    elif tmp > theta:
        return 1

AND(0, 0) # 0を出力
AND(1, 0) # 0を出力
AND(0, 1) # 0を出力
AND(0, 0) # 1を出力

まとめ

今回は、ディープラーニングの元であるパーセプトロンについて私が学習した範囲でまとめてみました。
あくまで私の記録用の意味合いが強いですが、私のような初心者の方のお役に立てたら幸いです。
さらに理解したことが増えれば随時更新していこうと思います。

参考

0から作るディープラーニング

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1