はじめに
こんにちは。将棋と筋トレが好きな、情報系大学生のゆうき(@engieerblog_Yu)です。
今回はディープラーニングを学ぶ上で必須の知識となる、パーセプトロンについてまとめていきたいと思います。
パーセプトロンとは?
パーセプトロンは複数の入力に対して、一つの信号を出力します。
入力:x、出力:yとすると、yの値は0か1となります。
それぞれ(信号を流す:1信号を流さない:0)に対応しています。
図は入力が二つの場合の単純パーセプトロンです。
信号を流すか流さないかを決める値として、閾値を設定する必要があります。
x1に重みw1をかけた値とx2にw2をかけた値の和が、ある閾値θより小さい場合はy=0となり、大きい場合は1となります。
\(w_1×x_1+w_2×x_2=k\)
\(k<=θ→ y=0\)
\(k>θ→ y=1\)
閾値θを超えてy=1となった場合、「ニューロンが発火する」といった表現をされることもよくあります。
2入力単純パーセプトロンの実装
Pythonで実装した、2入力を受け取り出力を返す、単純パーセプトロンです。
//単純パーセプトロンの実装
def perceptron(x1,x2):
w1 = 10
w2 = 20
theta = w1*x1 + w2*x2
return h(theta)
//閾値の設定
def h(theta):
if theta < 100:
return 0
else:
return 1
perceptron(10,20)
バイアスの設定
ニューロンの発火のしやすさを変化させるパラメータとして、バイアスが用いることもあります。
\(w_1×x_1+w_2×x_2+b=k\)
\(k<=θ → y=0\)
\(k>θ→ y=1\)
//単純パーセプトロンの実装
def perceptron(x1,x2):
w1 = 10
w2 = 20
b = 10
theta = w1*x1 + w2*x2 + b
return h(theta)
一層パーセプトロンの恩恵と限界
一層パーセプトロンを実装することで、ANDやORの論理回路を表現することができます。
しかしXORゲートは一層パーセプトロンでは表現することができません。
多層のパーセプトロンを実装することができれば、コンピュータの動きを実装することができるので理論上コンピュータを表現することが可能です。
また一層パーセプトロンは線形的であり、非線形的にするためには多層に重ねる必要があります。
一層パーセプトロンではAND,ORの論理回路を表現することができるがXORはできない
一層パーセプトロンは線形的であり、多層パーセプトロンは非線形的である
終わりに
今回は単純パーセプトロンについてまとめました。
パーセプトロンはニューラルネットワークを学ぶ上で必要な知識です。
機械学習、ディープラーニングを学びたい方におすすめの入門書籍です。
ディープラーニングの理論が分かりやすくまとめられていて、力が身につくと思います。
最後まで読んでいただきありがとうございました。
他にもいろんな記事があるにゃ。
コメント