다양한 최적화 알고리즘

최적화란 매개변수의 최적값을 찾는 것을 의미한다. 지금껏 설명해온 최적화 기법은 SGD, 확률적 경사 하강법 뿐이었다. 하지만 SGD에는 단점이 있다. 필자는 이 단점을 해결해나가는 다양한 최적화 알고리즘에 대해 설명하고자 한다.

 

완벽한 설명

 

위의 이미지는 블로그에서 갖고왔다. 이미지가 너무 완벽하게 설명되어 있어서 사실 뭘 더 설명하기가 애매할 지경이다. 따라서 수식과 함께 최적화 알고리즘별 특징을 짚고 넘어가겠다. 아래 내용을 이해 못하겠으면 그냥 위의 이미지만 이해해도 됨 갓벽

 

 

 

경사하강법

 

W : 가중치 매개변수 / η : 학습률 / 미분값 : 손실함수 기울기

 

SGD에 의한 최적화 갱신 경로

 

경사하강법은 무작정 기울어진 방향으로 진행하기 때문에 상당히 무식하다 비효율적이다. 또한 그림에서처럼 지그재그로 탐색하는 근본 원인이 기울어진 방향이 본래의 최솟값과 다른 방향을 가리켜서라는 점 또한 SGD의 단점이다.

 

 

 

모멘텀 (Momentum)

모멘텀은 운동량을 뜻하는 단어로, 더 효율적인 탐색을 위해 물리 법칙을 구현한 것이다.

 

v : 속도 / 𝛼 : 마찰, 저항

 

v는 속도를 의미하며, 기울기 방향으로 힘을 받아 물체가 가속된다는 물리 법칙을 의미한다. 모멘텀 알고리즘을 최적화에 사용할 경우 가중치 매개변수는 공이 그릇 바닥을 구르는 듯한 움직임을 보인다.

 

모멘텀에 의한 최적화 갱신 경로

 

SGD와 비교하면 지그재그 정도가 덜하다.

 

 

 

AdaGrad

신경망 학습에서 η, 학습률은 매우 중요하다. 따라서 이 학습률을 효과적으로 정하는 것이 매우 중요하다. 학습률을 효과적으로 정하는 기술 중 하나로 학습률 감소라는 것이 있는데, 이는 학습을 진행하면서 학습률을 점차 줄여나가는 방법으로 처음에는 크게 학습하다가 점점 조금씩만 학습하게 되는 기술이다.

 

AdaGrad는 이러한 학습률 감소를 각각의 매개변수에 맞춰 적응적으로 학습률을 조정하며 학습을 진행한다.

 

h : 기존 기울기 값을 제곱하여 계속 더해줌

 

위의 식을 보면 알다시피, AdaGrad는 매개변수를 갱신할 때 1/sqrt(h)를 곱해 학습률을 조정한다. 이는 매개변수의 원소 중에서 크게 갱신된 (많이 움직인) 원소는 학습률이 낮아진다는 뜻으로, 각각의 매개변수마다 학습률 감소가 다 다르다.

 

AdaGrad에 의한 최적화 갱신 경로

 

y축 방향을 보면 기울기가 커 초반에는 크게 움직이지만, 움직임에 비례해 갱신 정도도 큰 폭으로 줄어들면서 효율적으로 최솟값을 향하는 것을 볼 수 있다.

 

 

 

RMSProp

AdaGrad는 과거의 기울기를 제곱하여 계속 더해가기 때문에 학습을 진행할수록 갱신 강도가 약해진다. 따라서 학습을 많이 반복하면 어느 순간 갱신량이 0이 되는 순간이 온다. 이러한 문제점을 개선하는 것이 RMSProp이다.

 

RMSProp는 과거의 기울기를 계속해서 누적하는 것이 아니라 먼 과거의 기울기는 서서히 잊고 새로운 기울기의 정보를 크게 반영한다. 이를 지수이동평균(EMA)이라 하며 과거 기울기의 반영 규모를 기하급수적으로 감소시킨다.

 

 

 

Adam

Adam은 모멘텀과 AdaGrad를 합친 것으로, 더 효율적으로 빨리 탐색할 수 있으며 하이퍼파라미터의 편향 보정 또한 진행된다는 특징이 있다.

 

Adam에 의한 최적화 갱신 경로

 

 

 

 

 

 

 

속도비교

 

속도 비교

 

 

 

 


 

 

 

 

 

어떤 갱신 방법이 좋느냐, 라고 묻는다면 모른다. 가 대답이다. 안타깝기 짝이 없는 인공지능 세계는 영화와 달라 수많은 알고리즘들 중 다양한 조합을 시도하며 알고리즘을 구성하는 수개의 하이퍼 파라미터들을 대입하여 최적의 결과를 찾는, 결론적으로는 완벽한 노가다의 세계이기 때문이다. 갓 블래스 유,,,

 

 

 

 

 

 

+ Recent posts