brief history
先達の努力の歴史
電気生理学的研究
マーの視覚の計算論
携帯電話のカメラのピンぼけが少なくなった理由
ついに人間超え
ニューラルネットワークの始まりは古く
https://upload.wikimedia.org/wikipedia/commons/3/30/Chemical_synapse_schema_cropped.jpg
マッカロックとピッツは数式として表現
マッカロックとピッツの形式ニューロンは以下のように表現される: \(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(1998)
Hinton NIPS2007 チュートリアルより
Hinton NIPS2007 チュートリアルより
Hinton NIPS2007 チュートリアルより
Hinton NIPS2007 チュートリアルより
Hinton NIPS2007 チュートリアルより
Hinton NIPS2007 チュートリアルより
Hinton (2006)