先達の努力の歴史

電気生理学的研究

ヒューベルとウィーゼル1959


マーの視覚の計算論

マー1980 視覚の計算論


携帯電話のカメラのピンぼけが少なくなった理由

ビィオラとジョーンズ(2001)


ついに人間超え

ILSVRC2015の結果


ニューラルネットワークの始まりは古く

Chemical synapse

https://upload.wikimedia.org/wikipedia/commons/3/30/Chemical_synapse_schema_cropped.jpg

マッカロックとピッツは数式として表現

formal neuron

マッカロックとピッツの形式ニューロンは以下のように表現される: \(y_i = f(\sum_j w_j x_j)\)

class Neuron(object):
  def forward(inputs):
    cell = np.sum(inputs * self.W) + self.b
    y = 1.0 / (1.0 + np.exp(-cell))
    return y

文学的表現をすると,各ニューロンは numpy を使ってシグモイド関数によって入力情報を変換する。 伝統的にロジスティック関数が使われてきた \(\sigma(x) = 1/(1+e^{-x})\)。 近年ではより簡単な非線形関数を用いる。ReLU など。\(ReLU = \max(0, x)\)

活性化関数


小テスト


ちなみに Theano の scan を使うとするとプロトタイプは以下のようになります。

outputs, updates = theano.scan(
  fn=a_function,
  sequnces=loop_over,
  n_steps=number_to_iteration,
  outputs_info=[init_value],
  non_sequnces=not_varied,
)

def a_function(some_args):
  return something(some_args)

系列 loop_over をステップ number_to_iteration に渡って a_function を評価する,という意味合いになります。 出力 outputs は全出力を連結した配列が返ります。 他のコンピュータ言語で用いられる繰り返し表現の抽象化とみなすことができます。 updates は変動分ですが _ として無視することも行われます。


福島先生のネオコグニトロン

福島先生(1982)のネオコグニトロン


LeNet5

LeNet5(1998)


Hinton1

Hinton NIPS2007 チュートリアルより


Hinton2

Hinton NIPS2007 チュートリアルより


Hinton3

Hinton NIPS2007 チュートリアルより


Hinton4

Hinton NIPS2007 チュートリアルより


Hinton5

Hinton NIPS2007 チュートリアルより


Hinton6

Hinton NIPS2007 チュートリアルより


Hinton7

Hinton (2006)


次へ(本書を最速で理解するには)