Centric Software

LayerNorm 과 BatchNorm 의 차이 본문

AI/Deep Learning

LayerNorm 과 BatchNorm 의 차이

jh-rrr 2023. 5. 17. 23:02

< Batch Normalization >
표본추출된 mini-batch내부 각 feature 값들의 mean, std를 구해 정규화를 진행해준다.

https://docon.tistory.com/37: 더 자세한 분석입니다!
 

< Layer Normalization >
Batch에 어떤 크기의 데이터들이 있든 관계없이, 샘플단위로 normalization을 시켜준다.
 
 
요점은, 내가 가져온 데이터 혹은 모델 내부에서의 latent vector가 어떤 연산을 하게되는지에 따라 적절한 Normalization 방식을 채택하면 좋을 것 같다.
예를들어, 데이터의 feature중, 특정 feature의 분포가 너무 큰 경우는 Gradient Exploading 등 학습 중 장애가 우려되기에, batch normalization으로 한 샘플 내 feature 간 값의 차이를 줄여주는게 좋을 것 같다.
또는, 모델의 충분히 깊은 hidden layer 중, 특정 feature에 지나치게 의존해 Overfitting을 방지하고자 한다면, Layer Normalization을 통해 feature간 activation value 차이를 상쇄해줄 수 도 있을 것 같다.
마지막으로, 이미지를 처리하는 모델의 경우, 한장의 이미지를 기준으로 Normalization을 진행하는게 더 합리적이기에, Layer Normzlization을 사용하는게 더 적절해 보인다. (상황by상황 이겠지만..)

 
 
 
Reference 
https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=baek2sm&logNo=222176799509&categoryNo=99&proxyReferer=

'AI > Deep Learning' 카테고리의 다른 글

PyTroch DataLoader의 병렬 프로세싱!  (0) 2023.10.30
딥러닝에서 "tensor" 란,  (0) 2022.02.23