📝 Batch Normalization: Accelerating Deep Network Training by Reducing
Internal Covariate Shift
내부 공변량 변화(Internal Covariate Shift)
각 레이어의 입력 분포가 이전 레이어의 파라미터 변화에 따라 지속적으로 변하는 문제가 발생
배치 정규화(Batch Normalization, BN) 기법으로 문제를 해결하려고 함
배치 정규화(Batch Normalization)
각 미니배치 단위로 입력을 정규화하여 학습률을 높이고, 초기화에 대한 의존도를 줄임
드롭아웃(Dropout)의 필요성을 감소
배치 정규화를 적용한 네트워크 앙상블을 통해 ImageNet 분류의 최고 성능을 갱신함
내부 공변량 변화는 네트워크 매개변수 변화로 인해 활성화 분포가 달라지는 현상
이를 줄이기 위해 각 레이어 입력의 분포를 고정하는 것이 이상적
최적화 과정에서 정규화를 고려하지 않으면 학습이 불안정해질 수 있음
전체 데이터 통계를 활용하면서도 효율적인 정규화 방법이 필요함
각 레이어의 입력을 완전히 백색화하는 것은 계산 비용이 크므로, 두 가지 간단한 방식을 적용한다.
레이어 입력을 완전히 백색화하는 대신, 각 특징을 독립적으로 정규화하여 평균 0, 분산 1로 만든다.
미니배치 단위로 평균과 분산을 계산하여 정규화를 수행한다.
네트워크를 배치 정규화하려면, 특정 활성화 값을 선택한 후, 알고리즘 1에 따라 각 활성화에 대해 BN 변환을 삽입한다. 이전에 입력 를 받던 레이어는 이제 를 입력으로 받는다. 배치 정규화를 적용한 모델은 배치 그래디언트 디센트(Batch Gradient Descent), 미니배치 크기 을 사용하는 확률적 그래디언트 디센트(Stochastic Gradient Descent) 또는 Adagrad와 같은 변형된 최적화 방법으로 학습할 수 있다.
미니배치를 기반으로 하는 활성화 정규화는 효율적인 학습을 가능하게 하지만, 추론 단계에서는 불필요하거나 바람직하지 않다. 추론 시에는 입력만으로 출력을 결정해야 하므로, 학습이 완료된 후에는 미니배치가 아닌 전체 데이터에 대한 통계를 사용하여 정규화를 수행한다. 즉,
을 사용하며, 여기서 분산 는 미니배치의 샘플 분산 을 기반으로 편향이 없는 추정값
을 사용한다.
추론 중에는 평균과 분산이 고정되므로, 정규화는 각 활성화에 적용되는 단순한 선형 변환으로 간주할 수 있다. 또한, BN 변환 후 적용되는 와 의 선형 변환을 합쳐 를 대체하는 단일 선형 변환으로 표현할 수도 있다. 알고리즘 2는 배치 정규화된 네트워크의 훈련 절차를 요약한 것이다.
여기서 와 는 모델이 학습하는 파라미터이며,
는 시그모이드(sigmoid) 또는 ReLU와 같은 비선형 함수이다. 이 수식은 완전 연결 레이어(fully-connected layer)와 합성곱 레이어(convolutional layer) 모두를 포함한다.
BN 변환은 비선형 함수 전에 적용되며, 를 정규화한다. 레이어의 입력 를 정규화할 수도 있지만, 는 이전 비선형 함수의 출력일 가능성이 높아 학습 중에 분포의 형태가 변화할 수 있다. 따라서 첫 번째 및 두 번째 모멘트를 고정하는 것만으로는 공변량 변화(covariate shift)를 제거할 수 없다. 반면, 는 보다 대칭적이고 희소하지 않은 분포를 가진다. 이를 정규화하면 보다 안정적인 분포의 활성화 값을 얻을 수 있다.
를 정규화하기 때문에 바이어스 는 평균 제거 과정에서 소멸하므로 무시할 수 있다.
따라서 다음과 같이 변형된다.
여기서 BN 변환은 의 각 차원별로 독립적으로 적용되며, 각 차원마다 학습 가능한 파라미터 와 를 사용한다.
합성곱 레이어의 경우, 정규화가 합성곱 연산의 성질을 유지해야 하므로, 동일한 특징 맵(feature map)의 서로 다른 위치에서도 동일한 방식으로 정규화되어야 한다. 이를 위해, 미니배치 내 모든 공간적 위치의 활성화 값을 함께 정규화한다. 알고리즘 1에서는 를 미니배치의 모든 값뿐만 아니라, 특징 맵의 공간적 위치까지 포함하는 집합으로 정의한다. 즉, 미니배치 크기가 이고 특징 맵의 크기가 일 때, 효과적인 미니배치 크기는 가 된다.
이 경우, 각 활성화가 아닌 각 특징 맵에 대해 하나의 와 를 학습한다. 알고리즘 2 역시 유사하게 수정되어, 추론 시에는 주어진 특징 맵의 모든 활성화 값에 대해 동일한 선형 변환을 적용하도록 한다.
BN은 그래디언트 폭발 및 소실 문제를 완화하고, 층별 파라미터 변화의 증폭을 방지함.
학습률이 커도 역전파 과정에서 그래디언트 크기가 안정적으로 유지되도록 함.
BN은 층의 야코비안을 직교 행렬에 가깝게 만들어 그래디언트 전파를 더 안정적으로 유지하는 데 도움을 줄 가능성이 있음.
MNIST 데이터셋으로 BN 적용 여부에 따른 학습 성능을 비교함.
BN을 적용한 네트워크가 더 빠르게 학습되고, 테스트 정확도도 더 높았음.
BN을 적용하면 활성화 분포가 안정적으로 유지되어 학습이 더 원활해짐.
배치 정규화만 추가하는 것보다 몇 가지 추가 조정을 통해 학습 속도를 더욱 높임. 학습률 증가, Dropout 제거, 데이터 셔플링 강화, L2 정규화 감소, 학습률 감소 가속화, 지역 응답 정규화 제거, 데이터 왜곡 감소 등을 적용하여 성능 향상을 도모함.
BN을 적용한 여러 모델을 비교한 결과, BN-Baseline은 기존 Inception보다 2배 빠르게 같은 정확도 도달. BN-x5는 Inception보다 14배 빠르게 72.2% 정확도 도달하며, BN-x30은 더 높은 74.8% 정확도 기록. 또한, BN-x5-Sigmoid는 시그모이드 활성화 함수 사용 시에도 69.8% 정확도 달성함.
BN-x30을 기반으로 한 6개 네트워크를 앙상블하여 ImageNet 대회 최고 성능을 갱신함. 최종적으로 4.82%의 오류율을 기록하며, 기존 최고 기록(4.94%)을 초과하는 결과를 얻음. 배치 정규화가 모델의 일반화 성능 향상에 기여함을 입증함.
배치 정규화는 딥 네트워크 학습 가속화에 유용함.
활성화의 공변량 이동을 제거하고 네트워크 구조에 통합해서 학습을 더 빠르게 만듦.
배치 정규화 추가만 해도 이미지 분류 모델의 학습 속도와 정확도가 크게 향상됨.
여러 모델을 앙상블하여 ImageNet에서 기존 최고 성능을 초과함.