본문 바로가기

operator 의 연산 의미 분석

BathNorm Semantic Spectification

1) 한 줄 정의

BatchNorm 은 개별 샘플의 절대값을 무시하고, 배치가 만드는 집단 기준 좌표계로 데이터를 재표현해서 학습 동역학을 강제로 안정화하는 분포 계약 연산자다.

 

2) 의미론적 관점에서의 계약 (Contract)

BatchNorm 은 네트워크에 이런 계약을 강조

  • 레이어 출력은 배치 기준으로 평균 0, 분산 1 에 가까운 형태로 정렬돼야 한다.
  • 그러면 옵티마이저 / 초기화 / 학습률이 받는 충격이 줄고, 학습 경로가 단순해진다.

즉, BN 은 모델이 스스로 분포를 맞추게 강제하는 규율 장치다.

 

3) Canonical Form 을 의미 단위로 분해

(A) 집단 통계 추출 (Collective Statistics)

  • 여기서 B 는 단순 차원이 아니라 통계적 유의성의 크기
  • BatchNorm 은 표본이 충분하다는 전제 위에서만 의미가 유지된다

정규화 좌표계를 배치가 만든다.

 

(B) 좌표계 변환 (Z-score Reparameterization)

  • 이 단계가 핵심 : 데이터의 절대 크기 대신 집단 내 상대적 위치로 바꾼다
  • epsilon 은 단순 수치 안정성이 아니라 계약 붕괴 방지용 안전장치다

의미 : 개별 샘플의 값이 아니라, 집단 내 순위 / 상대적 위치를 학습 신호로 쓴다.

 

(C) 표현력 복원 (Affine Restoration)

  • 정규화는 표현력을 빼앗는다 ( 모든 채널이 비슷해짐 )
  • gamma, beta 는 그걸 복원하는 주권 회복 파라미터다

의미 : 정렬은 강제하되, 최종 표현은 학습 가능하게 남겨둔다.

 

(D) (Inference) 연산 소멸 (Operator Erasure via Folding)

  • 추론에서 BN 은 정규화 연산자가 아니라 앞 레이어 가중치의 재파라미터화로 변한다.
  • 그래서 런타임에서 BN 이 없어지는 것이정답이다.

의미 : 학습 중엔 사회적 계약, 추론 땐 계약서가 가중치에 흡수되어 사라진다.

 

4) Axes의 의미론 (왜 C, B 가 중요하나)

C (Channels) = 계약 단위

  • BN 은 채널별로 평균 / 분산을 만들고, 채널별로 정규화한다.
  • 즉 채널은 독립 계약의 단위다.

B (Batch) = 통계의 근거

  • 배치 크기가 통계의  신뢰도다.
  • B 가 작아지면 BN 은 정규화를 하는 게 아니라 잡음을 주입하는 연산이 된다.

 

5) Invariants (BN이 반드시 지켜야 하는 의미론적 불변성)

INV_DIST_STABILITY : 분포 안정성

  • 목표 : E[y] ~= 0, Var(y) ~= 1
  • 이 불변성이 성립하면
    • 학습률을 올려도 덜 터지고
    • 초기화 / 스케일 변화에 덜 민감해진다.

중요 : 이 invariant 는 BN 이 항상 0/1 로 만든다가 아니라

훈련 동역학에서 분포를 억지로 일정 영역으로 가두는 효과를 말한다.

 

INV_INFERENCE_CONSISTENCY : 학습, 추론 일치성

  • 학습 때는 배치 통계
  • 추론 때는 러닝 통계

의미론적 핵심은

  • running state 가 충분히 수렴하지 않으면
  • 추론은 훈련에서 학습한 좌표계와 다른 좌표계를 쓰게 된다.
    • 모델이 망가진다

 그래서 Folding 은 이 invariant 가 성립할 때만 허용되는 의미론적 rewrite 다

 

6) Sensitivity (취약 지점 = BN의 실패 모드)

(1) Small Batch Crisis

  • B < 8 같은 영역에서는 통계가 불안정
  • BN 은 안정화가 아니라 랜덤한 기준좌표계를 매 스텝 재생성
  • 결과 : 학습 궤적이 흔드리고, 수렴이 깨지거나 성능이 요동

의미론적 결론 : BN의 계약은 집단이 성립할 때만 유효하다.

대체로 GroupNorm / LayerNorm 이 더 의미 안정적

 

(2) SyncBN 통신 비용

멀티 GPU 에서 집단의 정의가 바뀐다.

  • 로컬 배치 통계만 쓰면 : 각 GPU 마다 좌표계가 달라짐
  • 전역 통계를 쓰려면 : AllReduce 로 좌표계를 통일해야 함

즉 SyncBN 은

  • 의미론적으로는 계약의 일관성 유지
  • 물리적으로는 네트워크 / 통신 병목을 유발

 

7) Lowering 의미 : 학습 = 실행, 추론 = 소멸

Training: Fused_SyncBatchNorm

  • BN 학습은 크게
    • 통계 산출
    • 정규화 / affine 적용
    • running stats 업데이트
  • 분리하면 보통 2-pass 이상이 되고 HBM 왕복이 늘어남
  • 그래서 단일 커널 융합이 의미적으로도 자연스럽다

Inference: Folded_Erasure

  • Conv/Linear 앞단과 수학적으로 합칠 수 있으면
    • BN 은 실행할 연산자가 아니라 가중치 변형 규칙이 된다.
  • 최적의 형태는 런타임 커널 0개다

BatchNorm 은 훈련 그래프에는 존재하지만, 추론 그래프에서는 존재하면 안 되는 타입의 연산자

 

8) Kernel 전략을 의미론으로 연결

Persistent CTA Reduction

  • 의미 : 한 번 읽은 데이터를 버리지 않고 옽계 산출 - 정규화까지 연속 집행
  • BN은 reduction 이 필수인데, reduction 은 메모리 / 동기화가 비싸다
  • persistent 는 계약 집행을 끊김 없이 유지하려는 구현

 

Warp-Level AllReduce / Cross-Device Sync

  • 의미 : 집단의 정의를 GPU 경계 너머로 확장
  • 즉 집단 계약의 범위를 전역으로 만든다

 

Inference Folding

  • 의미 : BN 을 계산하는 게 아니라 BN 을 만족하도록 좌표계 / 가중치를 재정의
  • 그래서 연산자가 사라진다 (Operator Erasure)

 

9) Cost Model 을 의미론으로 읽는 법

  • 첫 항 : 집단 계약을 전역으로 확장하는 비용 (통신)
  • 둘째 항 : running stats 가 실제 데이터 분포를 따라가지 못하는 계약 드리프트

성능 / 정확도의 교환의 정확한 표현 가능

  • Sync 를 줄이면 빠르지만 계약이 깨질 수 있고
  • Sync 를 늘리면 정확하지만 느려진다.

 

10) 정리 BatchNorm 의 진짜 정체

  • 학습 단계 : 집단 통계를 기준으로 네트워크의 분포를 강제 정렬하는 계약 집행자
  • 추론 단계 : 그 계약이 가중치에 흡수되어 연산자가 소멸하는 규칙

BN 은 일반적인 op 처럼 항상 실행되는 커널로 보면 해석이 틀어진다.

 

gamma, beta 파라미터가 학습 단계에서는 변해야 하고 그 변화를 위해 분리된 표현 필요

하지만 추론 시 고정된 두 파라미터로 커널 fusion 형태로의 구현 가능