다른 답변에서 알 수 있듯이 SGD를 사용하는 주된 이유는 그라디언트의 계산 비용을 줄이면서 많은 미니 배치 또는 샘플에 대해 평균을 낼 때 그라디언트 방향을 크게 유지하는 것입니다.
- 왜 minibatch 작품 .
pdatap^data
g=Epdata(∂J(θ)∂θ)
SE(g^(n))SE(g^(m))=mn−−−√
mEp^data(g^(m))=Ep^data(∂J(θ)∂θ)
m
- 왜 minibatch이 더 잘 작동 할 수 있습니다 .
첫째, 미니 배치는 배치 크기가 작을수록 계산 요구가 감소하여 기술적으로 해결할 수없는 일부 학습 문제를 해결할 수 있습니다.
둘째, 배치 크기가 줄어든다고해서 기울기 정확도가 줄어드는 것은 아닙니다. 많은 훈련 샘플에는 많은 소음이나 특이 치 또는 바이어스가 있습니다. 무작위로 표본 추출 된 미니 배치는 원래의 전체 배치보다 실제 데이터 생성 분포를 더 좋게 (또는 더 나쁘게) 반영 할 수 있습니다. 미니 배치 그라디언트 업데이트의 일부 반복이 더 나은 추정을 제공하는 경우 전체 획기적으로 계산 된 그라디언트보다 하나의 에포크의 평균 결과가 더 나을 수 있습니다.
셋째, 미니 배치는 불쾌한 데이터 샘플을 처리하는 데 도움이 될뿐만 아니라 로컬 최소값이 많은 불쾌한 비용 함수를 처리하는 데 도움이됩니다. Jason_L_Bens가 언급했듯이, 때때로 오류 매니 폴드가 정규 그라디언트를 로컬 최소값으로 트랩하는 것이 더 쉬운 반면 미니 배치로 계산 된 임시 임의 그라디언트를 트랩하는 것이 더 어려울 수 있습니다.
마지막으로 경사 하강에서는 한 번에 전체 최소값에 도달하지 않고 오류 매니 폴드에서 반복됩니다. 그라디언트는 주로 반복 방향을 제공합니다. 미니 배치를 사용하면 훨씬 빠르게 반복 할 수 있습니다. 많은 경우 반복이 많을수록 더 나은 지점에 도달 할 수 있습니다. 전 세계적으로나 심지어는 현지에서 최적의 날씨가 될 수 있습니다. 허용 가능한 일반화 오류를 발생시키는 합리적인 모델에 도달하려고합니다. 미니 배치가 더 쉬워집니다.
Ian Goodfellow 등의 "Deep learning"이라는 책을주의 깊게 읽으면이 주제에 대해 꽤 좋은 토론을 할 수 있습니다.