ニューラルネットワークの概要
ちょっと下手くそな絵なんですけど、式(1)~(3)のような関係を上図のように表します。
入力がで、それぞれに重みがかかっています。そしてその和がで、これは出力ユニット活性と呼ばれます。そして活性化関数と呼ばれる何らかの関数を通って出力となっています。これを複数接続したモデルをニューラルネットワークと呼びます。また図中の1つの丸を素子と呼びます。で、このモデルに学習データを投入して回帰や識別の問題を解こうということですね。
線形回帰や線形識別もニューラルネットワークのモデルで表現できる
じつは線形回帰や線形識別もこのモデルを使って表すことができます。を恒等関数()とし、の基底変換したものを入力とすれば図.1は線形回帰を最小二乗法で解くのモデル、つまりです。
また、活性化関数を
とすれば、パーセプトロンです。ロジスティック回帰も活性化関数をシグモイド関数とすれば図.1のモデルとなります。
ニューラルネットワークは何がすごいのか
次に複数接続した図.2のモデルを考えます。
このモデルの出力を数式で表せば、
です。なお1層目の素子の数を個とし、から1層目の番目の素子への重みを、番目の素子から2層目の番目の素子への重みをとしています。文章で書くとなんかわかりづらいですが、以下の図の青線の部分の重みを指しています。
1層目の出力は、活性化関数を非線形関数とすると、これは基底変換に相当すると考えることができます。例えば図.2の入力を2つ、出力を1つとし、を非線形関数、をシグモイド関数にすれば、入力を非線形変換したロジスティック回帰の と同じようなモデルとなります。1層目の活性化関数が基底関数に相当するということです。しかしよく見ればニューラルネットワークでは非線形関数の中にパラメータが入っていますので、訓練データによってこの出力も最適化することができます。つまり、これまではガウス基底など何らかの固定した変換を用いていたのに対し、ニューラルネットワークでは基底関数すらも学習の対象となっているということになります。
以上、今回は概要だけ。具体的なニューラルネットワークの学習アルゴリズムである誤差逆伝播法は以下です。