【ゼロから作るDeep Learning】2章 パーセプトロン

本章ではパーセプトロン(parceptron)というアルゴリズムが紹介されている。
このパーセプトロンが、後々学ぶニューラルネットワークディープラーニングのための基礎的な概念となっている。

  • パーセプトロンとは
    • 複数の信号を入力として受取り,1つの信号を出力する
    • 流す・流さないかの二値の値
    • 複数ある入力信号のそれぞれに固有の重みをもつ
      • 重みは信号の重要性をコントロールする
      • 重みは電流の抵抗に相当する

f:id:yusuke_ujitoko:20161230001131p:plain:w250
  • 動作原理
    • 送られてきた信号の総和が閾値を超えたときに発火し、1を出力する

{} $$ y = \left\{ \begin{array}{} 0 & (w_{1}x_{1} + w_{2}x_{2}\leq \theta) \\ 1 & (w_{1}x_{1} + w_{2}x_{2}> \theta) \end{array} \right. $$

単純な論理回路の重み(ω)と閾値(θ)を決めてみる

2入力1出力のパーセプトロンにおいて, 論理ゲートを表現するような重みと閾値を考える。

ANDゲート
x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1

このときは (w1, w2, θ) = {0.5, 0.5, 0.7} などにすれば,上表のように動作する.

NANDゲート
x1 x2 y
0 0 1
1 0 1
0 1 1
1 1 0

このときは (w1, w2, θ) = {-0.5, -0.5, -0.7} などにすれば,上表のように動作する.

ORゲート
x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 1

このときは (w1, w2, θ) = {0.5, 0.5, 0.2} などにすれば,上表のように動作する.

パーセプトロンの実装

  • バイアスの導入
    • 閾値θではなくバイアスを導入する.
    • バイアスは発火のしやすさを調整するパラメータとなる
    • 文脈によっては,bもw1,w2と同じく重みと呼ぶこともある. {} $$ y = \left\{ \begin{array}{} 0 & (b + w_{1}x_{1} + w_{2}x_{2}\leq 0) \\ 1 & (b + w_{1}x_{1} + w_{2}x_{2}> 0) \end{array} \right. $$

パーセプトロンの限界

  • 1つのパーセプトロンを用いてXORを表現できない
  • 実は層を重ねれば,非線形領域を表現できる
    • 単体では弱い識別器でも,組み合わせれば強い識別器を作れる

本章で学んだこと

yusuke-ujitoko.hatenablog.com