배치 크기는 SGD의 수렴에 어떤 영향을 줍니까?


18

많은 논의에서 비슷한 결론을 보았습니다. 미니 배치 크기가 커질수록 SGD의 수렴이 실제로 더 어려워지고 악화됩니다. 이 논문이 답변을 . 또한 초기 단계에서 소규모 학습 속도 또는 배치 크기와 같은 트릭을 사용하여 배치 크기가 큰 문제를 해결하는 사람들에 대해 들었습니다.

그러나 미니 배치의 평균 손실이 데이터 분포에 대한 예상 손실에 대한 근사치라고 생각할 수 있으므로 직관적이지 않은 것으로 보입니다.

1|X|xXl(x,w)Expdata[l(x,w)]
배치 크기가 클수록 정확해야합니다. 실제로는 그렇지 않은 이유는 무엇입니까?


여기에 설명하려는 내 (아마도 잘못된) 생각이 있습니다.

모델의 매개 변수는 서로 크게 의존합니다. 배치가 너무 커지면 한 번에 너무 많은 매개 변수에 영향을 미치므로 매개 변수가 안정적인 고유 한 종속성에 도달하기 어렵습니까? (내부 공변량 이동 문제와 같이 배치 정규화 논문에 )

또는 거의 모든 매개 변수가 모든 반복에 책임이있을 때 중복 암시 적 패턴을 배우는 경향이 있으므로 모델의 용량을 줄입니까? (숫자 분류 문제의 경우 일부 패턴은 점, 일부는 모서리를 담당해야하지만 이것이 발생할 때 모든 패턴은 모든 모양을 담당합니다).

또는 배치 크기가 훈련 세트의 규모에 가까워 질 때 미니 배치는 더 이상 데이터 분포에서 iid로 볼 수 없기 때문에 상관 관계가있는 미니 배치가 발생할 가능성이 높습니까?


최신 정보
Benoit Sanchez의 답변에서 지적한 한 가지 중요한 이유는 큰 미니 배치가 한 번의 업데이트를 완료하기 위해 더 많은 계산이 필요하고 대부분의 분석은 비교를 위해 고정 된 양의 훈련 시대를 사용하기 때문입니다.

그러나이 논문 (Wilson and Martinez, 2003)은 충분한 양의 훈련 기간이 있더라도 더 큰 배치 크기가 여전히 약간 불리하다는 것을 보여줍니다. 일반적으로 그렇습니까? 여기에 이미지 설명을 입력하십시오

답변:


12

  • 27
  • 8343×200000.47

배치가 클수록 동일한 정확도를 위해 훨씬 적은 업데이트가 필요하다는 것을 알 수 있습니다.

그러나 동일한 양의 데이터를 처리하지 않기 때문에 비교할 수 없습니다. 첫 번째 기사를 인용하고 있습니다.

케이제이1제이케이제이"

여기에는 동일한 양의 데이터를 처리 하는 방법이 있으며 여러 개의 미니 배치에 대한 오버 헤드가 적지 만 비슷한 처리 리소스가 필요합니다.

동일한 양의 데이터를 읽는 경우 여러 업데이트가 더 나은 이유를 이해하는 방법에는 여러 가지가 있습니다. 확률 적 경사 하강 대 경사 하강의 핵심 아이디어입니다. 모든 것을 읽은 다음 마지막에 자신을 수정하는 대신 길을 가고 자신을 수정하여 더 나은 추측으로 자신을 수정하므로 다음 읽기가 더 유용합니다. 기하학적으로 각 세그먼트의 시작 부분에서 (대략) 그라디언트 방향으로 여러 세그먼트를 그리므로 여러 업데이트가 더 좋습니다. 하나의 큰 업데이트는 (정확한) 그라디언트 방향의 시작부터 단일 세그먼트입니다. 방향이 정확하지 않더라도 방향을 여러 번 바꾸는 것이 좋습니다.

미니 배치의 크기는 본질적으로 업데이트 빈도입니다. 미니 배치가 작을수록 더 많은 업데이트가 수행됩니다. 하나의 극단 (minibatch = dataset)에서 그라데이션 하강이 있습니다. 다른 극단 (미니 배치 = 한 줄)에서는 줄당 SGD가 가득 찼습니다. 라인 당 SGD는 더 좋지만 더 큰 미니 배치는 더 효율적인 병렬화에 적합합니다.

수렴 프로세스가 끝나면 SGD가 (일괄) GD보다 정확도가 떨어집니다. 그러나이 시점에서 상황은 (보통) 일종의 쓸모없는 정밀한 피팅이됩니다. 훈련 세트에서 약간 작은 손실 함수를 얻는 동안 실제 예측력은 얻지 못합니다. 당신은 매우 정확한 최적만을 찾고 있지만 도움이되지 않습니다. 손실 함수가 올바르게 정규화되면 (과적 합을 방지 함) 정확히 "과적"으로 맞지 않으면 쓸모없이 "하이퍼"로 적합합니다. 이것은 테스트 세트의 정확도에 큰 영향을 미치지 않는 것으로 나타납니다.


1
고마워요. 따라서 기본적으로 동일한 양의 업데이트를 수행하는 경우 배치 크기가 클수록 좋습니다.
dontloo

그에 대해 발표 된 실험을 알고 있습니까 (고정 된 업데이트 수와 다른 배치 크기 비교)?
dontloo

동일한 수의 업데이트에 대해 더 큰 배치가 항상 좋습니다. 간행물에 대해 잘 모르겠습니다. 간행물을 찾은 경우 게시하겠습니다.
Benoit Sanchez

나는 당신의 나머지 질문 (테이블)을 읽었습니다. 흥미롭게도 그것은 테스트 세트에 대한 결과를 보여 주지만 그래디언트 괜찮은 목표는 훈련 세트를 최적화하는 것입니다. 작은 배치는 최적을 무작위 화하여 특정 종류의 작은 과적 합을 피할 수 있습니다. 내가 직관적으로 알지 못하는 미묘한 일입니다.
Benoit Sanchez

기사에 따르면 정확도의 차이는 중요하지 않습니다. 그들은 단지 정확도가 본질적으로 동일하다는 것을 지적하기를 원합니다. 그들이 주로 지적하고 싶은 것은 작은 배치를 가진 SGD가 훨씬 빠르다는 것입니다.
Benoit Sanchez

4

Curtis White의 답변에 추가하고 참조를 더 추가하려면 :

예 SGD는 정규화 유형으로 작동합니다. DNNs 항상 overfit하지 않는 이유 때문에, 그렇지 않으면, 설명하기 어렵다 때문에 중요하다 그들이 할 수있는 .

내가 이해하는 이유는 SGD가 매개 변수 공간에서 '호핑'을 일으키기 때문에 훈련 중에 매개 변수가 좁은 최소값을 유지할 수 없으며 더 넓은 범위에서만 (또는 가까운)있을 수 없기 때문입니다. 그리고이 넓은 사람은 분명히 [1] 일반화 더 (일명, 덜 overfitting).

더 참조 :

  • 여기에 이것을 공식화하는 또 다른 논문이 있습니다. (또는 모든 것을 따르지 않았으며 스스로 확인하십시오!)
  • 이 백서 [3] "stochastic relaxation, or random diffusion"는 SGD에 내재 된 확률이 이어지는 단계가 있다고 주장한다 "maximiz[ation of] the conditional entropy of the layer".

SGD는 엔트로피 정규화 항에 해당합니다.

배치 크기가 수렴에 영향을 미치는 다른 방법이있을 수 있습니다. 이것이 내가 아는 것입니다.


[1] 예 : "일반화 및 확률 적 그라데이션 하강에 대한 베이지안 관점", Smith, Le, 2018. 초록에서 : "We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."

[2] "Stochastic gradient descent는 변동 추론을 수행하고 딥 네트워크의주기를 제한하기 위해 수렴합니다", Chaudhari, Soatto 2017

[3] "정보를 통한 심층 신경망의 블랙 박스 열기"Schwartz-Ziv, Tishby, 2017

[4] "딥 러닝을 이해하려면 일반화를 재고해야한다", C. Zhang 등 2016


(+1) 좋은 참고 자료. [4]의 첫 번째 작가는 btw입니다. C. Zhang
user20160

아, 맞아! 수정 해 주셔서 감사합니다.
dasWesen

0

배치 크기가 너무 크면 SGD를 사용하고 Keras를 사용하여 MLP를 교육 할 때 수렴을 방지 할 수 있습니다. 왜 그라디언트의 평균화와 관련이 있는지 또는 작은 업데이트가 로컬 최소 점을 벗어날 가능성이 더 큰지 100 % 확실하지 않습니다.

여기를 참조 하십시오 .

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