Search
🔎

CNN 모델의 마지막 Layer에는 Batch Normalization 하지 않는 게 좋은 걸까?

작성일
2021/02/16
태그
머신러닝
Deep Learning
작성자
Empty
1 more property
최근 모든 CNN이나 딥러닝 모델의 가장 기본적인 블록으로 자리잡은 batch normalization에 대해 다시 의문을 제기하는 논문들이 나오고 있다.
Batch Normalization이 되려 안 좋은 효과를 불러일으킬 수 있는 상황이 있는걸까? 그렇다면 어떻게 그 상황을 확인하고 해결할 수 있을까?

Batch Normalization이 어떤 건지 복습하기

마지막 레이어에서는 안 쓰는 게 좋겠다고?

BatchNormalization is not a norm! 게시글에서 발췌. Do we need a BN layer at all in a network? Yes. Without BN, the model accuracy drops by a huge margin. So we do need to have some normalization techniques. Does adding a BN blindly after each convolution is the right way to build a CNN architecture? Probably Not! Is there a better way? Definitely Yes! How to decide if there is a need to add BN or not? Grid Search can be one way, but I can’t think of any other optimal way to decide whether to add BN after a convolution or not. Though intuitively, we might need to avoid adding BN layers towards the end of the model so that the prediction layer gets to see a wider range of values.
글쓴이는 Batch Normalization을 모델의 끝부분에서는 피하는 게 좋을 수 있다고 말한다. 그렇게 하면 더 넓은 범위의 값들을 예측에 활용할 수 있기 때문이라고 한다.
Understanding Batch Normalization이라는 논문에서는 Batch Normalization이 포함된 모델은 그렇지 않은 모델보다 입력에 대해 의존적이며, Batch Normalization이 없는 네트워크는 입력과 독립적으로 상대적으로 더 확신을 가지고 class에 대한 출력을 내놓는다고 이야기한다.
Batch Normalization의 이와같은 효과는 regularization 성능을 증가시킬 여지도 있지만, class를 확연하게 나누기 힘들어져 되레 성능을 낮출 수도 있지 않을까 의문을 느낀다.

Heatmap regression에서의 batch normalization

사람의 이미지 입력에서 특정 관절의 좌표를 찾는 task인 pose estimation에서는 좌표를 추정하기 위해서 heatmap이라는 도구를 사용한다.
pose estimation의 heatmap은 특정 관절이 있는 좌표의 주변정보를 학습하기 위해 gaussian blur를 적용한 확률맵이다. 학습한 여러가지 class 중 하나의 class를 추론하는 Image classification 문제와는 달리, heatmap을 활용한 pose estimation task에서는 앞서 언급한 전반적인 class activation 자체가 모델이 목표하는 출력이라고 볼 수 있다.

학습초반에서 관찰되는 batch normalization의 효과

아래 실험은 batch normalization을 포함하는 heatmap regression block을 통한 pose estimation 모델의 초반 학습경과이다.
500, 1000, 1500, 2000 step까지의 결과에서 모델은 뚜렷한 관절에 대한 정의를 내리지 않고 애매모호한 heatmap을 출력한다. 초반 iteration의 accuracy가 현저히 낮다.
그리고 아래 실험은 batch normalization을 배제한 heatmap regression block을 통한 pose estimation 모델의 초반 학습경과이다.
500 step에서부터 모델은 heatmap을 어떻게 학습해야 할지 방향을 잡은 것처럼 어느정도 윤곽을 가진 heatmap을 출력한다. 초반 iteration의 accuracy가 상대적으로 매우 높다.