LoginSignup
26
23

More than 1 year has passed since last update.

パラメータ数が多くても過学習しない!?~二重降下~

Last updated at Posted at 2022-06-23

はじめに

従来の考えでは、パラメータ数を多くすると過学習につながると言われていました。
しかし、近年パラメータ数を多くしても過学習しない現象(二重降下)が発見されました。
今回は二重降下に関連する論文である、
"High-dimensional dynamics of generalization error in neural networks"を紹介します!

本記事はQiita Engineer Festa 2022への投稿です。

目次

  • 二重降下とは
  • パラメータ数と過学習の関係
  • 二重降下が生じる理由
    • Eigen gap
    • Frozen subspace
  • まとめ

二重降下とは

まず、二重降下を紹介します。
二重降下については別の論文(Reconciling modern machine learning practice and the bias-variance trade-off)の図が分かりやすいので、そちらを引用します。
image.png
左の図は過学習に関する従来の考えを図にしたものです。
学習を進めていくと学習誤差/汎化誤差ともに下がっていきますが、
ある時を境に汎化誤差が上がっていってしまいます。これが過学習です。

次に二重降下です。
右の図のように、一度上がってしまった汎化誤差がover-parameterized時に下がっています!
つまり、パラメータ数がデータ数より多くても過学習はしないということです。
この不思議な現象が「二重降下(Double Descent)」です。
今回紹介する論文は、この現象が生じる理由をデータ数とパラメータ数の関係から説明しています。

パラメータ数と過学習の関係

パラメータ数と過学習の関係をまとめた図が下記の図です。
image.png
αは「サンプル数(P)/パラメータ数(N)」を表しています。
(Pがサンプル数ってややこしいですね)
これらの内容を整理します。

  • 「α=2(サンプル数>パラメータ数)」の時、最も汎化性能が高い。
  • 「α=1(サンプル数=パラメータ数)」の時、汎化性能が徐々に悪化している(過学習)。
  • 「α=1/2(サンプル数<パラメータ数)」の時、過学習は起きていない(悪化しない)。

従来の考え通り、パラメータ数が少ないときが最も良い汎化性能を出していますね。
一方α=1のときは、徐々に汎化誤差が悪化しています。
image.png

さて、本題の「α=1/2(サンプル数<パラメータ数)」ではどうでしょうか?
「α=2」の時より汎化性能は劣りますが、「α=1」のように汎化性能は悪化していません。
つまり、パラメータ数がデータ数よりも多いときでも、過学習は起きていないのです!
なぜこのようなことが起きるのでしょうか?

二重降下が生じる理由

論文の筆者はこの現象を"Eigen gap"と"Frozen subspace"で説明しています。

Eigen gap

Eigenとは固有値(eigen value)のことで、この固有値の分布が重要です。
なぜなら固有値が過学習に大きな影響を与えるからです。
それを理解するため、下記の式をご覧ください。
これは「学習回数とともに変化する誤差関数」を表す式です。
image.png
2行目のΣ内の第二項はOverfit noiseを表しており、分母には固有値λがあります。
固有値λの値によってOverfit noiseの大きさ、そして全体の誤差の大きさが決まることが分かります。


それでは、サンプル数とパラメータ数の関係ごとに固有値分布を確認しましょう。
image.png

  • 「α=1」の固有値分布(過学習が生じるときの分布)
    「α=1」の分布では0に限りなく近い値を多くとっています。
    これにより先ほどのOverfit noiseが大きくなり、過学習につながったのです。

  • 「α=2」の固有値分布(最も汎化性能の高くなるときの分布)
    λ=0付近をよく見ると、横棒が見えると思います。
    これは固有値λが0に限りなく近い値を取っていない(gapがある)ことを表します。
    つまり、「サンプル数>パラメータ数」の時はEigen gapがあり、固有値λが0に近い値をとらず、
    Overfit noiseが大きくなりにくかったため、汎化性能が高くなっているのです。

Frozen subspace

最後に、本題の「サンプル数<パラメータ数(α=1/2)」の固有値分布を確認しましょう。

  • 「α=1/2」の固有値分布
    • Eigen gapがある
    • 固有値λが0を取っている。

固有値が0を取ると、学習中に学習が進まないことがあります。
学習が進まないということは、汎化性能はよくならないし、悪くもなりません。
この「学習が進まない」というFrozen subspaceが汎化性能の悪化を防いでいると、筆者は考えています。

まとめ

以上より、パラメータ数がデータ数よりも多いときに過学習が起こらない理由は、
「Eigen gap」と「Frozen subspace」が働いているからと言えます。
この発見は、パラメータ数が増大しやすい画像データなどを扱うときに役立ちそうですね!

本記事はここまでです。
お読みいただきありがとうございました。

P.S.
内容に誤りがございましたら、お手数ですがご指摘いただけますと幸いです。

26
23
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
23