신경망 연구자들은 오래전부터 설정하기 어려운 초매개변수 중 하나로 학습 속도를 지목해 왔습니다. 학습 속도 설정의 어려움은 모델의 성능에 큰 영향을 미치기 때문입니다. 비용 함수는 특정 방향에 대해 민감하나 다른 방향에서는 둔감하게 반응합니다. 운동량 알고리즘은 이 문제를 일부 해결할 수 있지만 다른 초매개변수를 도입해야 하는 문제가 있습니다. 이를 해결하기 위해 매개변수마다 개별적인 학습 속도를 설정하고, 학습 과정에서 이를 자동으로 적응시키는 방법이 고려되어야 합니다.
델타-비-델타 알고리즘
훈련 도중 개별 학습 속도를 모델 매개변수에 적응시키는 방법으로는 델타-비-델타 알고리즘이 있습니다. 이 알고리즘은 손실 함수의 주어진 모델 매개변수에 대한 편미분의 부호가 바뀌지 않았을 경우 학습 속도를 증가시키고, 부호가 바뀌었을 경우 학습 속도를 감소시키는 원리에 기반합니다. 이러한 규칙은 주로 완전 배치 최적화에 적용됩니다.
AdaGrad 알고리즘
AdaGrad 알고리즘은 모든 모델 매개변수의 학습 속도를 지난 모든 단계의 기울기 누적값에 반비례하여 적응시킵니다. 손실 함수의 편미분이 큰 매개변수의 학습 속도는 빠르게 감소하고, 편미분이 작은 매개변수의 학습 속도는 느리게 감소합니다. 이에 따라 전체 매개변수 공간에서 더 완만한 경사를 따라 학습이 진행되는 효과가 있습니다.
볼록함수 최적화의 관점에서 AdaGrad 알고리즘은 이론적으로 여러 바람직한 성질을 가집니다. 그러나 실제로 심층 신경망을 훈련하는 과정에서 초기부터 기울기 제곱을 누적하면 학습 속도가 필요 이상으로 빠르게 그리고 과도하게 감소하는 문제가 발생합니다. 일부 딥러닝 모델에서는 AdaGrad가 잘 모든 모델에서 그렇지 않을 수 있습니다.
RMSProp 알고리즘
RMSProp 알고리즘은 비볼록 상황에서 AdaGrad를 개선한 것으로, 기울기 누적 대신 지수 가중 이동 평균을 사용합니다. AdaGrad는 볼록 함수에 적용될 때 빠른 수렴을 위해 설계되었습니다. 그러나 비볼록 함수에 AdaGrad를 적용하면 학습 경로가 다양한 구조를 지나 결국 국소적으로 볼록한 영역에 도달할 수 있습니다. 이에 따라 학습 속도가 너무 빨리 감소하여 적절한 수렴을 방해할 수 있습니다. RMSProp은 지수 감쇠 평균을 사용하여 오래된 기울기들이 학습 속도에 크게 영향을 미치지 않도록 합니다. 따라서 볼록한 영역을 찾은 후에도 학습이 빠르게 수렴할 수 있습니다.
RMSProp은 심층 신경망에 대해 효과적이고 실용적인 최적화 알고리즘이라는 것이 실험과 응용 경험을 통해 증명되었습니다. 현재, RMSProp는 딥러닝 실무자들이 일상적으로 사용하는 주요 최적화 방법의 하나입니다.
Adam 알고리즘
Adam은 적응적 학습 최적화 알고리즘이며, 이름은 "adaptive moments"에서 파생되었습니다. 기본적으로 Adam은 RMSProp과 운동량 방법의 결합으로 볼 수 있습니다. 그러나 Adam과 RMSProp 사이에는 몇 가지 주요 차이점이 있습니다. 첫 번째로, Adam은 운동량을 기울기의 적률 추정값으로 직접 도입합니다. 운동량을 RMSProp에 추가하는 가장 직접적인 방법은 기울기를 재비례하는 것입니다. 그러나 이러한 재비례 조합의 이론적 근거는 명확하지 않습니다. 두 번째로, Adam은 1차 적률 추정값과 2차 적률 추정값 모두에 편향 보정 인자를 적용합니다. 이는 이들의 원점에서의 초기화를 고려한 것입니다. RMSProp도 중심화되지 않은 2차 적률을 도입하지만 인자는 적용하지 않습니다. 따라서 Adam과 달리, RMSProp의 2차 적률 추정값은 훈련 초기에 크게 편향될 수 있습니다. 일반적으로 Adam은 초매개변수의 선택에 상당히 견고하게 알려졌지만, 학습 속도의 경우에는 추천되는 기본값 외의 값을 사용해야 할 때가 종종 있습니다.
최적화 알고리즘 선택의 어려움
학습 속도를 각 모델 매개변수에 적응시키는 방식으로 딥러닝 모델의 최적화 문제를 해결하기 위한 다양한 관련 알고리즘을 살펴보았습니다. 이제 그중 어떤 알고리즘을 사용해야 하는지에 대한 선택은 자연스럽게 떠오르는 질문입니다.
현재 이 문제에 대해 아직 공감대가 형성되지 않은 상태입니다. Schaul의 연구에서는 다양한 학습 과제에 대한 많은 수의 최적화 알고리즘들을 비교한 결과를 제시하였습니다. 그 결과, 학습 속도의 적응을 이용하는 알고리즘들이 상당히 안정적인 성과를 보였지만, 특정 알고리즘이 두드러지게 우수하다고 볼 수는 없었습니다.
실무에서의 주요 최적화 알고리즘
현재 실무에서 가장 널리 사용되는 최적화 알고리즘으로는 확률적 경사 하강법, 운동량이 적용된 확률적 경사 하강법, RMSProp, 운동량이 적용된 RMSProp, AdaDelta, Adam 등이 있습니다. 현재 상황에서 알고리즘 선택은 주로 사용자가 특정 알고리즘에 얼마나 익숙한지에 크게 의존하는 것으로 보입니다.
결론
딥러닝 모델의 최적화를 위해 다양한 알고리즘이 제안되었으며, 이 중 주요 알고리즘으로는 델타-비-델타, AdaGrad, RMSProp, Adam 등이 있습니다. 각 알고리즘은 모델의 학습 속도를 조절하기 위해 다양한 방법을 사용하며, 이를 선택하는 것은 아직까지 공감대가 형성되지 않은 상태입니다. 실무에서는 주로 확률적 경사 하강법, 운동량이 적용된 확률적 경사 하강법, RMSProp, 운동량이 적용된 RMSProp, AdaDelta, Adam 등이 널리 사용되며, 알고리즘 선택은 주로 사용자의 경험과 익숙함에 의존합니다.