Adam Optimizer를 사용한 훈련 손실 및 반복에서의 스파이크 설명


16

i) SGD 및 ii) Adam Optimizer를 사용하여 신경망을 훈련하고 있습니다. 정상적인 SGD를 사용할 때 아래 (빨간색)와 같이 부드러운 훈련 손실 대 반복 곡선이 나타납니다. 그러나 Adam Optimizer를 사용할 때 훈련 손실 곡선에 약간의 급상승이 있습니다. 이 스파이크에 대한 설명은 무엇입니까?

모형 세부 사항 :

14 개의 입력 노드-> 2 개의 숨겨진 레이어 (100-> 40 단위)-> 4 개의 출력 단위

나는 아담에 대한 기본 매개 변수를 사용하고 beta_1 = 0.9, beta_2 = 0.999, epsilon = 1e-8batch_size = 32.

i) SGD 사용 ii) Adam과SGD로 아담과


향후 공지를 위해, 초기 학습 속도를 낮추면 Adam의 급증을 없애는 데 도움이 될 수 있습니다.
대담한

답변:


12

스파이크는 Adam ( batch_size=32) 의 Mini-Batch Gradient Descent의 피할 수없는 결과입니다 . 일부 미니 배치는 최적화를 위해 운이 나쁜 데이터를 '우연히'가지고 있으며, Adam을 사용하여 비용 함수에 나타나는 급증을 유발합니다. 확률 적 그라디언트 디센트 (을 사용하는 것과 동일)를 시도 batch_size=1하면 비용 함수에 더 많은 스파이크가 있음을 알 수 있습니다. (Full) Batch GD는 모든 최적화 데이터를 사용하기 때문에 모든 트레이닝 데이터 (즉, 배치 크기가 트레이닝 세트의 카디널리티와 동일)를 사용하므로 동일하지 않습니다. 첫 번째 그래픽에서와 같이 비용은 단조롭게 부드럽게 감소합니다. 제목 ( i) With SGD )가 잘못되어 SGD 대신 (Full) Batch Gradient Descent를 사용하고 있습니다.

Andrew Ng는 그의 훌륭한 Deep Learning 과정에서 아래 이미지를 사용하여이를 자세히 설명합니다.

비용 함수


2
'SGD ... 모든 교육 데이터를 사용합니다'-확실합니까? 즉, 모든 데이터가 피드 포워드 된 후에 가중치가 업데이트되지만 sgd가 아닌 full-batch gd라고합니다. 스토캐스틱은 미니 배치를 의미합니다
Alex

@Alex에게 실수를 지적 해 주셔서 감사합니다. 이미 수정했으며 추가 정보를 참조하여 답변을 개선했습니다.
xboard

@xboard-아니요, 처음에는 미니 배치 그라디언트 디센트를 사용하고 있습니다.
Abdul Fatir

8

그라디언트 및 유사한 동작을 폭발시키는 디버깅에 엄청난 시간을 보냈습니다. 답은 손실 함수, 데이터, 아키텍처 등에 따라 달라집니다. 수백 가지 이유가 있습니다. 몇 가지 이름을하겠습니다.

  • 손실에 따라 다릅니다. 로그 가능성 손실은 잘리지 않아야하며, 그렇지 않은 경우 log(0)데이터 세트의 나쁜 예측 / 이상치에 대해 거의 평가 하여 폭발적인 그래디언트를 유발할 수 있습니다. 대부분의 패키지 (토치, 텐서 플로우 등)는 기본적으로 손실에 대한 클리핑을 구현합니다.
  • 데이터 세트의 특이 치
  • ϵy=(xu)/(s+ϵ)sϵy
  • 데이터 크기를 batchsize로 나눌 수없는 경우 에포크의 최종 배치는 작을 수 있습니다. 토치 데이터 로더에는 플래그가 drop_last있습니다. 작은 배치 크기 = 높은 분산

이제 왜 SGD가 아닌 Adam과 함께 보입니까? 분명히 당신은 아담과 더 낮은 손실에 도달했습니다. 이전에 언급 한 바와 같이, 일부 관측치를 제외하고 데이터 세트의 99.9 %가 한 지점에서 최적화 된 경우, 무작위로 선택 될 때 "NO"라고 비명을 지르고 국소 최소 점에서 뛰어 내릴 수 있습니다. 모든 dataset_size//batch_size+1단계 마다 표시되는 경우 최종 배치 크기가 작기 때문일 수 있습니다. 더 낮은 손실에 도달하면 SGD 스파이크도 보게 될 것입니다.

보너스 : 운동량 최적화 기능 (Adam)을 사용하여 실제로 빠르게 감소하면 일부 레이어 (입력 레이어? 출력 레이어?)가 규모를 벗어나 (대규모 / 작은 무게로) 초기화되었음을 의미 할 수 있습니다.

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