장점
관련 연구 : 입력 데이터의 정규화(Normalization)
하나의 데이터가 각각의 feature에 대해 동일한 값의 범위를 갖도록 함
학습 속도 개선(Large LR 사용 가능)
Motivation: 각 레이어에 대한 입력 분포를 정규화
Method
각 feature에 대하여 batch 차원(i)으로 normalize 한 후, 각 feature에 대한 $\gamma, \beta$ 를 학습한다(입력 데이터의 차원 수 만큼의 $\gamma, \beta$).
일반적인 FC Layer와 ConvNet에서의 방식 차이가 조금 있는데, ConvNet에서는 Spatial 정보(H, W 차원) 또한 데이터 샘플로 취급해준다(즉, filter가 stride하면서 겹치는 각각의 데이터를 배치 데이터로 취급(아래에서 N처럼 취급)하여 Normalize할 전체 배치 샘플에 포함시키는 방식
BN은 배치 차원에 대하여 Normalize
LN은 각 샘플의 feature 차원에 대하여 Normalize
[ ] 배치 샘플 방향이 아닌, layer 방향으로 normalization 해서 이런 이름인가?
다시 풀어서 설명하면, Normalize까지는 아래 그림처럼 BN의 경우 각각의 feature에 대해, LN의 경우 각각의 sample에 대해 이뤄지는데, $\gamma, \beta$ 학습은 BN과 LN 모두 동일한 방식으로 입력되는 각각의 feature에 대해서 이뤄진다(위 슬라이드에서 $\gamma, \beta$ 의 차원을 확인). 즉 값을 0과 1로 Normalize까지 하는 것만 서로 다른 방향으로 계산하고, 이후 각 feature 별로 $\gamma, \beta$를 계산하는 절차는 동일함.
LN은 BN과 달리 train과 test 시 모두 동일하게 작동하며, running mean, running std를 별도로 저장하지 않는다