JA EN
体系微分と最適化の数学
·★ 会員·論文·10分で読めます

凸性と最適化 — なぜ深層学習は「凸でない」のに動くのか

最適化理論の教科書は「凸なら解ける、凸でないなら保証なし」と教える。では損失面が凸でない深層学習はなぜ動くのか。凸集合・凸関数の定義から、局所解より恐い鞍点、汎化と結びつく平坦な最小値まで、地形の言葉で一気につなぐ。

対象textタスクmath

Identifying and attacking the saddle point problem in high-dimensional non-convex optimization


ボウルの底と、霧の山脈

目隠しをして、足元の傾きだけを頼りに一番低い場所を探す遊びを想像してください。

舞台がサラダボウルの内側なら簡単です。どこに立っていても「下り」の方向へ歩き続ければ、必ず底—それも唯一の底—に着きます。

舞台が霧のかかった山脈なら話は別です。歩いた先の窪地が本当に一番低い谷なのか、それとも小さな水たまりなのか、足元の傾きだけでは分かりません。尾根の上の奇妙な平坦地で、どちらへ進むべきか途方に暮れるかもしれません。

このボウルと山脈を数学の言葉で区別するのが凸性(とつせい)です。そして深層学習の損失面は、まぎれもなく山脈のほうです。それなのに勾配降下法—「足元の下りへ歩く」だけの方法—が実際にはうまくいく。この記事は、その謎を地形の言葉で解いていきます。

凸集合と凸関数 — 「へこみのない」形

まず土台の2つの定義から。どちらも「2点を結ぶ」だけの素朴な話です。

凸集合は、へこみのない領域のことです。集合 CC が凸であるとは、

λx+(1λ)yC(x,yC, λ[0,1])\lambda x + (1-\lambda)y \in C \quad (\forall x, y \in C,\ \forall \lambda \in [0,1])
(1)

言い換えると「CC の中のどの2点 x,yx, y を選んで直線で結んでも、その線分がまるごと CC に収まる」ということです。λ\lambda(ラムダ)は線分上の位置を表す0から1の割合です(0.5なら中間点)。円盤は凸、三日月は凸ではありません(線分が欠けた部分を横切るため)。

凸関数は、グラフが「お椀型」の関数です。関数 ff が凸であるとは、

f(λx+(1λ)y)λf(x)+(1λ)f(y)f(\lambda x + (1-\lambda)y) \le \lambda f(x) + (1-\lambda)f(y)
(2)

言い換えると「グラフ上の2点を弦(直線)で結ぶと、グラフは必ず弦の下か弦上にある」ということです。左辺は「2点の混ぜ合わせ地点での関数の値」、右辺は「関数の値の混ぜ合わせ」つまり弦の高さ。お椀は弦より下にたわむ、という日常的な観察がそのまま定義になっています。f(x)=x2f(x)=x^2 は凸、sinx\sin x は凸ではありません。

1変数で2回微分できるなら、判定はもっと簡単です。f(x)0f''(x) \ge 0 がすべての点で成り立てば凸。つまり「傾きがずっと増え続ける(減りに転じない)」なら、お椀型だと保証されます。

凸だと何がうれしいのか

凸関数には、最適化にとって夢のような性質があります。

局所的な最小値は、必ず大域的な最小値である。

「これ以上どちらに動いても下がらない」場所を見つけたら、そこが正真正銘の一番底だと保証されるのです。ボウルの中では、水たまりにだまされる事態がそもそも起こりえません。理由も定義から素直に出ます。もし底Aより低い別の点Bがあったなら、AとBを結ぶ弦は途中でAより低くなり、Aの近くにもっと低い点が存在してしまう—「Aは局所最小」という前提と矛盾するからです。

さらに微分可能な凸関数では、次の一階の条件が成り立ちます。

f(y)f(x)+f(x)(yx)f(y) \ge f(x) + \nabla f(x)^\top (y - x)
(3)

言い換えると「どの点 xx で接平面(接線)を引いても、関数全体がその接平面より上にある」。f(x)\nabla f(x)(ナブラf)は点 xx での勾配、つまり最も急な上り方向を指すベクトルです。この式の強力さは、f(x)=0\nabla f(x) = 0 を代入すると右辺が f(x)f(x) になり、「勾配がゼロの点は全域で最小」が一行で出るところにあります。

だから凸な問題—線形回帰やロジスティック回帰—では、勾配降下法はどこから出発しても同じ答えに着きます。まずはその「安心な世界」を体で確かめてください。

FIG 1凸な谷を球が転がる。学習率が適切なら必ず底に着くが、上げすぎると谷を飛び越えて発散する—凸ですら学習率だけは面倒を見てくれない

ここまでが教科書の前半、「凸なら解ける」の世界です。ところが深層学習は、この安心な世界のに住んでいます。

ニューラルネットの損失関数(パラメータを入力、訓練誤差を出力とする関数)が凸でないことは、雰囲気ではなく簡単な議論で示せます。鍵は置換対称性です。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Identifying and attacking the saddle point problem in high-dimensional non-convex optimization. arXiv:1406.2572論文ページ·PDF
  2. On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima. arXiv:1609.04836論文ページ·PDF
  3. Sharpness-Aware Minimization for Efficiently Improving Generalization. arXiv:2010.01412論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です