수학/딥러닝 이론

[딥러닝] Batch Norm 관점에서 살펴보는 batch size 가이드 라인

AI 꿈나무 2021. 5. 28. 13:41
반응형

 안녕하세요! 모델을 학습하는 경우에 batch size에 대해 고민이 많으실 텐데요. 3개의 논문을 공부하고, 제가 생각하는 배치 사이즈 선택 가이드 라인을 정리해보았습니다 ㅎㅎ!! 많은 분들에게 도움이 되었으면 합니다.

 

 해당 글은 computer vision 관점에서 작성하였습니다. NLP 등 다른 분야에서 활동하시는 분들에게는 이 포스팅이 도움 안될 수 있습니다. ㅎㅎ

 

Batch normalization

 batch normalization은 입력값 x를 평균 0, 분산 1로 표준화하여 활성화 함수로 전달하고 활성화 함수 출력값을 분포를 고르게 합니다. x를 표준화 하는 과정에서 배치 사이즈 단위로 평균과 분산값을 계산하는데요. 어떤 배치 사이즈를 선택하느냐에 따라 평균과 분산값이 달라지므로 성능에 영향을 미치게 됩니다.

 

batch size 선택 가이드 라인

 batch size를 크게 하는 경우와 작게하는 경우에 장단점을 살펴보겠습니다.

 

(1) batch size를 크게 하는 경우

 batch norm은 batch를 기준으로 통계값을 계산하여 training set의 분포를 추정합니다. batch size가 큰 경우에 training set 분포를 좀 더 근사화하여 추정할 수 있습니다. 이 말은 noise를 감소시켜 모델의 convergence를 향상시킬 수 있다는 것입니다. 또한 gpu를 최대한 활용할 수 있어, 모델의 학습속도가 향상됩니다.

 

(2) batch size를 작게 하는 경우

 batch size를 작게 하는 경우에 sample의 수가 적어 training set 통계값을 부정확하게 계산합니다. 이 경우에 noise가 많아 모델의 불안정한 convergence를 유발합니다. 하지만 학습을 방해하는 약간의 noise는 overfitting을 방지하여 모델의 성능을 향상시키는 계기가 될 수 있습니다. 즉, batch size를 작게하면 noise가 많아지고 regularization 효과를 줄 수 있습니다. 너무 작게하면 noise가 너무 커져서 성능에 악영향을 주고, 적절한 크기의 batch를 선택하면 regularization 효과를 줄 수 있습니다.

 

 gpu 제한으로 batch size를 작게할 수 밖에 없는 object detection과 segmentation 분야에서는 batch가 아닌 iteration을 기준으로 배치 통계값을 계산합니다. 일반적으로 iteration으로 배치 통계값을 계산하면, 모델의 성능에 악영향을 주는데 이를 테일러 시리즈로 보안하여 모델의 성능 감소를 방지하는 논문 내용은 아래 포스팅에서 확인하실 수 있습니다.

 

 

[논문 읽기] CBN(2020), Cross-Iteration Batch Normalization

 안녕하세요, 오늘 읽은 논문은 CBN, Cross-Iteration Batch Normalization 입니다.  CBN은 small batch size에서 발생하는 BN의 문제점을 개선하기 위해 이전 Iteration에서 사용한 sample 데이터로 평균과 분..

deep-learning-study.tistory.com

 

 그러면 어떤 batch size가 적절할까요??

 

 2021년 Facebook에서 나온 논문 Rethinking 'Batch' in BatchNorm에서는 32~128 사이의 batch size를 선택하라고 추천합니다. 이외에도 해당 논문에서 여러가지 연구 결과를 담고 있으므로 읽어보시는 것을 추천드립니다!! 배치 정규와에서 배치 사이즈가 미치는 영향에 대한 관점을 얻으실 수 있습니다ㅎㅎ

 


참고자료

[1] https://arxiv.org/abs/2105.07576

[2] https://arxiv.org/abs/2002.05712

[3] https://arxiv.org/abs/1502.03167

반응형