https://arxiv.org/abs/1502.03167
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful param
arxiv.org
2015년 발표 된 논문을 통해 설명하자면, 기존 심층 신경망(DNN) 학습 시, 그래디언트 기반의 최적화 경로를 통해 모델을 학습을 시키는 과정에 있어 생기는 Gradient Vanishing 문제 및 Exploding 문제를 해결하기 위해 효과적으로 학습을 수렴하는 방법을 모색하기 위한 방법 중 하나로 제안되고 있다.
1. Abstract
심층 신경망 학습의 주요 문제점인 내부 공변량 이동(Internal Covariate Shift) 문제를 해결하기 위해 배치정규화(Batch Normalization)을 제안함
내부 공변량 이동이란? (Internal Covariate Shift)
쉽게 설명해서 입력값으로 들어간 데이터의 분포가 지속적으로 변화함에 있어 학습 속도 학습률의 문제가 발생하는 것이라고 생각하는게 쉽다.
이는 신경망의 매개변수(가중치, 편향값)이 랜덤하게 업데이트가 되면서, 이전 층의 출력, 현재 층의 출력의 입력데이터 분포가 바뀌기 때문에 이러한 문제가 생긴 것이라고 보면 된다.
이 개념이 중요한 이유
- 학습 속도 저하 : 입력 데이터의 분포가 계속 바뀌면, 각 층은 새로운 분포에 적응해야 하므로 학습 속도가 느려지고, 안정적인 수렴이 불가
- 초기화와 학습률 문제 : 모델이 효과적으로 학습하려면, 가중치 초기화와 학습률 조정을 신중하게 해야 하지만, 내부 공변량 이동은 이를 더 복잡하게 만듬
- 비활성화 함수의 문제 : 예를 들어 \(sigmoid\)와 같은 포화 상태에 도달하기 쉬운 활성화 함수는 입력 데이터가 특정 분포를 벗어나면 기울기 소실(Vanishing Gradient)이 발생할 가능성이 큼
그림으로 표현하는 Batch Normal에 대한 직관적 이해

2. Introduction
- 배경 및 문제점 : 딥러닝은 이미지, 음성 등 다양한 분야에서 큰 진전을 이루었으나, 학습은 여전히 복잡하고 어렵다.
- 입력 분포의 변화 : 입력층의 분포가 변화하면서 학습 속도가 느려지고, 안정적인 학습을 위해 학습률 조정 및 초기화가 신중해야함
- 포화 함수 문제 : 시그모이드 등 포화 상태로 쉽게 빠질 수 있는 활성화 함수는 기울기 소실로 인해 학습이 더 어려워짐
- 핵심 문제점 : 내부 공변량 이동(Internal Covariate Shift)
- 학습 도중 이전 층의 매개변수 변화로 인해 현재 층의 입력 분포가 바뀌는 현상
- 이로 인해 각 층이 새로운 입력 분포에 계속 적응해야 하므로 학습 속도 저하
- 네트워크가 깊어질 수록 상기 문제가 더욱 심각해짐
- 학습 도중 이전 층의 매개변수 변화로 인해 현재 층의 입력 분포가 바뀌는 현상
- 이를 위한 해결책 : 배치 정규화
- 위 논문에서는 배치 정규화를 제안함.
- 각 층에 입력을 정규화 하여, 평균과 분산을 일정하게 유지시킴
- 정규화 과정을 모델 아키텍처 통합하고, 이를 미니배치 단위로 수행
- 이를 통해 학습률 상승 및 드롭아웃 필요성을 줄임
- 위 논문에서는 배치 정규화를 제안함.
- 이를 기반한 성과
- 기존의 이미지 분류 모델에 사용되던 메커니즘에 비해 학습 속도가 14배 이상 빨라지는 효과를 보이며, 더 높은 정확도를 달성할 수 있다는 것을 확인함
- ImageNet에서 평가치가 높아진 것을 확인
- 기본적인 학습 목표에 따른 수식
- 딥러닝 모델 학습은 손실 함수 \(\ell(x, \Theta)\) 를 최소화하기 위해 매개변수 \(\Theta\) 를 조정하는 과정으로 정의됨
- \(\Theta = \arg\min_\Theta \frac{1}{N} \sum_{i=1}^{N} \ell(x_i, \Theta)\)
- 수식 설명
- \(x_i: i-\)번째 훈련 샘플
- \(\Theta:\) 네트워크 매개변수
- \(N:\) 훈련 데이터 샘플의 총 개수
- \(\ell(x, \Theta: )\) 손실 함수 (예 MSE, CE 등)
- 수식 설명
- \(\Theta = \arg\min_\Theta \frac{1}{N} \sum_{i=1}^{N} \ell(x_i, \Theta)\)
- 딥러닝 모델 학습은 손실 함수 \(\ell(x, \Theta)\) 를 최소화하기 위해 매개변수 \(\Theta\) 를 조정하는 과정으로 정의됨
- 그에 따른 학습 방법
- 미니배치 기반 확률적 경사 하강법(SGD)
- SGD는 미니배치 \(B= \{x_1, x_2, \dots, x_m\}\)를 사용하여 손실 함수의 경사를 계산함 , \(m\)은 미니 배치의 크기
- \(\frac{1}{m} \frac{\partial \ell(x_i, \Theta)}{\partial \Theta}\)
- 이를 기반으로 매개변수 \(\Theta\)를 업데이트 함
- \(\Theta \leftarrow \Theta - \alpha \cdot \frac{1}{m} \sum_{i=1}^{m} \frac{\partial \ell(x_i, \Theta)}{\partial \Theta}\)
- 수식 설명
- \(\alpha:\) 학습률
- \(m:\) 미니배치의 크기
- \(\frac{\partial \ell(x_i, \Theta)}{\partial \Theta}:\) 손실 함수에 대한 파라미터 \(\Theta\)의 기울기
- 그렇기에, SGD는 각 미니배치 단위별로 학습을 하기 때문에, 각 데이터마다의 분포 값이 달라질 수 있다.
- 이로 인해 생기는 입력 분포가 지속적으로 변하는 내부 공변량 이동 현상이 발생
- 미니배치 기반 확률적 경사 하강법(SGD)
🔑 문제점 해결을 위한 방법
1. 미니배치의 평균과 분산 계산
- 각 미니배치 \(B= \{x_1, x_2, \dots, x_m\}\)에 대해, 각 특징의 평균과 분산을 계산합니다.
- \(\mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i\)
- 수식 설명
- \(\mu_B:\) 미니배치 \(B\)의 평균
- \(m:\) 미니배치의 크기
- \(x_i:\) 미니 배치 내 \(i-\)번 째 샘플
- \(\mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i\)
2. 미니배치의 분산 계산
- 미니배치에 속한 샘플들의 분산을 계산하여, 데이터가 평균에서 얼마나 퍼져 있는지 측정
- \(\sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_B)^2\)
- 수식 설명
- \(\sigma_B^2:\) 미니배치 B의 분산
- \(\mu_B:\) 미니배치의 평균 (위에서 계산한 값)
- \(x_i - \mu_B:\) 각 샘플이 평균에서 얼마나 떨어져 있는지 나타내는 값
- \(\sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_B)^2\)
3. 평균과 분산을 이용하여 정규화
- 미니 배치의 입력 데이터를 평균 0, 분산 1이 되도록 변환함
- \(\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}\)
- 수식 설명
- \(x_i:\) 원본 데이터
- \(\mu_B:\) 미니배치의 평균값
- \(\sigma_B^2:\) 미니 배치의 분산 값
- \(\epsilon:\) 작은 값
- \(\sqrt{\sigma_B^2 + \epsilon}:\) 표준편차 값
- \(\hat{x}_i:\) 정규화 된 입력 값
- 수식 설명
- \(\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}\)
4. 배치 정규화를 시킨 이후 선형 변환 작용
- 입력을 정규화 시킨 후, 학습 가능한 스케일(\(\gamma\)과 이동(\(\beta\)을 적용하여 모델의 표현력을 유지함
- \(y_i = \gamma \hat{x}_i + \beta\)
- 수식 설명
- \(\hat{x}_i:\) 정규화 된 입력 값
- \(\gamma:\) 학습 가능한 스케일 파라미터 (데이터 크기를 조정)
- \(\beta:\) 학습 가능한 이동 파라미터 (데이터 중심을 조정)
- \(y_i:\) 최종 변환 값
- 수식 설명
- \(y_i = \gamma \hat{x}_i + \beta\)
- 단순 정규화만 적용시켰을 시 모든 입력이 평균0, 분산 1이 되도록 변환되기에 모델이 원래 학습 해야 할 데이터의 특징을 충분히 반영하지 못할 수도 있음
5. 마무리 역전파
- \(\frac{\partial \ell}{\partial x_i} = \frac{\partial \ell}{\partial \hat{x}_i} \cdot \frac{1}{\sqrt{\sigma_B^2 + \epsilon}} + \frac{\partial \ell}{\partial \sigma_B^2} \cdot \frac{2(x_i - \mu_B)}{m} + \frac{\partial \ell}{\partial \mu_B} \cdot \frac{1}{m}\)
- 기울기를 업데이트하고 학습을 최종 진행
그렇게 얻은 배치 정규화를 사용했을 때와 사용하지 않았을 때의 학습 데이터셋과 검증 데이터셋에 대한 결과물

배치 노말의 장점
- 일반화를 개선하고, 과적합을 방지함
- 학습의 수렴 속도를 높이고(Learning_rate) 가중치 초기화에 대해 강건해짐
- 학습의 안정성을 부여하며, 기울기 소실을 완화 시킴
배치 노말의 단점
- 배치단위에 의존적임
- 배치 단위가 매우 작을 경우에 기울기 소실 문제가 발생할 가능성이 큼
- 시퀀스 모델에는 적용하기 힘듬
- 시점마다 연속적인 데이터를 통해 학습하는 RNN모델에는 적용하기 힘들다
그림으로 이해하는 배치 노말

- \(N\)축 기준 배치 기준으로 미니배치에 있는 샘플들끼리 정규화
- 축 설명
- \(N:\) 미니배치 크기
- \(C:\) 채널 수
- \(H,W:\) 공간적 차원(이미지의 높이와 너비
- 축 설명
배치 단위에 의존적인 배치 노말의 단점으로 인해 시퀀스 단위의 데이터를 학습하기 위해 나온 방법인 레이어 노말에 대해서도 정리해볼까 한다.
Layer Normalization
배치에 대한 의존도를 제거하고, 배치가 아닌 샘플을 기반으로 정규화를 수행하여 분포를 안정화 시킴
그림으로 이해하는 배치와 레이어 노말의 차이점

보면 알겠지만 배치에 들어가면서 정규화를 만드느냐, 정규화를 만들고 나서 배치단위로 움직이느냐의 차이가 굉장히 크다는 걸 알 수 있다.

- 각 샘플 \(N\) 내에서 정규화
- 축 설명
- \(N:\) 미니 배치의 크기
- \(C:\) 채널 수 (특정 맵의 개수)
- \(H,W:\) 공간적 차원(이미지 높이와 너비)
- 축 설명
- 레이어 정규화에서는 각 샘플별로 채널 \(C\)에 걸쳐 평균과 분산을 계산하여 정규화 함
🔑 레이어 정규화의 과정
- 평균 계산
- \(\mu_L = \frac{1}{C} \sum_{j=1}^{C} x_j\)
- 수식 설명
- \(x_j :\) 각 샘플에서 j -번째 채널 값 (특징)
- \(C: \) 샘플의 총 채널 수
- 수식 설명
- 분산 계산
- \(\sigma_L^2 = \frac{1}{C} \sum_{j=1}^{C} (x_j - \mu_L)^2\)
- 한 샘플의 모든 특징 값이 평균에서 얼마나 퍼져 있는지를 계산
- \(\sigma_L^2 = \frac{1}{C} \sum_{j=1}^{C} (x_j - \mu_L)^2\)
- 정규화
- \(\hat{x}_j = \frac{x_j - \mu_L}{\sqrt{\sigma_L^2 + \epsilon}}\)
- 위 과정은 배치 정규화와 동일함
- \(\hat{x}_j = \frac{x_j - \mu_L}{\sqrt{\sigma_L^2 + \epsilon}}\)
- 선형 변환
- \(y_j = \gamma \hat{x}_j + \beta\)
- 수식 설명
- \(\gamma:\) 학습 가능한 스케일 파라미터 (정규화 된 크기를 조정)
- \(\beta:\) 학습 가능한 이동 파라미터 (정규화 된 값의 중심을 이동)
- 수식 설명
- \(y_j = \gamma \hat{x}_j + \beta\)
- \(\mu_L = \frac{1}{C} \sum_{j=1}^{C} x_j\)
레이어 정규화의 특징
- 각 샘플의 특징 충을 따라 정규화 함
- 미니배치 크기와는 독립적을 동작하기에 배치크기가 작아도 영향을 받지 않음
레이어 정규화의 단점
- CNN에서는 배치 정규화와는 다르게 효과적이지 않음
Conclusion
1. 문제 제기
딥러닝 모델의 학습에서 발생하는 주요 문제로, **내부 공변량 이동이 제시되었습니다.
- 내부 공변량 이동: 각 층의 입력 분포가 학습 중 계속 변하면서 학습이 불안정해지고, 느려지는 현상.
이로 인해 낮은 학습률을 사용해야 하며, 초기화, 최적화, 정규화와 같은 하이퍼파라미터 조정이 더 까다로워짐.
➡ 따라서, 이 문제를 해결하는 방법이 필요함.
2. 해결책: 배치 정규화(Batch Normalization)
논문에서는 내부 공변량 이동 문제를 해결하기 위해 배치 정규화라는 기법을 제안
배치 정규화의 핵심 아이디어
- 각 층의 입력 데이터를 정규화하여 평균을 0, 분산을 1로 맞춤.
- 정규화 과정에서 학습 가능한 매개변수\(\gamma\) (스케일 조정)와 \(\beta\) (이동 조정)를 추가하여 모델의 표현력을 유지.
- 이 과정은 미니배치 단위로 이루어짐.
➡ 배치 정규화는 내부 공변량 이동을 줄여 학습을 더 안정적이고 빠르게 진행할 수 있도록 만듬
3. 배치 정규화의 성과
배치 정규화의 효과는 실험을 통해 다음과 같은 성과로 입증되었습니다:
(1) 학습 속도의 향상
- 기존의 최첨단 이미지 분류 모델에 비해 학습 속도가 최대 14배 더 빨라짐.
- 높은 학습률을 사용할 수 있어 학습 과정이 더 효율적이었음.
(2) 성능의 향상
- ImageNet 데이터셋에서 배치 정규화를 적용한 모델은 인간 평가자를 능가하는 정확도를 기록함.
- 기존 모델에 비해 더 높은 정확도를 달성.
(3) 학습 안정성 증가
- 낮은 학습률이나 신중한 초기화가 없어도 학습이 안정적으로 진행됨.
- Sigmoid와 같은 활성화 함수가 사용하는 경우에도 기울기 소실(vanishing gradient) 문제가 완화됨.
최종 결론
논문은 배치 정규화가 딥러닝 학습에서 다음과 같은 기여를 했음을 강조하며 마무리합니다:
1. 내부 공변량 이동을 줄여 딥러닝 학습을 더 빠르고 안정적으로 만듦.
2. 학습률을 더 높게 설정할 수 있어, 모델이 더 빠르게 수렴하도록 도움.
3. 다양한 모델 구조에서 학습 성능과 정확도를 향상시킴.
💡 한 줄 요약:
“배치 정규화는 신경망 학습의 속도와 안정성을 획기적으로 향상시키는 기법으로, 딥러닝 모델 성능 향상에 기여한다.”