batch size는 어떻게 설정해야하는가?

그냥 아무거나 정해도 되는 것 같지만 대단히 중요한 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를 메모리가 허용하는 한 최대한 키우면서 학습시키는게 효과적이라고 말하는 사람이 많다

 

 

참조

 

Batch Size in Deep Learning. 딥러닝 모델의 학습은 대부분 mini-batch Stochastic… | by Hyeonseob Nam | Lunit Team Blog | Medium

 

 

1609.04836.pdf (arxiv.org)

 

TAGS.

Comments