なぜニューラルネットワークは万能なのか
ニューラルネットワークはuniversal function つまり、万能な関数であると言われている。これにより、ニューラルネットワークはどの分野の問題にも対応できるとされている。しかし、ニューラルネットワークの歴史上最初からこの万能性が明らかだったわけではない。
1969 に Minsky と Papert が perceptron の限界を数学的に証明。ニューラルネットワークにはXOR 問題が解けないとされた。
例えば 2個のニューロンからなるパーセプトロンの出力は以下の式のようになる:
$$S=W \cdot X=w_{11}x_{1} + w_{21}x_{2}$$
多重層ネットワーク を使ってもこの問題は解けない
上のような形にしたところ、最終的な重みは単層ニューラルネットワークと同じことをしている
$$Z = W_2(W_1X)=(W_2W_1)X$$
しかし、各ノードの値をそのまま使わず関数を使うとこの問題は解ける例えば
$$x < 0 = 0 $$ のような関数を使うと:
ここで $$x < 0 = 0$$ の閾値関数を使うと:
よってニューラルネットワークは XOR 問題も解ける。
ニューラルネットワークの学習で最適化しているもの
ニューラルネットワークでは標的にしている値 $t_{i}$ とニューラルネットワークが出力する値 $y_i$ を少しずつ近づけることによって最適な重みを算出しよとする。最適化の評価関数には以下のものが使われる:
$$ E = \frac{1}{2} \sum_{i=1}^n(t_i - y_i)^2$$
一見これはデータと出力との二乗誤差を計算しているだけに見えるが重みの尤度も計算している。
以下にその証明を明記する。誤差が正規分布だと仮定すると、ニューラルネットワークの重みからデータの尤度を計算する方程式は以下のようになる:
$$p( \overrightarrow{t} | \overrightarrow{x}, \overrightarrow{w}, \overrightarrow{\beta}) = \Pi_{i=1}^n N(t_i|y_i, \beta^{-1})$$ (1)
$\beta$ は統計精度である
(1) の両辺の対数をとると
$$ln[p( \overrightarrow{t} | \overrightarrow{x}, \overrightarrow{w}, \overrightarrow{\beta})] = - \frac{\beta}{2} \sum_{i=1}^n(t_i-y_i)^2 + \frac{n}{2}ln(\beta) - \frac{n}{2}ln(2\pi)$$ (2)
(2) は尤度であり、$- \frac{\beta}{2} \sum_{i=1}^n(t_i-y_i)^2$ は負なのでこれを最大するには $ \sum_{i=1}^n(t_i-y_i)^2$ を最小化しないといけない。つまり二乗誤差最小化 = 尤度最大化なのでニューラルネットワークの学習は誤差の最小化であり、同時に尤度の最大化である。