勾配降下法が極小点にたどり着く話
導入
勾配降下法とは、関数の極小値を見つけるための数理最適化手法の一つである。この方法は、特に機械学習や深層学習の分野で、モデルのパラメータを調整する際によく使われる。
しかし,連続最適化によって,初期値によっては鞍点に収束する可能性があると懸念する人もいる。この記事では、殆どの場合で勾配降下法は極小点に到達することを紹介する。つまり、ほとんど至る初期値に対して、勾配降下法が関数の極値付近に到達したとき、その極値が極小値になることについて解説する。
準備
極値とその種類
- 点
がx^* \in \mathbb{R}^d の臨界点であるとは,f となることである.\nabla f (x^*) =0 - 臨界点
が極小点であるとは,x^* \in \mathbb{R}^d の近傍x^* が存在して,任意のU に対して,x \in U となることである.f(x^*) \leq f(x) - 臨界点
が鞍点であるとは,x^* \in \mathbb{R}^d の任意の近傍x^* に対して,あるU が存在して,x, y \in U となることである.f(y) \leq f(x^*) \leq f(x)
極小点とは,その点の近傍において
これに対して,鞍点とはその点の近傍において関数の形状が馬の鞍のようになっている点を指す.例として,
このように,ヘッシアン行列は臨界点が極小点であるか鞍点であるかを判定する際に重要である.これを一般化すると以下の命題が成り立つ.
命題 1.
臨界点とする.このとき, x^* の固有値が全て正ならば,極小点になる.また, \nabla^2 f(x^*) の固有値の中で,正と負の固有値があるならば,鞍点である. \nabla^2 f(x^*)
勾配降下法
次に,勾配降下法について復習する.初期点
-
for
t _ 0 , \ldots , T-1 -
x_{t+1} \leftarrow g(x_t) := x_t - \eta \nabla f(x_t) - end while
-
return
x_T
勾配降下法は,関数
主定理
勾配降下法によって値が変わらない,つまり,
勾配降下法で,(2)が起きる場合について取り上げる.実は鞍点に収束することが稀であることが,以下の定理からわかる.
定理 2 ([LSJR2016, 定理4, 系9])
関数とし, f \in C^2 (\mathbb{R}^d) を L:= \sup_{x\in\mathbb{R}^d} \| \nabla f (x) \| のリプシッツ定数点とする.集合 f を C の鞍点集合とする.任意の鞍点 f に対し, x^* \in C は負の固有値を持つとする.学習率を \nabla f(x^*) とする. 0 < \eta < 1/L
このとき,ほとんど至る初期点に対して,勾配降下法で鞍点に収束する,すなわち,以下の集合は測度 x_0 \in \mathbb{R}^d である: 0 \left\{ x_0 \in \mathbb{R}^d \middle| \lim_{t \to \infty} g^t (x_0) \in C \right\}.
この定理は,ほとんど至る初期点
参考文献
[LSJR2016] Jason D. Lee, Max Simchowitz, Michael I. Jordan, Benjamin Recht, Gradient Descent Only Converges to Minimizers, 29th Annual Conference on Learning Theory, PMLR 49:1246-1257, 2016.
Discussion