그냥 아무거나 정해도 되는 것 같지만 대단히 중요한 parameter
데이터 10만개 전부를 batch하니 gpu가 터지고 1개씩만 쓰자니 너무 오래 걸림
batch size가 커질수록 train,test function의 sharp minimizer에 도달하고
batch size가 작아질수록 flat minimizer에 도달한다는 것이 실험적으로 증명한 논문이 있다

위와 같은 그림에서 flat minimum은 train에서 조금만 벗어나봤자 testing에서 여전히 비슷하다는 것
sharp minimum은 train에서 조금 벗어나면 testing에서 매우 큰 차이를 보인다
일반적으로 test에서 모형이 잘 동작하기를 바란다
그러므로 flat minimum에서 generalization performance가 좋다
small batch size가 일반적으로 좋다는 소리임

근데 5년이나 된 소리이고 그 뒤로 반박하는 논문들이 많이 등장했음
batch size의 영향력이 어떻게 되는지 명확히 밝혀진 것은 없으며
당연히 모델과 task에 따라 최적의 성능을 얻기 위한 batch size는 달라진다는게 정설
근데 일반적으로는 학습시간을 단축하기 위해 batch size를 메모리가 허용하는 한 최대한 키우면서 학습시키는게 효과적이라고 말하는 사람이 많다
참조
728x90
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
convolution layer의 parameter 세는 방법 대충 (0) | 2023.01.03 |
---|---|
convolution의 backpropagation 대충 (0) | 2023.01.02 |
머신러닝 모델링 기본방법 - bootstrapping, bagging, boosting (0) | 2022.12.31 |
확률분포&연속형분포의 이산화&조건부분포&기댓값으로 구하는 통계량 (0) | 2022.06.02 |
딥러닝의 핵심요소 (0) | 2022.06.01 |