Batch Normalization (배치 정규화)

2021. 5. 29. 06:09기본 딥러닝

Internal Covariance Shift

ㅇ 학습에서 불안정화가 일어나는 이유를 'Internal Covariance Shift' 라고 주장하고 있는데, 이는 네트워크의 각 레이

   어나 Activation 마다 입력값의 분산이 달라지는 현상을 뜻한다.

   - Covariate Shift : 이전 레이어의 파라미터 변화로 인하여 현재 레이어의 입력의 분포가 바뀌는 현상 
   - Internal Covariate Shift : 레이어를 통과할 때 마다 Covariate Shift 가 일어나면서 입력의 분포가 약간씩 변하는 현상

 

Whitening
ㅇ 이 현상을 막기 위해서 간단하게 각 레이어의 입력의 분산을 평균 0, 표준편차 1인 입력값으로 정규화 시키는 방법을

    생각해볼 수 있다. 이는 'Whitening' 이라고 일컫는데, 백색 잡음으로 생각하면 될 것 같다.

ㅇ 그러나 단순한 방법의 Whitening은 역전파와 무관하게 진행되기 때문에 특정 파라미터가 계속 커지는 상태로

    Whitening이 진행되는 문제가 생김.  

ㅇ 최적화가 안되는 문제 때문에 특정 변수가 계속 커지는 현사이 발생할 수 있다.

 

Batch Normalization

ㅇ 배치 정규화는 평균과 분산을 조정하는 과정이 별도의 과정으로 떼어진 것이 아니라, 신경망 안에 포함되어 학습 시

    평균과 분산을 조정하는 과정 역시 같이 조절된다는 점이 단순 Whitening 과는 구별된다
ㅇ 즉, 각 레이어마다 정규화 하는 레이어를 두어, 변형된 분포가 나오지 않도록 조절하게 하는 것이 배치 정규화이다. 

ㅇ 배치 정규화는 간단히 말하자면 미니배치의 평균과 분산을 이용해서 정규화 한 뒤에, scale 및 shift 를 감마(γ) 값, 베

    타(β) 값을 통해 실행한다. 이 때 감마와 베타 값은 학습 가능한 변수이다. 즉, Backpropagation을 통해서 학습이 된다.


 

즉, 

Internal Covariate Shift 문제로 인해 신경망이 깊어질 경우 학습이 어려웠던 문제점을 해결

gradient 의 스케일이나 초기 값에 대한 dependency 가 줄어들어 Large Learning Rate 를 설정할 수 있기 떄문에 결과

   적으로 빠른 학습 가능함, 즉, 기존 방법에서 learning rate 를 높게 잡을 경우 gradient 가 vanish/explode 하거나 local

   minima 에 빠지는 경향이 있었는데 이는 scale 때문이었으며, 배치 정규화를 사용할 경우 propagation 시 파라미터의

   scale 에 영향을 받지 않게 되기 때문에 learning rate 를 높게 설정할 수 있는 것임

ㅇ regularization 효과가 있기 때문에 dropout 등의 기법을 사용하지 않아도 됨 (효과가 같기 때문)




 

'기본 딥러닝' 카테고리의 다른 글

Regularization과 Normalization  (0) 2021.05.29
오버피팅 해결 방법  (0) 2021.05.26
옵티마이저 (최적화 함수)  (0) 2021.05.10
활성화 함수  (0) 2021.05.10
손실함수  (0) 2021.05.08