how-ai-works / mean-and-variance

평균곌 분산에서 정규화 잵까지
— LRN곌 BatchNorm을 읎핎하는 데 필요한 것듀

BatchNorm 수식을 처음 볎멎 낯섀지만, 뜯얎볎멎 평균을 빌고 표쀀펞찚로 나눈닀는 쀑학교 통계가 전부입니닀. 얎렀욎 걎 수식읎 아니띌 "얎느 값듀을 한 묶음윌로 볎고 평균을 낮느냐"는 질묞읎고, 정규화 잵듀을 가륎는 것도 정확히 ê·ž 하나입니닀. 읎 페읎지는 평균·분산에서 출발핎 ê·ž 질묞에 도달하고, 답읎 서로 닀륞 두 ìžµ — AlexNet의 LRN곌 BatchNorm — 을 같은 자늬에 놓고 비교합니닀.

수식은 전부 람띌우저에서 싀제로 계산됩니닀. 슬띌읎더와 귞래프륌 직접 만젞 볎섞요.

Demo 0정규화는 값을 바꟞지만 몚양은 낚ꞎ닀

왌쪜 막대륌 위아래로 드래귞핎 볎섞요. 값을 아묎늬 크게 킀우거나 통짞로 옮겚도, 였륞쪜 정규화 결곌는 얞제나 평균 0 · 표쀀펞찚 1로 돌아옵니닀. 닀만 막대듀의 상대적읞 높낮읎 ꎀ계는 귞대로 볎졎됩니닀. 읎것읎 정규화가 하는 음의 전부입니닀.

원볞 값 (드래귞 가능) 정규화 후 z 평균
1 · Ʞ쎈

평균, 분산, 표쀀펞찚 — 숫자 더믞륌 두 개의 숫자로 요앜하Ʞ

값읎 수백만 개 있얎도, ê·ž 더믞륌 섀명할 때 우늬는 볎통 두 가지만 묻습니닀. 얎디쯀에 몚여 있나(쀑심), 귞늬고 얌마나 흩얎젞 있나(퍌짐). 앞의 답읎 평균읎고, 뒀의 답읎 분산곌 표쀀펞찚입니닀.

평균 ÎŒ — 쀑심

전부 더핎서 개수로 나눕니닀. 더 섀명할 것읎 없습니닀.

ÎŒ = 1n Σi=1n xi 몚든 값을 대표하는 하나의 위치

분산 σ² — 퍌짐

퍌짐은 "평균에서 얌마나 ë–šì–Žì ž 있나"입니닀. 귞런데 ë–šì–Žì§„ 거늬륌 귞냥 더하멎 0읎 됩니닀. 위로 벗얎난 만큌 아래로도 벗얎나 있얎서 서로 상쇄되Ʞ 때묞입니닀. 평균의 정의상 반드시 귞렇게 됩니닀. 귞래서 부혞륌 없애알 하는데, 여Ʞ서 제곱을 씁니닀.

σ² = 1n Σ (xi − ÎŒ)² 펞찚륌 제곱핎서 평균 낾 값. 제곱 덕에 부혞가 사띌지고, 멀늬 ë–šì–Žì§„ 값음수록 더 크게 반영됩니닀.

절댓값을 썚도 부혞는 없앚 수 있는데 왜 제곱음까요. 두 가지 읎유가 자죌 얞꞉됩니닀. 하나는 믞분읎 맀끄럜닀는 것(절댓값은 0에서 꺟입니닀), 닀륞 하나는 제곱읎 큰 읎탈에 더 큰 벌점을 쀀닀는 것입니닀. 평균에서 2ë°° 멀얎지멎 Ʞ여도는 4배가 됩니닀. 아래 표에서 읎상치 하나가 분산을 얎떻게 지배하는지 직접 볎섞요.

표쀀펞찚 σ — 원래 닚위로 되돌늬Ʞ

분산은 제곱한 값읎띌 닚위가 얎Ꞌ납니닀. 킀륌 cm로 재서 분산을 구하멎 닚위가 cm²가 되얎 "평균에서 얌마나 ë–šì–Žì ž 있나"륌 직ꎀ적윌로 말할 수 없습니닀. 제곱귌을 씌워 원래 닚위로 되돌며 것읎 표쀀펞찚입니닀. 귞래서 싀제로 "읎 값은 평균에서 2σ ë–šì–Žì ž 있닀"처럌 말할 수 있는 쪜은 분산읎 아니띌 표쀀펞찚입니닀.

σ = √σ² = √1n Σ (xi − ÎŒ)² 정규화에서 나누는 값읎 바로 읎 σ입니닀.
Demo 1계산 곌정을 한 쀄씩 — 읎상치 하나가 분산을 삌킚닀

값 7개 쀑 마지막 하나만 슬띌읎더로 움직입니닀. 펞찚는 선형윌로 늘지만 펞찚²는 제곱윌로 늘얎서, ê·ž 한 개가 전첎 제곱합에서 찚지하는 비쀑읎 순식간에 컀집니닀. 였륞쪜 끝의 Ʞ여도 엎을 볎섞요.

ixáµ¢xáµ¢ − ÎŒ(xáµ¢ − ÎŒ)²Ʞ여도

n윌로 나누나, n−1로 나누나? 가진 데읎터가 전부음 때(몚집닚)는 n, 더 큰 집닚에서 뜑은 표볞읎띌 원래 분산을 추정하는 것읎띌멎 n−1로 나눕니닀(베셀 볎정). 딥러닝의 정규화 잵은 지ꞈ 듀얎옚 배치 전첎륌 귞대로 쓰므로 n을 씁니닀. 닀만 PyTorch BatchNorm읎 추론용윌로 누적하는 running_var는 ꎀ례상 n−1 버전(unbiased=True)읎띌, 학습 때 쓰는 분산곌 믞묘하게 닀늅니닀.

2 · 정규화

정규화란 묎엇읞가 — 섞 가지 방식곌 각자의 사고방식

정규화(normalization)는 값의 슀쌀음을 통음하는 것입니닀. 왜 필요한가는 간닚합니닀. 한 특징은 0~1 범위읎고 닀륞 특징은 0~10000 범위띌멎, 둘을 더하거나 곱하는 몚든 계산에서 큰 쪜읎 작은 쪜을 압도합니닀. 신겜망의 가쀑치 입장에서는 "읎 특징읎 쀑요핎서 큰 게 아니띌 닚위가 컀서 큰 것"을 구별할 방법읎 없습니닀.

슀쌀음을 통음하는 방법은 하나가 아닙니닀. 자죌 쓰읎는 셋을 뎅니닀.

방식수식결곌와 성격
Min-Max
최소-최대 정규화
(x − min) / (max − min) 결곌가 정확히 0~1에 듀얎갑니닀. 범위가 볎장되는 게 장점읎지만, 값 딱 두 개(최소·최대)가 전첎 변환을 결정합니닀. ê·ž 두 개는 하필 가장 불안정한 값읎Ʞ도 합니닀.
Z-score
표쀀화
(x − ÎŒ) / σ 결곌의 평균 0, 표쀀펞찚 1. 범위는 볎장되지 않습니닀(음수도, 3을 넘는 값도 나옵니닀). 대신 몚든 값읎 통계에 핚께 Ʞ여합니닀. 정규화 잵읎 쓰는 것읎 읎것입니닀.
L2
벡터 정규화
x / ‖x‖₂ 벡터 전첎의 Ꞟ읎륌 1로 만듭니닀. 개별 값의 분포가 아니띌 방향만 낚Ʞ는 것읎 목적입니닀. 임베딩 윔사읞 유사도 계산에서 씁니닀. 평균을 빌지 않습니닀.
Demo 2뚌저 였핎 하나 — 섞 결곌는 "몚양"읎 닀륎지 않닀

슬띌읎더로 마지막 값 하나륌 킀워 볎섞요. 섞 막대귞래프의 높낮읎 팚턎읎 똑같읎 움직입니닀. Min-Max와 Z-score는 둘 ë‹€ (x − a) / b ꌎ의 아핀 변환읎띌, 더하고 나누는 상수만 닀륌 뿐 값듀의 상대적 ꎀ계는 완전히 볎졎하Ʞ 때묞입니닀. "z-score가 읎상치에 더 강핎서 몚양읎 덜 뭉개진닀"는 흔한 섀명은 사싀읎 아닙니닀.

귞러멎 두 방식은 묎엇읎 닀륞가. 나누는 값읎 묎엇읎냐가 닀늅니닀. Min-Max는 범위(max − min)로 나누고, Z-score는 표쀀펞찚 σ로 나눕니닀. 읎 둘은 성질읎 완전히 닀늅니닀 — 표볞을 더 많읎 몚을수록 범위는 계속 컀지지만, 표쀀펞찚는 한 값윌로 수렎합니닀. 최댓값곌 최솟값은 표볞읎 늘얎날수록 계속 더 극닚윌로 갱신되Ʞ 때묞입니닀.

Demo 3표볞을 늘늬멎 — 범위는 발산하고 σ는 수렎한닀

같은 분포에서 n개륌 뜑아 범위와 표쀀펞찚륌 재는 음을 반복핎 평균 낾 값입니닀. n을 킀워 볎섞요. σ는 1.00에 눌러앉는데 범위는 멈추지 않고 자랍니닀. 정규화 잵의 통계 묶음 크Ʞ는 배치 크Ʞ·핎상도에 따띌 맀번 달띌지는데, 귞때마닀 나누는 값읎 달띌지는 방식은 쓞 수 없습니닀.

E[범위] / σ — 계속 컀진닀 E[표쀀펞찚] / σ — 1로 수렎

정규화 잵은 왜 z-score읞가. 신겜망 쀑간의 활성값에는 "최소/최대"띌는 안정적읞 값읎 없습니닀. 극닚값은 표볞읎 늘얎날수록 계속 갱신되므로, min-max는 묶음 크Ʞ가 바뀌멎 변환 자첎가 달띌집니닀. 반멎 평균곌 표쀀펞찚는 몚든 원소가 핚께 만드는 통계띌, 묶음읎 컀질수록 였히렀 찞값에 가까워집니닀.

3 · 핵심

진짜 질묞은 "얎느 값듀을 한 묶음윌로 볌 것읞가"

여Ʞ까지 였멎 정규화 수식은 ë‹€ 안 것입니닀. 귞런데 싀제 정규화 잵듀 — BatchNorm, LayerNorm, InstanceNorm, GroupNorm — 은 전부 같은 z-score 수식을 씁니닀. 읎늄읎 닀륞 읎유는 수식읎 달띌서가 아니띌, 평균곌 분산을 얎느 범위에서 계산하느냐가 닀륎Ʞ 때묞입니닀.

CNN의 쀑간 데읎터는 볎통 4찚원 덩얎늬입니닀. (N, C, H, W) — 배치 안의 샘플 N개, 각 샘플의 채널 C개, 각 채널의 섞로 H · 가로 W 격자. 읎 4찚원 덩얎늬에서 얎느 방향윌로 훑윌며 평균을 낌지 고륎는 것, 귞게 정규화 잵의 섀계 전부입니닀.

Demo 4축 선택Ʞ — 한 묶음읎 되는 원소륌 눈윌로 확읞하Ʞ

가로는 채널 C, 섞로는 배치 안의 샘플 N입니닀. 칞 하나가 한 장의 특징 ë§µ(H×W)입니닀. 아래 버튌윌로 정규화 방식을 바꿔 볎섞요. 파랗게 칠핎진 칞듀읎 평균·분산을 핚께 계산하는 한 묶음읎고, 죌황 테두늬가 Ʞ쀀읎 되는 칞입니닀. 닀륞 칞을 큎늭하멎 Ʞ쀀읎 옮겚갑니닀.

샘플
N
잵통계륌 낮는 범위한 묞장 요앜
BatchNorm같은 채널의 N·H·W 전부"읎 채널은 배치 전첎에서 평균 얌마쯀읎지?" — 배치에 의졎합니닀.
LayerNorm한 샘플의 C·H·W 전부"읎 샘플 하나 안에서 평균 얌마지?" — 배치와 묎ꎀ핎서 Transformer·RNN읎 씁니닀.
InstanceNorm한 샘플·한 채널의 H·W특징 ë§µ 한 장씩 따로. 슀타음 전읎에서 씁니닀.
GroupNorm한 샘플에서 채널을 G개 묶음윌로LayerNorm곌 InstanceNorm 사읎. 배치가 작을 때의 절충안입니닀.
LRN한 샘플·한 위치에서 읎웃 채널 n개공간을 훑지 않습니닀. 같은 좌표에 있는 읎웃 채널끌늬만 겚룹니닀.

표에서 LRN만 성격읎 닀늅니닀. 닀륞 넷은 "덩얎늬 하나륌 통짞로 평균 0·분산 1로 맞춘닀"는 발상읞데, LRN은 평균을 빌지 않습니닀. 대신 읎웃듀의 크Ʞ로 나누Ʞ만 합니닀. 귞래서 정확히는 표쀀화가 아니띌 나눗셈 정규화(divisive normalization)읎고, 의도도 "분포륌 맞춘닀"가 아니띌 "섌 놈읎 읎웃을 누륎게 한닀"에 가깝습니닀. 닀음 절에서 ê·ž 수식을 뎅니닀.

4 · LRN

LRN — 읎웃 채널끌늬 겚룚게 하Ʞ (AlexNet, 2012)

LRN(Local Response Normalization, 국소 응답 정규화)은 AlexNet 녌묞에서 제안된 정규화입니닀. 배겜에는 싀제 뉎런의 잡멎 억제(lateral inhibition)가 있습니닀. 강하게 반응한 뉎런읎 옆 뉎런의 반응을 억누륎는 현상읞데, ê·ž 결곌 자극듀 사읎의 대비가 강조됩니닀.

AlexNet은 읎걞 채널 축에 옮겚 놓았습니닀. 같은 위치 (x, y)에서 여러 채널읎 각자의 필터로 반응하고 있을 때, 크게 반응한 채널읎 읎웃 채널의 값을 깎도록 만든 것입니닀.

bix,y = aix,y( k + α Σj (ajx,y)² )β j는 i륌 쀑심윌로 한 읎웃 채널 n개. AlexNet은 k=2, n=5, α=10⁻⁎, β=0.75륌 썌습니닀.

수식읎 하는 음은 분몚륌 읜윌멎 끝납니닀. 읎웃 채널듀의 제곱합읎 크멎 분몚가 컀지고, 귞러멎 낮 값읎 작아집니닀. 옆에서 누가 크게 반응하고 있윌멎 낎가 눌늬는 것입니닀. k는 분몚가 0읎 되는 걞 막는 안전장치읎고, α는 억제의 섞Ʞ, β는 억제의 ꞉격핚을 조절합니닀.

Demo 5잡멎 억제 — 한 채널을 킀우멎 읎웃읎 눌늰닀

같은 위치 (x,y)에 채널 10개가 있습니닀. 채널 5의 활성값만 슬띌읎더로 킀워 볎섞요. 걎드늬지 않은 읎웃 채널듀의 출력읎 같읎 낮아집니닀. 읎웃의 제곱합읎 컀젞 분몚가 컀졌Ʞ 때묞입니닀. ì°œ 크Ʞ n을 1로 쀄읎멎 읎웃읎 없얎젞서 억제도 사띌집니닀.

입력 a (정규화 전) 출력 b (LRN 후)

녌묞읎 볎고한 횚곌는 top-1 였류윚 1.4%p, top-5 였류윚 1.2%p 감소였습니닀. CIFAR-10에서도 4ìžµ CNN Ʞ쀀 13% → 11%로 확읞했닀고 적혀 있습니닀. 당시로서는 묎시할 수 없는 개선읎었고, 귞래서 AlexNet 읎후 한동안 ꎀ행처럌 따띌 붙었습니닀.

5 · BatchNorm

BatchNorm — 축을 배치로 옮Ʞ고, 평균까지 빌Ʞ (2015)

BatchNorm읎 LRN곌 갈띌지는 지점은 두 가지입니닀. 첫짞, 통계륌 읎웃 채널읎 아니띌 배치 전첎에서 냅니닀. 둘짞, 나누Ʞ만 하는 게 아니띌 평균을 빌는 완전한 z-score입니닀.

ÎŒB = 1m Σ xi  Â·  σ²B = 1m Σ (xi − ÎŒB)²  Â·  x̂i = xi − ÎŒB√σ²B + ε  Â·  yi = γ x̂i + β 앞의 섞 개가 1절에서 볞 ê·ž 통계 귞대로입니닀. 마지막 γ·β만 새로욎 것입니닀.

마지막 쀄읎 쀑요합니닀. 평균 0·분산 1로 강제로 맞춰 놓윌멎 표현력읎 쀄얎듀 수 있윌므로, 학습되는 파띌믞터 γ(슀쌀음)와 β(읎동)륌 붙여 필요하멎 닀시 늘늬거나 옮Ꞟ 수 있게 합니닀. 극닚적윌로 γ = σ, β = ÎŒ 륌 학습하멎 원래 값윌로 완전히 되돌아갈 수도 있습니닀. 슉 BatchNorm은 정규화륌 강요하는 게 아니띌 선택지로 제공합니닀.

배치에 의졎한닀는 것의 대가

BatchNorm의 통계는 지ꞈ 읎 배치에서 나옵니닀. 배치가 크멎 ê·ž 평균은 전첎 데읎터의 평균에 가깝지만, 배치가 작윌멎 표볞읎 적얎 맀번 튑니닀. 표볞 평균의 표쀀였찚가 σ/√m읎띌는 사싀읎 귞대로 묞제가 됩니닀 — 배치 크Ʞ m을 4배로 늘렀알 흔듀늌읎 절반윌로 쀄얎듭니닀.

Demo 6배치 크Ʞ와 통계의 흔듀늌

찞값읎 ÎŒ=3.0, σ=2.0읞 활성값 분포에서 크Ʞ m짜늬 배치륌 계속 뜑아, 각 배치가 계산한 평균을 히슀토귞랚윌로 쌓습니닀. m을 쀄읎멎 분포가 넓얎집니닀 — 같은 데읎터읞데 배치마닀 닀륞 정규화륌 하게 되는 것입니닀.

배치가 계산한 평균듀 ì°žê°’ ÎŒ = 3.0

귞래서 BatchNorm에는 학습 때와 추론 때가 닀륎닀는 특성읎 따띌옵니닀. 추론에서는 배치가 하나뿐음 수 있윌니 배치 통계륌 쓞 수 없고, 학습 쀑에 읎동평균윌로 몚아 둔 running_mean·running_var륌 대신 씁니닀. 배치가 작을 때 LayerNorm읎나 GroupNorm윌로 갈아타는 읎유도 여Ʞ 있습니닀 — ê·ž 둘은 3절에서 볞 대로 배치 축을 아예 쓰지 않습니닀.

6 · 결말

귞래서 LRN은 왜 사띌졌나

LRN은 2012년에 등장핎 몇 년 만에 사싀상 자췚륌 감췄습니닀. 두 번의 타격읎 있었습니닀.

첫 번짞 — 횚곌가 재현되지 않았닀 (VGG, 2014)

VGG 녌묞은 LRN을 넣은 구성곌 뺀 구성을 나란히 싀험했습니닀. 결론은 성능은 나아지지 않고 메몚늬 사용량곌 계산 시간만 늘었닀는 것읎었습니닀. AlexNet에서 볎였던 1%대 개선읎 더 깊은 넀튞워크에서는 나타나지 않은 것입니닀.

두 번짞 — 더 좋은 것읎 나왔닀 (BatchNorm, 2015)

BatchNorm은 LRN읎 겚냥하던 묞제륌 훚씬 크게 핎결했습니닀. 학습 안정화 횚곌가 컀서 학습률을 크게 올늎 수 있었고, 녌묞은 같은 정확도에 도달하는 데 필요한 학습 슀텝읎 1/14로 쀄었닀고 볎고했습니닀. 성능도 성능읎지만 "학습읎 잘 되게 만든닀"는 싀용적 읎득읎 압도적읎었습니닀.

LRN (2012)BatchNorm (2015)
통계 범위한 위치의 읎웃 채널 n개같은 채널의 배치 전첎 (N·H·W)
평균을 빌나아니였 (나누Ʞ만)예 (완전한 z-score)
학습 파띌믞터없음 (k·α·β는 고정 하읎퍌파띌믞터)있음 (γ·β륌 학습)
배치 의졎없음 — 샘플 하나로 계산 가능있음 — 작은 배치에서 불안정
학습/추론동음닀늄 (running 통계 필요)
의도채널 간 대비 강조 (잡멎 억제)분포 안정화로 학습 가속

닀만 "LRN읎 틀렞닀"ê³  정늬하멎 곌합니닀. 표의 4행을 볎섞요 — 배치 의졎읎 없닀는 걎 였늘날 Ʞ쀀윌로는 였히렀 장점입니닀. BatchNorm읎 작은 배치에서 흔듀렀 LayerNorm·GroupNorm읎 나옚 흐늄을 생각하멎, LRN은 "샘플 하나로 계산한닀"는 성질을 처음부터 갖고 있었던 셈입니닀. 사띌진 읎유는 ê·ž 성질읎 나빠서가 아니띌, 통계륌 낾 범위가 너묎 좁아서 얻는 것읎 적었Ʞ 때묞입니닀.

지ꞈ도 쓞 수 있나. torch.nn.LocalResponseNorm은 여전히 졎재합니닀. AlexNet 원볞을 재현하거나 옛 첎크포읞튞륌 불러올 때 쓰읎지, 새 몚덞 섀계에서 고륎는 음은 거의 없습니닀.

확읞

퀎슈 ë„€ 묞제

1. 펞찚 (xáµ¢ − ÎŒ)륌 귞냥 ë‹€ 더하멎 얎떻게 되나?

평균의 정의상 위로 벗얎난 양곌 아래로 벗얎난 양읎 정확히 같아서 반드시 0읎 됩니닀. 귞래서 퍌짐을 재렀멎 부혞륌 없애알 하고, 여Ʞ서 제곱을 쓎 것읎 분산입니닀.

2. BatchNorm곌 LayerNorm의 진짜 찚읎는?

수식은 둘 ë‹€ 같은 z-score읎고, γ·β도 둘 ë‹€ 있습니닀. 닀륞 것은 축뿐입니닀. BatchNorm은 같은 채널을 배치 전첎에서, LayerNorm은 한 샘플 안의 몚든 채널에서 통계륌 냅니닀. 배치 축을 쓰지 않는닀는 점읎 LayerNorm읎 Transformer에서 선택된 읎유입니닀.

3. LRN읎 닀륞 정규화 잵듀곌 귌볞적윌로 닀륞 점은?

LRN은 읎웃 채널의 제곱합윌로 나누Ʞ만 하는 나눗셈 정규화입니닀. 평균을 빌지 않윌므로 결곌의 평균읎 0읎 되지 않습니닀. 나뚞지 두 볎Ʞ는 BatchNorm의 특성읎고, LRN은 샘플 하나로 계산되므로 배치와 묎ꎀ합니닀.

4. 배치 크Ʞ륌 32에서 8로 쀄읎멎 BatchNorm에 묎슚 음읎 생Ʞ나?

표볞 평균의 흔듀늌은 σ/√m읎므로 m읎 작아질수록 컀집니닀. 같은 데읎터읞데도 배치마닀 닀륞 변환읎 적용되는 셈입니닀. running 통계는 추론에서만 쓰읎므로 학습 쀑의 불안정을 막아 죌지 못합니닀. 배치륌 킀욞 수 없을 때 GroupNorm·LayerNorm읎 대안읎 되는 읎유입니닀.