신경망 훈련을위한 옵티 마이저 선택 지침


18

나는 잠시 동안 신경망을 사용하고 있습니다. 그러나 내가 끊임없이 어려움을 겪고있는 한 가지는 네트워크 교육을위한 최적화 프로그램을 선택하는 것입니다 (backprop 사용). 내가 일반적으로하는 것은 하나 (예 : 표준 SGD)로 시작한 다음 다른 사람들을 거의 임의로 시도합니다. 좋은 옵티 마이저를 찾는 더 나은 (그리고 덜 무작위적인) 접근법이 있는지 궁금합니다.

  • SGD (운동량 유무)
  • 에이다 델타
  • 아다 그라드
  • RMSProp
  • 아담

특히, 훈련 데이터에 약간의 속성 (예 : 드문 드문)이 있기 때문에 하나를 선택하는 것에 대한 이론적 근거가 있다면 관심이 있습니다. 또한 컨볼 루션 네트워크 대 피드 포워드 네트워크 또는 분류 대 회귀를 학습 할 때 특정 도메인에서 다른 옵티마이 저가 다른 도메인보다 더 잘 작동한다고 생각합니다.

옵티 마이저를 선택하는 방법에 대한 전략 및 / 또는 직관을 개발 한 사람이 있다면이를 듣고 싶습니다. 또한, 서로를 선택하는 것에 대한 이론적 정당성을 제공하는 작업이 있다면 더 좋습니다.

답변:


3

1) AdaGrad는 자주 업데이트되는 매개 변수에 대해 학습 속도를 너무 가혹하게하고 자주 업데이트되지 않는 매개 변수, 스파 스 매개 변수에 더 많은 학습 속도를 제공합니다. 여러 문제에서 종종 가장 중요한 정보가 빈번하지 않고 드문 데이터에 존재합니다. 따라서 문제가 발생하면 tf-idf 등과 같은 스파 스 데이터를 처리하십시오. Adagrad가 유용 할 수 있습니다.

2) AdaDelta, RMSProp은 Adadelta의 차이점만으로 비슷한 라인에서 거의 작동합니다 .Adadelta의 유일한 차이점은 처음 학습 속도 상수가 필요하지 않습니다.

3) Adam은 Adadelta와 RMSprop의 우수한 특성을 결합하므로 대부분의 문제에서 더 나은 경향이 있습니다.

4) 확률 적 경사 하강은 매우 기본적이고 현재 거의 사용되지 않습니다. 하나의 문제는 같은 글로벌 학습률과 관련이 있습니다. 따라서 학습 속도가 낮 으면 학습 속도가 느려지고 학습 속도가 크면 진동이 발생할 수 있으므로 매개 변수가 서로 다른 스케일 인 경우에는 제대로 작동하지 않습니다. 또한 확률 적 경사 하강은 일반적으로 중철 점을 탈출하는 데 어려움을 겪습니다. Adagrad, Adadelta, RMSprop 및 ADAM은 일반적으로 새들 포인트를 더 잘 처리합니다. 모멘텀이있는 SGD는 최적화 속도를 높이고 로컬 최소 점을 더 잘 벗어날 수 있도록 도와줍니다.


2

내 개인적인 접근 방식은 일반적으로 표준 데이터 세트 또는 최신 상태 또는 두 가지 모두에 대한 결과를보고하기 때문에 최신 (즉, 최신 게시 된 피어에서 검토 된 저널) 최적화 프로그램을 선택하는 것입니다. 예를 들어 Caffe를 사용할 때는 항상 Adam ( http://arxiv.org/abs/1412.6980 )을 사용합니다.


0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

Adam본질적 RMSprop으로 운동량 과 마찬가지로 , Nesterov 운동량을 가진 NadamAdam도 RMSprop있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.