내가 보려고 아카이빙하는 BN과 LN의 차이
이미지 데이터 모양을 간단하게 줄여서:
배치 크기(B) = 2 → 이미지 2장
채널 수(C) = 2 → 각 이미지에 채널이 2개 (예: R, G)
공간 크기(H × W) = 1 × 2 → 너무 크지 않게 2픽셀만 있다고 가정
[Batch, Channel, Height, Width] = [2, 2, 1, 2]
이것을 숫자로 표현하면
이미지1 (배치 0)
채널0: [1, 2]
채널1: [3, 4]
이미지2 (배치 1)
채널0: [5, 6]
채널1: [7, 8]
BN은 같은 채널(C)에 대해, 배치(B) 전체와 공간(HXW) 전체의 값을 모아서 정규화
이미지1 채널0
:
[1, 2] → [(1 - 3.5)/2.06, (2 - 3.5)/2.06] ≈ [-1.21, -0.73]
이미지2 채널0
:
[5, 6] → [(5 - 3.5)/2.06, (6 - 3.5)/2.06] ≈ [0.73, 1.21]
→ 정규화 결과:
이미지1 채널1
: [3, 4] → ≈ [-1.21, -0.73]
이미지2 채널1
: [7, 8] → ≈ [0.73, 1.21]
이미지 | 채널 | 원래 값 | 정규화 결과 |
---|---|---|---|
1 (0) | 0 | [1, 2] | [-1.21, -0.73] |
1 (0) | 1 | [3, 4] | [-1.21, -0.73] |
2 (1) | 0 | [5, 6] | [0.73, 1.21] |
2 (1) | 1 | [7, 8] | [0.73, 1.21] |
LN은 한 샘플(이미지) 안에서, 모든 채널과 공간의 값을 다 모아서 평균/표준편차를 계산
→ [1, 2] (채널0) + [3, 4] (채널1) = [1, 2, 3, 4]
→ 정규화:
→ [5, 6] (채널0) + [7, 8] (채널1) = [5, 6, 7, 8]
→ 정규화:
이미지 | 채널 | 원래 값 | 정규화 결과 |
---|---|---|---|
1 (0) | 채널0 | [1, 2] | [-1.34, -0.45] |
1 (0) | 채널1 | [3, 4] | [0.45, 1.34] |
2 (1) | 채널0 | [5, 6] | [-1.34, -0.45] |
2 (1) | 채널1 | [7, 8] | [0.45, 1.34] |
항목 | BatchNorm | LayerNorm |
---|---|---|
정규화 기준 | 같은 채널, 여러 이미지 | 하나의 이미지, 모든 채널 |
공간 정보 포함? | 포함함 | 포함함 |
배치 크기 영향을 받나? | ✅ 예 | ❌ 아니요 |
어디서 주로 사용? | CNN | Transformer, ViT, NLP |