본문 바로가기
컴퓨터비전

[딥러닝] 딥러닝의 Optimizer

by PIAI 2022. 3. 8.

정의

위의 그림을 보면 B지점이 Gradient가 최소가 되는 지점이다. 하지만 B지점을 찾지 못하고 A지점이 최소라고 모델이 결정 지을 수 있다.  Loss로 보다 빠르고 안정적으로 수렴할 수 있는 기법이 Optimazer이다.

 

Momentum

일반 Gradient Descent
Momentum 적용

위의 식에서 바뀐 점은 앞의 momentum계수를 반영한 식이다. 가중치를 계속 Update 할 때마다 이전의 Gradient들의 값을 일정 수준으로 반영시키면서 신규 가중치로 Update 적용한다. 바로 이전의 가중치는 0.9, 그 이전은 0.81, 그 이전은 0.729로 시간이 오래 지날수록 반영을 적게 한다.

 

기존 SGD의 경우는 random 한 데이터를 기반으로 Gradient를 계산하므로 최소점을 찾기 위한 최단 스텝으로 가중치가 Update 되지 못하고 지그재그 형태로 Update 하기 쉽다. 하지만 Momentum을 통해 일정 수준이 개선 가능하다.

 

AdaGrad(Adaptive Gradient)

가중치 별로 서로 다른 Learning Rate를 동적으로 적용한다.

그동안 적게 변화된 가중치는 큰 Learning Rate를 적용하고, 많이 변화된 가중치는 보다 적은 Learning Rate를 적용한다.

여기서 gt의 제곱을 하는 이유는 GD는 음수도 나올 수 있기 때문에 절대 크기의 계산이 필요해서이다. 반복할 때마다 개별 가중치 별로 적용된 Gradient의 제곱 값을 더해서 Learning Rate를 새롭게 적용한다.

 

ε : 분모가 0이 되는 것을 막기 위한 아주 작은 값

St: 그동안 적용된 Gradient의 제곱 합

 

가중치 별로 서로 다른 Learning Rate를 동적으로 적용, 그동안 적게 변화된 가중치는 큰 Learning Rate를 적용하고, 많이 변화된 가중치는 보다 작은 Learning Rate를 적용한다.

 

하지만 St의 값이 계속 증가하면서 Learning Rate 값이 아주 적게 변환되는 문제점이 발생할 수 있다.

 

RMSProp

 

지나치게 Learning Rate가 작아지는 것을 막기 위해 Gradient 제곱 값을 단순히 더하지 않고 지수 가중 평균 법으로 구한다. 지수 가중 평균 계수는 Learning Rate 변경에 적용될 현시점 반복 시의 Gradient제곱 값이 커지지 않고 동시에 오랜 과거의 Gradient값의 영향을 줄일 수 있도록 설정한다.

 

 

Adam(Adaptive Moment Estimation)

 

RMSProp이 Learning Rate에 지수 가중 평균법을 사용했다면, Adam은 Momentum에도 지수 가중 평균 법을 사용한 것이다.

 

댓글