최적화기
정의
최적화 문제란, 함수 $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}$을 격자로 나누어 많은 점에 대해 시도해보며 최적해를 찾는 방법을 말한다.