logo

최적화기 📂머신러닝

최적화기

정의

최적화 문제란, 함수 f:RnRf : \mathbb{R}^{n} \to \mathbb{R}의 함숫값이 최소가 되도록 하는 xx_{\ast}를 찾는 것을 말한다.

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

최적화 문제를 푸는 일련의 알고리즘을 최적화기optimizer라 한다.

설명

머신러닝, 딥러닝에서 함수 ff손실 함수loss function이라 하고, 이때 xx는 신경망의 파라미터, 즉 가중치가 된다.

확률적 경사하강법

딥러닝에서 쓰이는 최적화기는 사실상 거의 모두 확률적 경사하강법이다. 손실함수를 LL, 파라미터를 θ\boldsymbol{\theta}라 표기하자. 경사하강법이란 다음과 같은 최적화기를 말한다. θi+1=θiαL(θi) \boldsymbol{\theta}_{i+1} = \boldsymbol{\theta}_{i} - \alpha \nabla L(\boldsymbol{\theta}_{i})

모멘텀 기법

모멘텀 기법은 아래와 같이 이전 단계의 그래디언트를 누적시켜 더하는 최적화기를 말한다.

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

네스테로프 모멘텀

네스테로프 모멘텀은 모멘텀 기법에서 살짝 변형을 준 것이다. p0=0\mathbf{p}_{0} = \mathbf{0}에 대해서,

pi+1=βpiαL(θi+βpi) \mathbf{p}_{i+1} = \beta \mathbf{p}_{i} - \alpha \nabla L(\boldsymbol{\theta}_{i} + \beta \mathbf{p}_{i})

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

AdaGrad

AdaGrad는 적응적 학습률을 적용한 최적화기이다. 그래디언트를 Li=L(θi)\nabla L _{i} = \nabla L (\boldsymbol{\theta}_{i})라 간단히 표기하면,

ri=(Li)(Li)αi=αi1+ϵδ+ri=j=1iϵδ+rjθi+1=θiαiLi \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의 변형으로, 더해지는 항을 지수적으로 감소하도록 가중합을 적용한 것이다.

ri=(Li)(Li)αi=ραi1+(1ρ)ϵδ+ri=(1ρ)j=1iρijϵδ+rjθi+1=θiαiLi \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은 적응적 학습률과 모멘텀을 합친 최적화기이다.

pi=β1pi1+(1β1)Li1p^i=pi1(β1)iri=β2ri1+(1β2)LiLir^i=r1(β2)iα^i=ϵδ+r^iθi+1=θiαi^pi^ \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*}

기타

대학원생 하강법

대학원생 하강법은, 대학원생을 최적화기로 사용하는 방법을 말한다. 예로부터 많이 쓰여왔고 지금도 전세계에서 활발히 사용중인 방법이다. 성능은 제각각이지만 가격면에서는 굉장한 효율을 자랑하는 가성비 좋은 최적화기이다.

몬테 카를로

몬테-카를로이란, 무작위로 최대한 많이 해보는 것을 말한다.

그리드 서치

그리드 서치란, 이름 그대로 유클리드 공간 Rn\mathbb{R}^{n}을 격자로 나누어 많은 점에 대해 시도해보며 최적해를 찾는 방법을 말한다.