深層学習の理論#

深層学習はなぜうまくいくのか?についての理論的な考察のまとめ

普遍近似性#

80年代に普遍近似性 (Universal Approximation Property, or Universality)という性質があることが示された。

(この時点では関数近似の効率性までは言及していない)

無限のデータと素子があれば、2層のニューラルネットワークは任意の関数を任意の精度で近似できる

[Hecht-Nielsen,1987][Cybenko,1989]

浅いニューラルネット (shallow newral network: SNN)

緩増加超関数(”活性化関数”) \(\sigma: \mathbb{R} \rightarrow \mathbb{C}\) を固定する (例えば\(\exp \left(-t^2 / 2\right), \tanh (t), \max \{0, t\}\)(=”ReLU”))

中間層が1層の2層ニューラルネットワークは以下のように表すことができる。

\[ \operatorname{SNN}(\boldsymbol{x} ; \boldsymbol{\theta}, \beta) := \sum_{i=1}^p c_i \sigma(\boldsymbol{w}_i^\top \boldsymbol{x}- b_i) - \beta , \quad \boldsymbol{x} \in \mathbb{R}^m \]

ここで \(\boldsymbol{\theta}=\{(\boldsymbol{w}_i, b_i, \boldsymbol{c}_i)\}_{i=1}^p \subset \mathbb{R}^m \times \mathbb{R} \times \mathbb{R}, \beta \in \mathbb{R}\) はパラメータ

SNNの形にするとわかりやすいが、これは関数の和で関数近似しているのでFourier変換と似た構造になっている。

連続関数の一様近似定理(Cybenko 1989)

シグモイド関数型の活性化関数を用いる2層のニューラルネットワークを\(f(x)\)とする。

任意の連続関数\(f^o:[0,1]^d \to \mathbb{R}\)\(\epsilon > 0\)に対して、ある横幅\(p\)とパラメータ\(\{(\boldsymbol{w}_i, b_i, \boldsymbol{c}_i)\}_{i=1}^p, \beta\)が存在し、 一様に\(f^o\)を二層ニューラルネットワークで近似できる

\[ \sup _{x \in[0,1]^d} \left| ~ f^o(x)- \sum_{i=1}^p c_i \sigma(\boldsymbol{w}_i^\top \boldsymbol{x}- b_i) - \beta ~ \right| \leq \epsilon \]

ReLUは2つの素子を適切に用意して足し引きすれば連続なシグモイド型関数を作成できるので、同様に万能近似能力があることを示せるらしい。

Deepは不連続な関数も近似できる#

カーネル法も万能近似能力をもつ

それらとDeepが違うのは、不連続な(ジャンプのある)関数も近似できること(今泉 2021)

Deepは滑らかさが非一様(一部だけ極端に複雑)でもうまく適応的に学習できる

(出所:機械学習の数学(鈴木 大慈 氏、FD研修会「人工知能と数学」) - YouTube

KAN#

コルモゴロフ・アーノルド表現定理(Kolmogorov-Arnold representation theorem)

本家Examplesで知る、新たなニューラルネットワーク『KAN』の威力 #Python - Qiita

参考#