[Andrew Ng] 6-1. Normalizing Activations in a Network

Prettypotato·2026년 2월 18일

Batch Nomalization

Batch size가 5라고 하고 Relu에 모든 값이 양수로 들어가거나 음수로 들어간다면?

  • 모든 값이 양수로 들어가면 Vanishing gradient는 해결되지만, 비선형성을 확보 못 함.
  • 모든 값이 음수로 들어가면 Vanishing gradient

Batch Normalization은 activation에 입력되는 값을 Normalization하는 것이다.

μ=1miz(i)\mu = \frac{1}{m} \sum_i z^{(i)}
σ2=1mi(z(i)μ)2\sigma^2 = \frac{1}{m} \sum_i (z^{(i)} - \mu)^2
znorm(i)=z(i)μσ2+ϵz^{(i)}_{\text{norm}} = \frac{z^{(i)} - \mu}{\sqrt{\sigma^2 + \epsilon}}
z^(i)=γznorm(i)+β\hat{z}^{(i)} = \gamma z^{(i)}_{\text{norm}} + \beta

Batch Nomalization의 효과

Vanishing gradient를 예방하면서 비선형성을 확보할 수 있다.

  • 들어오는 입력값에 대해 어디로 얼만큼 세게 뿌릴지를 학습 시키는 것
  • 해당 node에 대해 nonlinearity를 얼마나 살리면서 vanishing gradient를 얼마나 해결할지, AI가 알아내는 것.
  • W, b를 사용하여 선형결합인 z를 계산하고 z를 Batch normailzation을 함.

Internal Covariance shift에 대해 강력해진다.

  • Covariance shift란?
    • 학습할 때와 테스트할 때, 입력 데이터의 분포(P(x))는 변하지만, 목표 함수(P(y|x))는 변하지 않는 경우.
    • 학습 때는 밝은 낮 사진만 보고 고양이를 분류하는 모델을 학습시켰는데, 테스트 때는 어두운 밤 사진이 들어온다면 입력 분포는 바뀐 것이다. 이런 상황이 covariate shift이다.
  • Internal Covariate Shift란?
    • 딥러닝 내부에서 일어나는 covariate shift이다. 네트워크가 깊어질수록, 앞쪽 레이어가 바뀌면, 그 영향을 뒤쪽 레이어가 받게 되며 입력 분포가 계속 변하게 됨. 즉, 각 레이어의 입력 분포가 학습 도중 계속 바뀌는 현상.
  • Batch Normalization은 각 층에 전달되는 입력값의 분포를 정규화하여, 층 간에 전달되는 데이터의 분포 변화가 네트워크 학습에 미치는 영향을 줄여준다.

Overfitting 안되도록 도와준다.

  • Batch Normalization은 Mini batch의 평균과 분산을 계산하여 입력값을 정규화 함.
  • Mini batch에서 계산된 평균관 분산은 전체 데이터의 일부만을 기반으로 추정된 값이기 때문에 잡읍을 포함할 수 있다. 이러한 잡음은 모델이 과도하게 특정 패턴에 의존하지 않도록 도와준다.
  • Batch size가 큰 경우에는 이 효과가 상대적으로 약해진다.

출처 및 참고 자료

0개의 댓글