ref

[Deep Learning] Batch Normalization (배치 정규화)

app_deep_learning/t81_558_class_04_4_batch_norm.ipynb at main · jeffheaton/app_deep_learning

◾배경지식

🔸SGD

🔸Interval Covariance Shift

🔸Whitening


◾BatchNormalization

🔻개요

🔸등장

🔸BatchNormalization의 필요성

  1. Local Optimum 문제를 해결, 네트워크 안정화를 위한 feature scaling을 위해 정규화 작업이 필요하다.
  2. 신경망(network)의 각 레이어마다 activation에 의해 입력값의 분산이 달라지는 Internal Covariance Shift 문제(논문 참고)를 해결하기 위해 필요하다.
    1. Covariate Shift : 이전 레이어의 파라미터 변화로 인하여 현재 레이어의 입력 분포가 바뀌는 현상
    2. Internal Covariate Shift : 레이어를 통과할 때마다 Covariate Shift가 발생하면서 입력의 분포가 계속해서 바뀌는 현상
  3. Internal Covariance Shift 문제를 해결하기 위해 일반적인 표준 정규화(평균0, 표준편차1인 분포로 정규화)인 Whitening 을 떠올릴 수 있으나 이는 또다른 문제를 야기
    1. 모든 입력값을 표준 정규화시키면 편향(bias)과 같은 일부 변수들의 학습이 이루어지지 않는다. 참고한 블로그의 예를 빌리면, Y=WX+b 를 변형시켜 Z=Y-E(Y) 처럼 변형시키면 b(편향)의 영향은 없어진다. 이런 whitening은 loss 값을 변화시키지 않고 특정 변수가 계속 커지는 문제를 야기한다.

🔻Algorithm