logo

最適化器 📂機械学習

最適化器

定義

最適化問題とは、関数$f : \mathbb{R}^{n} \to \mathbb{R}$の関数値が最小になるような$x_{\ast}$を見つけることを指す。

$$ x_{\ast} = \argmin\limits_{x} f(x) $$

最適化問題を解く一連のアルゴリズムをオプティマイザoptimizerという。

説明

機械学習、ディープラーニングにおいて関数$f$は損失関数loss functionと呼ばれ、このとき$x$はニューラルネットワークのパラメータ、すなわち重みとなる。

確率的勾配降下法

ディープラーニングで使われるオプティマイザは実質的にほぼすべてが確率的勾配降下法である。損失関数を$L$、パラメータを$\boldsymbol{\theta}$と表記しよう。勾配降下法とは次のようなオプティマイザを指す。 $$ \boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_{i} - \alpha \nabla L(\boldsymbol{\theta}_{i}) $$

モメンタム手法

モメンタム手法とは、以下のように前の段階の勾配を累積して足すオプティマイザを指す。

$$ \boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_{i} + \alpha \sum\limits_{j=0}^{i} \beta^{j} \nabla L(\boldsymbol{\theta}_{i}) $$

ネステロフモメンタム

ネステロフモメンタムは、モメンタム手法に少し変形を加えたものである。$\mathbf{p}_{0} = \mathbf{0}$に対して、

$$ \mathbf{p}_{i+1} = \beta \mathbf{p}_{i} - \alpha \nabla L(\boldsymbol{\theta}_{i} + \beta \mathbf{p}_{i}) $$

$$ \boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_{i} + \mathbf{p}_{i+1} $$

AdaGrad

AdaGradは適応的学習率を適用したオプティマイザである。勾配を$\nabla L _{i} = \nabla L (\boldsymbol{\theta}_{i})$と簡単に表記すると、

$$ \begin{align*} \mathbf{r}_{i} &= (\nabla L_{i}) \odot (\nabla L_{i}) \\ \boldsymbol{\alpha}_{i} &= \boldsymbol{\alpha}_{i-1} + \dfrac{\epsilon}{\delta + \sqrt{\mathbf{r}_{i}}} = \sum_{j=1}^{i} \dfrac{\epsilon}{\delta + \sqrt{\mathbf{r}_{j}}} \\ \boldsymbol{\theta}_{i+1} &= \boldsymbol{\theta}_{i} - \boldsymbol{\alpha}_{i} \odot \nabla L_{i} \end{align*} $$

RMSProp

RMSPropはAdaGradの変形で、加えられる項を指数的に減少するように加重平均を適用するものである。

$$ \begin{align*} \mathbf{r}_{i} &= (\nabla L_{i}) \odot (\nabla L_{i}) \\ \boldsymbol{\alpha}_{i} &= \rho \boldsymbol{\alpha}_{i-1} + (1-\rho) \dfrac{\epsilon}{\delta + \sqrt{\mathbf{r}_{i}}} = (1-\rho) \sum_{j=1}^{i} \rho^{i-j} \dfrac{\epsilon}{\delta + \sqrt{\mathbf{r}_{j}}} \\ \boldsymbol{\theta}_{i+1} &= \boldsymbol{\theta}_{i} - \boldsymbol{\alpha}_{i} \odot \nabla L_{i} \end{align*} $$

Adam

Adamは適応的学習率とモメンタムを組み合わせたオプティマイザである。

$$ \begin{align*} \mathbf{p}_{i} &= \beta_{1}\mathbf{p}_{i-1} + (1-\beta_{1}) \nabla L_{i-1} \quad \\[0.5em] \hat{\mathbf{p}}_{i} &= \dfrac{\mathbf{p}_{i}}{1-(\beta_{1})^{i}} \\[0.5em] \mathbf{r}_{i} &= \beta_{2} \mathbf{r}_{i-1} + (1-\beta_{2}) \nabla L_{i} \odot \nabla L_{i} \\[0.5em] \hat{\mathbf{r}}_{i} &= \dfrac{\mathbf{r}}{1-(\beta_{2})^{i}} \\[0.5em] \hat{\boldsymbol{\alpha}}_{i} &= \dfrac{\epsilon}{\delta + \sqrt{\hat{\mathbf{r}}_{i}}} \\[0.5em] \boldsymbol{\theta}_{i+1} &= \boldsymbol{\theta}_{i} - \hat{\boldsymbol{\alpha}_{i}} \odot \hat{\mathbf{p}_{i}} \end{align*} $$

その他

大学院生降下法

大学院生降下法は、大学院生をオプティマイザとして使用する方法を指す。昔からよく使用されており、現在も世界中で活発に使用されている方法である。性能は様々だがコスト面では大変効率を誇るコストパフォーマンスの良いオプティマイザである。

モンテカルロ

モンテカルロとは、ランダムに最大限多く試みることを指す。

グリッドサーチ

グリッドサーチとは、その名の通りユークリッド空間$\mathbb{R}^{n}$を格子状に分け、多くの点について試しながら最適解を探す方法である。