An overview of gradient descent optimization algorithms


제목: An overview of gradient descent optimization algorithms

저자: Sebastian Ruder
출처: Insight Centre for Data Analytics, Aylien Ltd.
원문: https://arxiv.org/abs/1609.04747 (pdf: https://arxiv.org/pdf/1609.04747.pdf)
일시: 2017.06.15

요약
  기계학습에서 온라인 최적화 방식에 대한 간략 리뷰 및 비교

Paper Abstract
 Gradient descent optimization algorithms, while increasingly popular, are often used as black-box optimizers, as practical explanations of their strengths and weaknesses are hard to come by. This article aims to provide the reader with intuitions with regard to the behaviour of different algorithms that will allow her to put them to use. In the course of this overview, we look at different variants of gradient descent, summarize challenges, introduce the most common optimization algorithms, review architectures in a parallel and distributed setting, and investigate additional strategies for optimizing gradient descent.


생각
   인공지능 AI의 부상으로 기계학습 machine learning, 특히 딥러닝 deep learning에 대한 관심도 높아졌고 공부하려는 사람들이 많아졌습니다. 단순 관심의 수준을 넘어서 딥러닝 알고리즘을 공부하고 구현해서 실제 문제에 적용하려는 분들도 많습니다. 딥러닝을 마스터하기 위해서 넘어야하는 허들이 많이 있지만, 궁극적으로 가장 난관은 학습모델을 어떻게 최적화할 것이냐입니다. 딥러닝을 다루는 많은 연성의 자료들이 이런 저런 수박 겉핥기 식의 내용만 다뤄지는 현실이 이 분야에서 그래도 공부 좀 했던 사람으로서 미안함을 많이 느낍니다. howerver, 짧지만 개괄적으로 최적화 알고리즘을 다룬 논문이 있어서 소개합니다.

 Genetic algorithm이나 Simulated annealing 등과 evolutionary 최적화 방식도 존재하지만, 머신러닝 커뮤니티에서 가장 많이 적용하는 수학적 최적화 방식은 gradient에 기반한 것입니다. 최적식 또는 loss 함수의 기울기 (미분) 반대방향으로 모델 파라메터를 조정해가는 방식이라 보면 됩니다. 가장 기초적으로 batch gradient descent가 있는데 이는 많은 양의 학습 데이터를 한꺼번에 사용해서 최적화합니다. 많은/모든 데이터를 함께 사용하기 때문에 글로벌 옵티마를 찾을 가능성이 있지만 많은 학습데이터로 학습속도가 느립니다. 글로벌 옵티마의 가능성은 있지만 역설적이게도 배치 방식은 로멀 옵티마에 빠질 가능성이 매우 높습니다. 그래서 새로운 학습 데이터가 생길 때마다 온라인으로 모델 파라메터를 조정하는 stochastic gradient descent (SGD) 방식을 실제 학습에서 많이 사용합니다. 온라인 방식이어서 최신 데이터를 모델에 바로 반영할 수 있고, stochastic의 속성상 로컬 옵티마에서 빠져나올 가능성이 배치보다 높습니다. 하지만, 신규 학습 데이터에 따라서 모델 파라메터가 계속 바뀌므로 불안정하고 전체 데이터 스페이스를 조망하지 못하는 단점이 있습니다. 그래서 이 둘의 장점을 합쳐서 일정수의 작은 합습데이터 세트로 쪼개서 (또는 모아서) 학습하는 mini-batch gradient descent가 일반적입니다.

 Gradient 방식을 현실 문제에 적용할 때 학습비율 learning rate, 학습 스케쥴 등을 정하는 문제를 해결하기 위해서 Momentum, Nesterov accelerated graident, AdaGrad, AdaDelta, RMSprp, Adam, AdaMax, Nadam 등의 방식이 최근 많이 소개돼고 있습니다. 요는 모델 학습에서 하이퍼 파라메터 hyper parameter (모델 파라메터 외에 모델을 학습하는데 필요한 파라메터)를 어떻게 더 쉽게 또는 자동으로 정해줄 것인가 그래서 빠르고 안정적인 최적화를 이룰 것인가 등을 해결한 방식입니다. 개별 알고리즘에 대한 자세한 설명은 논문 참조... 처음에는 잘 읽히지 않을 수도 있지만, 몇 번 읽고 관련 참고 자료를 함께 보다보면 수식이나 방식이 눈에 들어올 겁니다.


Trackback 0 Comment 0