3
4

More than 5 years have passed since last update.

ゼロから作るDeepLearning第二章 パーセプトロン

Last updated at Posted at 2018-02-24

0. 第二章について

 第二章では、第三章から解説されるニューラルネットワークの単体パーツであるパーセプトロンについて語られるのじゃあ・・・。
 基本中の基本となるらしいので、ここをある程度理解しないと後々やばいのじゃ・・(体験談)

1. パーセプトロンとは

 パーセプトロンは、人間の脳の神経細胞を模したものであり、複数の入力を受け取って、ある信号を出力するのじゃ。
 パーセプトロンは複数のニューロンで構成されていて、各ニューロンから送られてきた信号に重みが乗算され、その総和がある限界値(閾値)を超えた場合に1を出力されるのじゃ。(基本的な場合のじゃあ)
 以下の図では、一つ一つの○がニューロンであって、矢印の部分の値が重みなのじゃ。図全体で一つのパーセプトロンを表すのじゃよ。計算式は

y = x_1*w_1 + x_2*y_2

 なのじゃあ!

パーセプトロン

2. パーセプトロンの特徴

2.1 パラメータ

 パーセプトロンは複数のパラメータを持つのじゃあ・・
 具体的には

  • 重み(w1, w2)
  • バイアス(b)
  • 閾値・出力値(またの名を活性化関数h)

などがあるのじゃあ・・・

パーセプトロン

パーセプトロンの行っている処理の計算式は以下のこうなのじゃ!

a = x_1*w_1 + x_2*w_2 + b\\
y = h(a)

上記の説明ではわらわ含めてちんぷんかんぷんのはずじゃあ・・
というわけでとりあえずそれぞれのパラメータを見ていった後、もう一度全体と数式を見直そうと思うのじゃあ・・

2.2 重み w1, w2, w3...

 重みは図でいうと矢印の値ことなのじゃ。それぞれのニューロンがどれぐらいの関連度で結びついてるかを定めるのじゃあ・・・
 例えば、重みw1が1000ぐらいだったら無茶苦茶ニューロンが結びついてて、重みw2が0だったら、最早ないに等しいのじゃ。

2.3 バイアス b

 バイアスは英語だとbias。
 他のヒューロン間の重みとは独立していて、必ず足されるものじゃな・・・
 理解しずらかったら、中学数学で習ったy=ax+bの、y切片のbみたいなもんじゃと考えると分かり易いのかもしれないのじゃが・・
 バイアスを使用する理由としては、完全には理解してないのじゃが、必ず足す値としてバイアスを使用することで、ニューロンの反応しやすさをコントロールするためなのだと思うのじゃ・・・・理解が足りず申し訳ないのじゃ・・

2.4 閾値・出力値・活性化関数h

 ここが一番パーセプトロンの理解で難しいと思うのじゃあ・・
 パーセプトロンは、複数のニューロンから受け取った信号の総和を、活性化関数hで変換してから出力するのじゃあ・・・

a = x_1*w_1 + x_2*w_2 + b\\
y = h(a)

 上の式を見てみるとまず
1. それぞれのニューロンからの重み付きの信号を受け取る (x1*w1 + x2*w2)
2. 反応しやすさを決めるバイアスを足す (+b)
3. 総和を求める (a = x1*w1 + x2*w2)
4. 活性化関数hで変換をする
 という処理を行っているのじゃ・・
 
比較的1~3は理解しやすいと思うのじゃ・・・なぜならそれぞれのニューロンからの信号を受け取って足し算をしているだけなのじゃ・・
4では、何をやっているかというと、パーセプトロンの表現を豊かにするために、活性化関数をかけているのじゃ・・・
 まあドーピングキメて気持ちよくなっているみたいなもんじゃな・・・

2.5 活性化関数

 活性化関数って何なのじゃあ!って声が聞こえてきたのじゃあ・・・
 活性化関数は、入力された値に一手間加えて、表現豊かな値に変換して出力する関数なのじゃ・・・
 活性化関数がないと、線形的な値しか出ず、後々のニューラルネットワークがうまいこと行かず死んでしまうのじゃあ・・・
 ちなみに、活性化関数にはシグモイド関数だとか、Relu関数があるんじゃが・・・
 とりあえずそういう関数があるんじゃなと思ってほしいのじゃ。第三章で記述しようと思うのじゃ・・・

2.6 パーセプトロンの特徴総括

a = x_1*w_1 + x_2*w_2 + b\\
y = h(a)

 
 一つ一つパラメータや関数を振り返ってみたのでパーセプトロンの処理を、処理の流れに沿って振り返っていこうと思うのじゃあ。

  1. それぞれのニューロンから重みがかけられた信号を受け取るのじゃ
  2. 反応しやすさをコントロールするためにバイアスが足されるのじゃ
  3. 総和を求めるのじゃ
  4. 活性化関数に先程求めた総和をぶち込むのじゃ
  5. 活性化関数から出力された表現豊かな値を、また次のニューロンにぶち込むのじゃ

 以上のような流れでパーセプトロンは処理を行うのじゃあ・・・
 分かりづらかったら申し訳ないのじゃあ・・・

3. なぜパーセプトロンを使うのか

 パーセプトロンを使用するのには理由があるのじゃあ・・・
 なぜなら、この後記述するニューラルネットワークはパーセプトロンの集合体でできており、DeepLearningの基本だからなのじゃ。
 パーセプトロンは構造が簡単で計算がしやすく、それを組み合わせるだけでDeepLearnigが出来るなんて夢のようじゃな・・・

4. それぞれの章へのリンク

自己流まとめホーム
第二章 パーセプトロン
第三章 ニューラルネットワークの学習
第四章 ニューラルネットワークの学習
第五章 誤差逆伝播法
第六章 学習においてのテクニック
第七章 畳み込みネットワーク
第八章 DeepLearning

5. 参考文献

書籍 ゼロから作るDeepLearning オライリー・ジャパン
マークダウン記法 https://qiita.com/hiroyuki_hon/items/f2a779bb295fd12646ab

 

3
4
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
3
4