2023.10.01

『深層学習の原理に迫る』(2021年4月)今泉允聡(岩波科学ライブラリー)

データ解析の数学的基礎の立場から見ると、深層学習が成功しているということがなかなか理解しづらい。逆に言えば、深層学習の成功の理屈を解析することで、データ解析手法の新しいパラダイムが開けるかもしれない、という話。

第1,2,3章

・・ニューラルネットというのは、要するにベクトルからベクトルへの関数である。これを望み通りの関数に出来るだけ近づけることで、入力データの判別が出来る。個々の神経細胞関数の一般的な形としては、

f(x)=η(Ax+b) であり、ηは活性化関数(xに対して非線形)。

これを結合してネットワークにする。初期には単層であったが、多層にすることで実用化された。

・・数学的には、もしも望みの関数が連続でその連続性がある程度一様である場合には、単層の方が良く近似できる。しかし、望みの関数が不連続とか不均一の場合は多層が必要になることが判った。関数の滑らかな部分が全体として最初の層で近似されて、後ろの層で局所的な微細構造が近似される。連続な関数は多項式を足し合わせて近似できるが、不連続な場合は出来ない。この辺の解析には wavelet 解析のような方法が適している。

・・解析データが多次元で複雑であるように見えて、それらが低次元の複雑な形(例えば3次元空間内にある2次元曲面)に収まることが多い。多層のニューラルネットワークはそのような特徴を抽出するのに適している。前の方の層で特徴量が抽出される。

第4章:膨大なパラメータ数の謎

・・一般的にはパラメータの数(自由度)が多すぎると近似関数が過適合して不自然な結果を生み出す。

過適合のし易さ=(自由度/データ数)^1(1/2)

多層ニューラルネットワークの深層学習はパラメータ数が膨大であるにもかかわらず、それが見られない。

この謎の説明として、

1.暗黙的正則化が行われている、という考えがある。これはモデルに含まれる膨大なパラメータは実際には独立ではない、というものである。つまり、自由度<<パラメータ数。そもそも非線形系なので、こういうことも充分考えられる。

2.損失平坦性、つまり適合した解に多少の変動を許しても誤差が大きくならない場合には、過適合が起きにくい。

3.更に、「二重降下」という現象、パラメータ数を増やしていくと最初は過適合が起きやすくなって、更に増やすと起きにくくなる、と現象が注目されている。・・その数学的なモデルとして、データ数もパラメータ数も無限大であるような場合を計算できる。その場合、パラメータ数÷データ数がモデルの大きさを表すことになる。計算結果は驚くべきものであった。モデルの大きさが大きくなると 1 の時に予測誤差が発散して、1を超えると小さくなっていく。つまり、今までの計算機で計算されていた範囲のデータ数やパラメータ数をはるかに超えると、過適合についての定性的な状況が一変するらしい。

・・数学的にはランダム行列を使ってシミュレーションするらしい。ランダム行列のスペクトル分析を行うと、多数の構造に分解されて、その構造の強さが評価できるらしい。「構造の強さ」の意味はよく判らないが、特異値のことを指しているのだろうか?ともかく、次元が小さい間は、構造の強さの分布において、構造の強さ= 0 の近傍にピークが生じているのだが、次元を大きくしていくと、構造の強さの分布が半円状になって、 0 近傍の構造の比率が無視できるようになるという。特異値とすれば、確かに特異値が 0 に近いということは無意味なデータ(ノイズ)であることを意味するのだから、そのような構造が無視できるということは、過適合が起きないということになるだろう。

・・これらはまだ研究途上なので、数学的に明確な結論が出れば、AI だけでなくデータ解析の新たなパラダイムが得られる。深層学習の思わぬ成功はその端緒にすぎないのかもしれない。

第5章:なぜパラメータの学習が出来るのか?

・・多層ニューラルネットワークの最適化(パラメータの決定)は超多次元空間での最適化問題となるので、非常に難しいと思われてきた。

・・確率的勾配降下法:一部のパラメータを選択して、その変動を与えて誤差が最小となるパラメータ空間上の方向に少しづつパラメータを変えていく。この方法は非線形最適化手法としては最も原始的なやり方であるが、パラメータ数が非常に多いためにこうするしかないのだろう。誤差をパラメータ変動で表現した関数が綺麗な凸関数であれば効率的である。(例えば特定の方向だけなだらかとなるような「異方性」があると大変な時間がかかる。)従って、一般的にはそのような綺麗な凸関数となるようにパラメータ表現(あるいは誤差表現)を調整する。しかし、多層ニューラルネットワークの場合は、模擬的に評価すると、とてつもなく不自然な関数形状(自由エネルギーランドスケープ)になっているので、逆に何故うまくいくのかが不思議である。

1.過剰パラメータの効果。損失(誤差)を全体的に減らすことができて、収束しやすくなる。ただ、これは2層程度の場合にしか実証されていない。そもそも過剰パラメータで収束するということは、多くの同等な解があるということである。それが良いのか悪いのか?過剰適応となる場合もあるだろう。

2.一部のパラメータを選択することで、パラメータ更新の方向にばらつきが生じて、それが適切なノイズとして作用し、局所最小値にトラップされるのを防止する効果がある。数学的なモデルとしてはランジュヴァン方程式で確認されているが、この場合のばらつきはガウス分布である。しかし、実際の多層ニューラルネットワークのケースでそうであるとは言えない。

(感想)

実験データをある種の仮説に基づいて多数のパラメータを持つ関数で表現する、というのはあらゆるデータ解析の基本とも言えるだろう。関数が非線形である場合にはさまざまな手法が開発されてきているが、多層ニューロンネットワークの深層学習の場合はその目的たる関数が必ずしも一意的に決まる必要が無いのではないか、という感じがした。

パラメータ数が過剰な場合にはデータの誤差に反応して望ましくない微細構造を持つ関数が得られてしまう場合が多く、その場合にはパラメータ空間に何らかの制限を加える。これが「正則化」と言われる。僕自身は例えば人体腹部の脂肪分布を多数の電極間の電気抵抗から推定する「インピーダンスCT」のアルゴリズムを開発したのだが、腹部を細かく分割して解像度を上げようとすると多数の電極(データ)が必要になるので、その腹部分割方法を工夫したり、過剰適応しないように、誤差行列の特異値分解をして、自由度を制限したりした。これは目標とする脂肪分布が滑らかで一意的であると考えるからである。

この「滑らかで一意的」という制約条件は多層ニューロンネットワークにとっては必ずしも必須ではないと思う。極めて近い出力を与えるのであれば、ネットワーク内での表現(パラメータ)が大きく異なっていても何の問題もない。つまり局所最適化という普通は避けるべき事が免除されているのではないだろうか?つまり、同じ人が仮に同じ事を考えていても、来歴が異なれば、脳内の神経回路結合パターンは異なっているかもしれない。。。

  <目次へ>       <一つ前へ>     <次へ>