ニューラルネットワーク
関数を探す喜び
ニューラルネットワーク Neural network とはパーセプトロン Perceptron を 1 つのノード Node として階層上に重ねたもの。
ニューラルネットワークにはいろいろな形状があるが、一番原始的な 3 階層のフィードフォワード Feed Forward 型ニューラルネットワークについて考える。
入力層、中間層、出力層という順番に重みを掛け合わせ計算し、出力層に分類したいクラスだけノードを用意する。
最後に出力層の計算した値を softmax関数 などの活性化関数により正規化を行い、確率とみなす。
フィードフォワード型ニューラルネットワークでは誤差逆伝播法 Backpropagation という方法で学習する。
いろんな解釈があるが、一つの視点として
「 ニューラルネットワークは情報処理の ( 新 ) 手法、手段の一種であり、その起源 / 前身は論理回路である 」
という捉え方が あり得る
要するに、「
電算機の原理、素子の表現力が 1 or 0 であるからといって、
オペレーターを始めとして関わる全ての人は その原理に支配される状況は変更されるべきだ。
より具体的には入出力、処理いずれも人間可読性の高い情報まで抽象化されるべきだ。↓
だから素子は原則としてモジュール / コンポーネント化されるべきだ。
」という主張を具現化したものの一つがニューラルネットワークだ、というストーリーである。
ただ、ここまでの話だけだと単なるオブジェクト指向でしかない。しかし、そのあとで
「
素子の表現力が 1 or 0 しかなく、一方で表現したい対象が莫大な次元を持っているからといって、
単調に容量を拡張し、実在しないものまで表現できるようにする事で解決を図るべきではない。
」というニーズが加わった。