주제: 1-7 정규화와 학습 안정화

분류: foundations

타입: concept

난이도: 입문

선수지식: 있음 - gradient descent, 역전파

문제 설정

신경망이 깊어지면 gradient explosion, gradient vanishing, 학습 불안정 문제가 자주 발생합니다.

대표 대응 방법은 입력 데이터 표준화, Layer Normalization, gradient clipping입니다.

직관 비유

1. 데이터 표준화 (Standardization)

x=(xmu)/sigma

기호 의미

왜 필요한가

입력 스케일을 맞추면 학습이 더 안정적이고 빠르게 진행됩니다.

주의점

학습 데이터에서 계산한 평균/표준편차를 검증·테스트에도 동일하게 사용해야 합니다.

2. Layer Normalization

LayerNorm(x)=(xmu)/sqrt(sigma2+epsilon)

기호 의미

왜 필요한가

레이어 출력 분포를 안정적으로 유지해 학습을 안정화합니다.

주의점

BatchNorm과 달리 LayerNorm은 배치 크기에 덜 민감합니다.

3. Gradient Vanishing

역전파에서 gradient가 매우 작아져 초기 레이어가 거의 업데이트되지 않는 문제입니다.

dL/dx=(dL/da)(da/dz)(dz/dx)

대응 방법

4. Gradient Explosion

gradient 값이 너무 커져 파라미터 업데이트가 불안정해지고 학습이 발산할 수 있는 문제입니다.

대응 방법

5. Gradient Clipping

g <- g * (tau / ||g||) if ||g|| > tau

기호 의미

왜 필요한가

gradient explosion을 방지해 학습 안정성을 높입니다.

주의점

너무 강한 clipping은 학습 속도를 낮추거나 underfitting을 유발할 수 있습니다.

코드-수식 연결

수식 PyTorch 코드 설명
x' = (x-mu)/sigmasklearn.preprocessing.StandardScaler데이터 표준화
LayerNormtorch.nn.LayerNorm()레이어 정규화
gradient clippingtorch.nn.utils.clip_grad_norm_()gradient 제한

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)