読者です 読者をやめる 読者になる 読者になる

From Pure Math to Applied Math

Stat/ML from a pure mathematical perspective.

Universal Approximation Theoremと深層学習の有効さ

Deep Learning 機械学習

皆さん

Universal Approximation Theorem
Universal approximation theorem - Wikipedia

をご存知でしょうか。


もしこれを知らないで深層学習や人工ニューラルネットワーク(ANN)を使っている(実装している)としたら、

それは無免許運転のようなものでしょう。 お話になりません。



数学的厳密性を犠牲にしてRoughly Speakingで説明すると、

この定理が主張するのは

””適切な活性化関数を使えば、ANNは任意の関数任意の精度で近似することが出来る””

と言うものです。


これによってANNの”強さ”が保証されているわけですが、、、、。


ここにはふかーーーーーーーーーーーーーーい闇があります。


今回はその闇の説明を含め、


Universal Approximation Theoremと言う視点から

何故深層学習が有効なのかを説明したいと思います。



§ 1. Universal Approximation Theoremの主張とその闇


初めてこの定理を知ったときは、

ANN万能やんけ!!最強!!

とか思っちゃうわけですが(僕もそうでした)、、。


最初にこの定理を証明した論文は次のものです:

[1]Cybenko., G. (1989) "Approximations by superpositions of sigmoidal functions", Mathematics of Control, Signals, and Systems, 2 (4), 303-314
http://deeplearning.cs.cmu.edu/pdfs/Cybenko.pdf


この論文では、よく使われるシグモイド関数を用いた3層のANNが任意の関数を任意の精度で近似出来るとことを証明しています。

(厳密に言えば、適切なBanach空間内でそのノルムに関して近似出来る事を証明しています。)



3層でそんな強力なの!?!?!やばい!!!!!


とか思っちゃうかもしれませんが、ここには闇があります。それは、この定理の仮定には


もし、任意の数のニューロンを準備できるならば


と言う現実離れした仮定があるんです。おかしい。

しかも、数学のこの手のある種の存在定理によくあることなんですが、

証明を読んでも具体的にそのニューロンを数を求めるアルゴリズムはありません。



この定理、如何に現実離れしてるかお分かりいただけたでしょうか?


[1]のあと[2]でより一般の非線形関数に対して同様の主張が証明されていますが、

同じく闇です。

とは言え主張が凄いモノであるのは変わりがないので

1990年代初期から十数年の間、

3層ANNに対する理論的結果が非常に多く得られてきました。


しかし、主流はあくまで3層のANNでした。



§ 2. Universal定理の実装上の問題


さて、§ 1.では3層ANNの強力な定理とその弱点を説明したわけですが、3層以上のANNに対しても、

同様のUniversal定理を成立させるには、無限個のニューロンが必要になります。。。



それならばどんな現実上の問題に対しても3層ANNだけ使えばいいじゃないか!

理論的にもよく解明されているんだから!



とか言いたくなるのですが、Universal定理には実装上の非常に大きな問題があります。


それは、定理の仮定と正確に同じ状況にするためには


シグモイド関数を完璧に精確にコンピューター上で実装しなければならない


からです。これが現代の技術では不可能なのは容易に想像できますよね?


つまり、現実上はUniversal定理は成立しないんです。(※もちろん、ある程度の近似は出来ます。)


§ 3. 関数近似と深層学習


じゃあどうしたらいいんですか。。。。。。。。

と思うかもしれませんが、ここで3層以上の深層ANNが威力を発揮します。

論文[3]がその威力を本質的に証明してくれています。(1991年)

彼らが証明したのは


任意の3階以上連続微分可能な非線形関数(これは[1,2]より弱い条件です)を活性化関数として用いても

中間層の数を増やせば、任意の関数を任意の精度で、現実の実装において近似できる。


と言うものです。

現実の実装においてと言う条件が如何に強力かお分かりいただけますでしょうか。


これが深層学習(3層以上)が強力である今知られている理論的根拠の1つであります。


※もちろん、[3]においても適切なANNの構造(層の数やニューロンの数)を求めるアルゴリズムはありません。
この問題はこの先解決されるべき深層学習理論の最重要問題の1つでしょう。




以上、Universal Approximation Theoremと言う視点から

何故深層学習が有効なのかを説明しました。

気になる人は[3]や[4]を読んでみて下さい。

特に[4]は数学に詳しくない人でも読めるかと思いますのでオススメです。



それでは。

§ Appendix. [3]の定理の証明のアイディア

詳細が気になる人のために[3]の定理の証明のアイディアを説明、と言っても大きく言えば2つのステップだけで

(1) Weierstrassの定理を用いて、目標となる関数を与えられた精度で近似する多項式を固定する

(2)その多項式を近似する現実の深層ANNの存在を示す。


これだけです。読んでいて面白かったので原論文[3]を読んでみることをオススメします。

§ Reference

[1]Cybenko., G. (1989) "Approximations by superpositions of sigmoidal functions", Mathematics of Control, Signals, and Systems, 2 (4), 303-314

[2]Kurt Hornik (1991) "Approximation Capabilities of Multilayer Feedforward Networks", Neural Networks, 4(2), 251–257

[3]V. Kreinovich, “Arbitrary nonlinearity is sufficient to represent all functions by neural networks: a theorem,” Neural Networks, 1991, Vol. 4, pp. 381–383.

[4]Baral, Chitta, Olac Fuentes, and Vladik Kreinovich. "Why Deep Neural Networks: A Possible Theoretical Explanation." (2015).