DeepLearning MachineLearning Optimization SGD Stochastic Gradient Descent Adagrad Adadelta RMSprop Adam Nadam

이러한 모든 최적화 알고리즘 중에서 선택을 할 때 어떤 것을 선택해야합니까? 불행히도 그 대답은 결정적이지 않습니다. Schaul et al. 2014 년에 확률 적 최적화를위한 단위 테스트 논문에서는 이러한 최적화 방법 중 많은 것을 벤치마킹하려고 시도했으며 적응형 학습률 알고리즘이 호의적으로 수행되었지만 확실한 승자는 없음을 발견했습니다.

딥러닝 최적화 알고리즘 (그리고 이를 어떤 방법을 선택하는 것)은 여전히 ​​열린 연구 영역이며 수년 동안 계속 될 것입니다. 따라서 찾을 수있는 모든 최적화 알고리즘을 철저히 시도하고 각 알고리즘을 데이터 세트에 던지고 고정되는 사항에 주목하는 대신 2 ~ 3 개의 최적화 알고리즘을 마스터하는 것이 좋습니다.

종종 딥 러닝 프로젝트의 성공은 최적화 알고리즘 (및 관련 매개 변수)과 연구원이 알고리즘을 “driving”하는 데 얼마나 능숙한 지의 조합입니다.

27.2.1 Driving 세 가지 방법 : SGD, Adam 및 RMSprop

“이 시점에서 어떤 알고리즘을 사용할 지 선택하는 것은

사용자가 알고리즘에 익숙한 지(하이퍼 파라미터 조정의 용이함에)

크게 좌우되는 것 같습니다.” – Goodfellow et al.

RMSprop 및 Adam과 같은 적응형 학습률 알고리즘의 성공을 감안할 때 SGD를 무시하고 이를 구식 도구처럼 취급하고 싶을 수 있습니다. 결국 “더 나은” 방법이 존재 하겠죠? 그러나 SGD를 무시하는 것은 큰 실수가 될 것입니다. ImageNet과 같은 까다로운 이미지 분류 데이터 세트에 대한 최신 딥 러닝 간행물을 살펴보십시오. AlexNet, VGGNet, SqueezeNet, Inception, ResNet – 이러한 모든 최신 아키텍처는 SGD를 사용하여 학습 되었습니다.

그 이유가 무엇일까요? 적응형을 적용하는 알고리즘(RMSprop 및 Adam과 같은 학습률) 의 이점은 분명히 합니다. – 네트워크는 더 빨리 수렴 할 수 있습니다. 그러나 수렴 속도는 중요하지만 가장 중요한 요소는 아닙니다. 하이퍼 파라미터가 여전히 우세합니다. 하이퍼 파라미터를 주어진 최적화 프로그램 (및 관련 모델)으로 조정할 수없는 경우 , 네트워크는 합리적인 정확도를 얻을 수 없습니다. SGD는 적응형 학습률 알고리즘보다 확실히 더 느리게 수렴되지만 더 많이 연구 된 알고리즘이기도합니다. 연구원들은 SGD에 더 익숙하고 이를 사용하여 네트워크를 훈련하는 데 수년을 보냈습니다.

예를 들어, 5년 동안 동일한 제조사와 모델의 경주 용 자동차를 운전해 온 전문 경주용 자동차 운전자를 생각해보십시오. 그러다 어느 날 운전자의 스폰서가 바뀌고 강제로 새 차량을 운전하게됩니다. 운전자는 새 경주 용 자동차를 시험해 볼 시간이 없으며 자동차에 대한 경험없이 경주를 시작해야합니다. 드라이버가 처음 몇 번의 레이스에서도 잘 수행 할 수 있습니까? 대부분 그렇지 않습니다. 운전자는 차량과 그 복잡한 점에 익숙하지 않습니다 (그러나 운전자는 결국 전문가이기 때문에 여전히 합리적으로 수행 할 수는 있습니다).

딥 러닝 아키텍처와 최적화 알고리즘도 마찬가지입니다. 주어진 아키텍처 및 최적화 알고리즘으로 더 많은 실험을 수행할수록 훈련 프로세스의 복잡성에 대해 더 많이 알게됩니다. SGD가 거의 60 년 동안 신경망 훈련의 초석 이었음을 감안할 때 이 알고리즘이 오늘날에도 일관되게 사용되는 것은 놀라운 일이 아닙니다. 수렴 속도는 모델의 성능 (정확성)과 비교할 때 그다지 중요하지 않습니다.

간단히 말해, SGD를 사용하여 주어진 데이터 세트에서 더 높은 정확도를 얻을 수 있다면 단순히 하이퍼 파라미터를 더 잘 이해하기 때문에 Adam 또는 RMSprop를 사용할 때보 다 학습하는 데 1.5 배 더 오래 걸리더라도 SGD를 사용할 가능성이 높습니다. 현재 가장 많이 사용되는 딥러닝 최적화 알고리즘은 다음과 같습니다.

1. SGD

2. RMSprop

3. Adam

먼저 SGD를 마스터하고 만나는 모든 아키텍처 및 데이터 세트에 적용하는 것이 좋습니다. 일부 경우에 성능이 우수하고 다른 경우에는 성능이 떨어집니다. 여기서 목표는 특정 최적화 알고리즘을 사용하여 가능한 한 많은 딥러닝 문제에 노출되고 관련 하이퍼 파라미터를 조정하는 방법을 배우는 것입니다. 딥 러닝은 과학이자 예술입니다. 최적화 알고리즘을 마스터하는 것은 절대적으로 많은 연습이 필요한 예술입니다.

거기에서 RMSprop 또는 Adam으로 이동하십시오. 제 경험상 Adam은 대부분의 상황에서 RMSprop를 능가하는 경향이 있으므로 RMSprop보다 먼저 Adam을 공부하는 것이 좋습니다.

27.3 요약

이 장에서는 SGD 대신 사용할 수있는 적응형 학습률 최적화 알고리즘에 대해 설명했습니다. 심층 신경망을 훈련하기 위해 최적화 알고리즘을 선택하는 것은 다음과 같은 지식에 크게 좌우됩니다.

1. 데이터 세트

2. 모델 아키텍처

3. 최적화 알고리즘 (및 관련 하이퍼 파라미터)

찾을 수있는 모든 최적화 알고리즘을 시도하기 위해 철저하게 실험을 실행하는 대신 두,세가지 기술과 하이퍼 파라미터를 조정하는 방법을 마스터하는 것이 좋습니다. 이러한 기술의 전문가가되면 이전에 사용하지 않은 데이터 세트에 새로운 모델 아키텍처를 훨씬 쉽게 적용 할 수 있습니다. 개인적으로 추천하는 것은 딥러닝 공부 초기에 SGD 사용법을 마스터하는 데 많은 시간을 보내는 것입니다. 특히, 모멘텀이 있는 SGD입니다. SGD를 다양한 아키텍처 및 데이터 세트에 적용하는 것이 편하다면 Adam 및 RMSprop로 이동하십시오.

마지막으로, 모델 속도 수렴의 속도는 손실과 정확도의 부차적 이라는 점을 염두에 두십시오. 하이퍼 파라미터를 (자신있게) 조정할 수있는 최적화 알고리즘을 선택하여 합리적으로 성능을 발휘하는 네트워크를 만듭니다.