Backpropしないニューラルネット入門 (1/2)

はじめに

最近、統数研で行われた関数推論のワークショップを聴講したり、面白いarXiv論文に出会ったりしまして、深層学習の理論への個人的な関心が高まってきました。そこで、いくつか関心があることをブログにまとめようと思います。

タイトルはほぼ釣りですが、

  • 今回は「最適化マターをすべて無視した場合の汎化理論」
  • 次回は「Backpropしない最適化手法」

という予定なので、そこまで間違ってはいないつもりです。ちなみに、網羅的なレビューではありません。

汎化というミーム

機械学習の研究は「手法そのものの基礎研究」という側面がありますので、深層学習の研究の目標としては

  1. なぜ深層学習がうまくいっているように見えるのか
  2. どうすれば「理論保証つきで」もっとうまくいくのか

ということはぜひ解明されるべきかと思います。(もちろん、一枚岩の分野ではなく、応用研究が重要です)。

「なぜうまくいくのか」というのは、汎化 (generalization) の理論を掘りすすめるということです。

今までの統計的機械学習は、汎化というパラダイムとともにずっと歩んできました。汎化というのは、「手元にあるデータがとある未知の法則から発生したものであるとき、同じ法則から発生するであろう未来のデータをうまく説明できる能力」です。もう少し現場で使われている表現だと、test accuracyが良くなる状態というのが汎化といえます。

そして、よい学習とモデルの複雑さにはトレードオフの関係があります。

  • 理論的には、リスクや汎化誤差の上界に「モデルの大きさ」に相当する項が含まれてしまうため、トレードオフを考慮して モデルはなるべく小さく選ぶ、というのがAIC以来の世界観になっています。
  • 経験的にも、訓練誤差が良いのにテスト誤差がとても悪いという現象(過学習)があることが良く知られていて、モデル選択や正則化といったツールが実務上も欠かせない存在になっています。

しかし、「汎化」や「過学習しないようにモデルは小さく」というのはあくまで ミームではあるものの公理ではなく、現実にはもっと色々なことがありえます。

例えば深層学習では、標準的な意味ではモデルが大きすぎるが、依然としてうまく行っているように見える現象が報告されるなど、従来からの「過学習のストーリー」には乗らない例が増えていますし、それに伴って 汎化の定義を再考する試み なども行われています。要するに、「こういう指針でやればだいたいの場合うまく行く」という思想のようなものをアップデートする必要が出てきている、ということかと認識しています。

2018年の汎化理論:関数クラスの拡大

ここで、ちょっと回帰の問題を考えてみます。

データとして、$(x_i, y_i)$ ($i = 1, \ldots, n$) という入出力ペアが与えられたとします。真の法則は $y_i = f(x_i) + noise$ というな形をしているとして、関数 $f(x)$ を推定する問題を考えます。

ニューラルネットの構造を適当にひとつ固定して、パラメータを変えることで表現できる関数の全体を $\mathcal{F}$ としたとき、最小二乗法によるフィット
$$
\hat{f} \in \arg \min_{f \in \mathcal{F}} \sum_{i=1}^n (y_i - f(x_i))^2
\tag{1}
$$
によって関数を推定することができます。明示的な正則化などは、数式の上ではひとまず考えないことにします。

この最小化問題が厳密に解けたと仮定して、予測誤差の意味でどれだけよいかを考えます。

統計学においては、このような問題は、いわゆるノンパラメトリック回帰と呼ばれている分野の守備範囲でした。ノンパラ回帰の理論は、「関数が滑らかである(与えられた回数微分可能である)」という仮定に負っていた部分が多く、最適性などもその範疇で考えられてきました。しかし、このままでは、ニューラルネットを学習して作った関数$\hat{f}$ が「他と比べてことさらに良い」ことの理由を答えるのが難しくなってしまいます。仮定が現実と合わなくなったケースですね。

そこで、関数が大域的に滑らかであるという仮定から離れ、現実のデータに即して「よりカスタマイズされた関数構造」を考えることでニューラルネットの良さを説明しよう、というアイデアがあります。この流れで、前述の統数研ワークショップ の講演の中から最近の研究を挙げると:

といったように、従来の仮定とは異なる構造をもった関数クラスに対する汎化能力が議論されるようになっています。

ところで、最適化問題 (1) は非凸最適化になり、一般には大域最適解を得ることができません (computableかどうかわからない)。最適化の問題が絡んだ場合の情報はかなり錯綜している印象で、「実はすべての局所解は大域解だから最適化の問題はない」「SGDなどの特定のアルゴリズムが汎化の意味でよい局所解を自動的に選択するから問題ない」などの意見があるようです(文献は割愛)。

感想:何がうまくいっていないか

従来の考え方のままでは、現状何がうまくいかなくなっているのかを考えてみると、要するに

  1. 理論で使われていた仮定が現実と合わなくなった(定式化の欠陥)
  2. 不安定な方法やヒューリスティックスに頼っている(アルゴリズムの欠陥)

ということなんじゃないかなあと思います。

定式化に欠陥があると、理論的に最適な手法と現実に起きていることにズレが生じますし、どんなに解析を精密にしても深層学習が強い理由はそこにはない、ということになってしまいます。そこで、上でレビューしたように、新しい適切な問題設定を探すということが理論面での大きな目標のひとつになるのかな、という所感です。

また、アルゴリズムが不安定だと結果の再現性がなくなってしまいます。そうすると分野全体としても、いろいろな結果から示唆を得て新しい思想を固める作業に時間がかかってしまう気がします。会議の締め切り前になると、エポックごとに誤差が上がった下がったと一喜一憂する人々の姿が世界各地で見られるそうですが、やはり、最適化手法の側にも理論保証がついていないと安心して夜も眠れないのではないかと思います。

というわけで次回はアルゴリズムの話を書きたいです。