배치 정규화(배치 노름이라고도 함)는 인공 신경망에서 각 층의 입력을 조정하여 훈련을 더 빠르고 안정적으로 만드는 정규화 기법으로, 입력을 0을 중심으로 다시 맞추고 표준 크기로 다시 조정한다. 2015년 세르게이 이오페(Sergey Ioffe)와 크리스티안 세게디(Christian Szegedy)가 도입했다. 이 방법은 많은 Deep learning 아키텍처, 특히 합성곱 신경망과 완전 연결 신경망에서 표준 구성 요소가 되었으며, Large language model 및 기타 Generative AI 애플리케이션을 구동하는 시스템을 포함한 현대 Machine learning 시스템에서 널리 사용된다.
핵심 아이디어는 훈련 데이터의 미니 배치에 대해 각 층의 활성화를 정규화하여 각 차원의 평균과 분산을 계산한 다음 값을 이동하고 조정하는 것이다. 이 절차는 네트워크의 초기화 및 하이퍼파라미터 선택에 대한 민감도를 줄여, 실무자가 더 높은 학습률을 사용할 수 있게 하고 드롭아웃과 같은 다른 정규화 기법의 필요성을 종종 줄인다. 널리 채택되었음에도 불구하고, 그 효과의 정확한 이유는 여전히 활발한 연구와 논쟁의 주제이다.
역사적 배경
배치 정규화는 매우 깊은 신경망 훈련의 어려움을 해결하려는 노력에서 등장했다. 2010년대 초, Google DeepMind, OpenAI 및 기타 연구소의 연구자들은 수렴 속도와 안정성을 개선하는 방법을 탐구하고 있었다. 당시 구글에 있던 이오페와 세게디의 2015년 논문은 기존 훈련 파이프라인에 최소한의 오버헤드로 통합할 수 있는 실용적인 솔루션을 제안했다. 이 기법은 빠르게 주목을 받았고 TensorFlow 및 PyTorch를 포함한 많은 프레임워크에서 기본 선택이 되었다.
배치 정규화 이전에는 깊은 네트워크를 훈련하려면 기울기 소실 또는 기울기 폭발과 같은 문제를 피하기 위해 학습률, 가중치 초기화 방식 및 활성화 함수를 신중하게 조정해야 했다. 배치 정규화는 더 체계적인 접근 방식을 제공했으며, 그 성공은 다른 맥락에서 사용되는 층 정규화 및 인스턴스 정규화와 같은 관련 정규화 기법 계열에 영감을 주었다.
내부 공변량 이동
신경망의 각 층은 특정 분포를 따르는 입력을 가지며, 이 분포는 두 가지 주요 요인, 즉 네트워크 매개변수의 무작위 시작 값(매개변수 초기화)과 입력 데이터의 자연스러운 변동으로 인해 훈련 중에 이동한다. 네트워크 내부 층의 입력에 영향을 미치는 이러한 이동 패턴을 내부 공변량 이동이라고 한다. 엄격한 정의가 완전히 합의되지는 않았지만, 실험에 따르면 훈련 중 이러한 입력의 평균과 분산 변화가 포함된다.
배치 정규화는 처음에 내부 공변량 이동을 해결하기 위해 개발되었다. 훈련 중 이전 층의 매개변수가 조정됨에 따라 현재 층의 입력 분포가 그에 따라 변경되어, 현재 층은 새로운 분포에 지속적으로 재조정해야 한다. 이 문제는 깊은 네트워크에서 특히 심각한데, 얕은 은닉 층의 작은 변화가 네트워크 내에서 전파되면서 증폭되어 더 깊은 은닉 층에서 상당한 이동을 초래할 수 있기 때문이다. 배치 정규화는 이러한 원치 않는 이동을 줄여 훈련을 가속화하고 더 신뢰할 수 있는 모델을 생성하기 위해 제안되었다.
내부 공변량 이동을 해결할 가능성 외에도, 배치 정규화는 몇 가지 추가적인 이점을 제공한다. 네트워크가 기울기 소실 또는 기울기 폭발과 같은 문제를 일으키지 않으면서 더 높은 학습률(네트워크가 학습하는 속도를 제어하는 설정)을 사용할 수 있게 한다. 또한 정규화 효과가 있어 네트워크가 새 데이터에 일반화하는 능력을 개선하고, 과적합(모델이 훈련 데이터를 너무 잘 학습하여 새 데이터에서 실패하는 경우)을 방지하는 데 사용되는 드롭아웃의 필요성을 줄인다. 또한 배치 정규화를 사용하는 네트워크는 시작 설정 또는 학습률 선택에 덜 민감하여 더 견고하고 적응력이 있다.
절차
변환
신경망에서 배치 정규화는 각 층 입력의 평균과 분산을 고정하는 정규화 단계를 통해 달성된다. 이상적으로는 전체 훈련 세트에 대해 정규화를 수행해야 하지만, 이 단계를 확률적 최적화 방법과 함께 사용하려면 전역 정보를 사용하는 것은 비실용적이다. 따라서 정규화는 훈련 과정의 각 미니 배치로 제한된다.
전체 훈련 세트에서 크기 \(m\)의 미니 배치 \(B\)를 나타내자. \(B\)의 경험적 평균과 분산은 다음과 같이 계산된다:
\[
\mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i
\]
그리고
\[
\sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_B)^2
\]
\(d\)차원 입력 \(x = (x^{(1)}, \ldots, x^{(d)})\)를 가진 층의 경우, 각 차원은 별도로 정규화된다. 미니 배치의 각 차원 \(k\) 및 각 샘플 \(i\)에 대해 정규화된 값은:
\[
\hat{x}_i^{(k)} = \frac{x_i^{(k)} - \mu_B^{(k)}}{\sqrt{(\sigma_B^{(k)})^2 + \epsilon}}
\]
여기서 \(\epsilon\)은 수치 안정성을 위해 추가된 작은 상수로, 일반적으로 \(10^{-5}\) 정도이다. 이는 정규화된 활성화가 평균 0과 단위 분산을 갖도록 보장한다.
스케일링 및 이동
입력을 단순히 정규화하면 층의 표현 용량이 제한될 수 있으므로, 배치 정규화는 각 차원에 대해 두 개의 학습 가능한 매개변수, 즉 스케일 인자 \(\gamma^{(k)}\)와 이동 \(\beta^{(k)}\)를 도입한다. 배치 정규화 층의 최종 출력은:
\[
y_i^{(k)} = \gamma^{(k)} \hat{x}_i^{(k)} + \beta^{(k)}
\]
이 매개변수는 역전파를 통해 훈련 중에 학습되며, 작업에 최적일 경우 네트워크가 정규화를 되돌릴 수 있게 한다. 실제로 \(\gamma\)는 종종 1로, \(\beta\)는 0으로 초기화되어 층이 처음에는 표준 정규화를 수행한 다음 적응한다.
추론
훈련 중 평균과 분산은 현재 미니 배치에서 계산된다. 그러나 추론 시(새 데이터에 대한 예측을 할 때) 미니 배치의 크기가 1일 수 있거나 사용할 수 없을 수 있다. 이를 처리하기 위해 네트워크는 훈련 중 계산된 평균과 분산의 이동 평균을 사용한다. 이러한 이동 통계는 각 미니 배치로 업데이트되며, 일반적으로 모멘텀 계수(종종 0.99)를 사용한 이동 평균을 통해 이루어진다. 추론 시 정규화는 이러한 고정 통계를 사용하여 연산을 결정론적으로 만들고 배치 크기와 무관하게 만든다.
이론적 설명
전문가들은 배치 정규화가 왜 그렇게 잘 작동하는지에 대해 여전히 논쟁한다. 처음에는 네트워크의 학습률에 영향을 미치는 매개변수 초기화 및 각 층 입력 분포의 변화 문제인 내부 공변량 이동을 해결하는 것으로 생각되었다. 그러나 최신 연구에 따르면 이 이동을 고치지 않고 대신 목적 함수(네트워크가 개선을 위해 따르는 수학적 지침)를 매끄럽게 만들어 성능을 향상시킨다. 매우 깊은 네트워크에서 배치 정규화는 처음에 심각한 기울기 폭발(네트워크 업데이트가 통제할 수 없을 정도로 커지는 현상)을 유발할 수 있지만, 잔차 네트워크의 스킵 연결이라는 지름길로 관리된다. 또 다른 이론은 배치 정규화가 데이터의 크기와 경로를 별도로 처리하여 훈련을 가속화한다는 것이다.
Aleksander Madry 등의 연구에 따르면 배치 정규화는 최적화 지형을 상당히 매끄럽게 만들어 손실 함수의 립시츠 상수를 줄인다. 이 매끄러움 효과는 경사 하강법이 발산하지 않고 더 큰 단계를 밟을 수 있게 하여, 더 높은 학습률이 가능해지는 이유를 설명한다. 다른 연구는 배치 정규화가 미니 배치 통계가 배치마다 변함에 따라 훈련 과정에 노이즈를 추가하여 암시적 정규화 형태를 도입한다고 지적한다.
변형 및 확장
배치 정규화는 다양한 아키텍처와 설정에 맞게 조정된 여러 변형에 영감을 주었다. 2016년 jimmy-lei-ba와 jamie-kiros가 도입한 층 정규화는 배치가 아닌 각 개별 샘플의 특징에 대해 정규화하여 순환 네트워크와 트랜스포머에 적합하다. 스타일 전송에 사용되는 인스턴스 정규화는 각 샘플의 각 채널을 정규화한다. 2018년 yuxin-wu와 Kaiming He가 제안한 그룹 정규화는 채널을 그룹으로 나누고 각 그룹 내에서 정규화하여 작은 배치 크기에서도 잘 작동한다.
많은 Large language model의 기반이 되는 Transformer (architecture) 모델의 맥락에서는 배치 정규화보다 층 정규화가 더 일반적이지만, 배치 정규화는 이미지 분류 및 객체 감지와 같은 작업의 합성곱 네트워크에서 여전히 사용된다. 스위처블 정규화와 같은 일부 하이브리드 접근 방식은 다양한 정규화 방법을 동적으로 결합하는 방법을 학습한다.
실용적 고려 사항
배치 정규화를 구현하려면 훈련 및 추론 단계에 세심한 주의가 필요하다. 훈련 중 배치 크기는 평균과 분산의 신뢰할 수 있는 추정치를 제공할 만큼 충분히 커야 하며, 작은 배치는 노이즈가 많은 통계와 불안정한 훈련을 초래할 수 있다. 전역 배치 크기가 여러 장치에 분할되는 분산 훈련에서는 평균과 분산이 일반적으로 장치별로 계산되어 불일치가 발생할 수 있다. 장치 간 통계를 집계하는 동기화된 배치 정규화와 같은 기술이 이를 해결하기 위해 개발되었다.
배치 정규화는 네트워크의 다른 구성 요소와도 상호 작용한다. 예를 들어, 일반적으로 선형 변환 후 활성화 함수 전에 배치되지만 정확한 위치는 다양할 수 있다. 잔차 네트워크에서는 스킵 연결이 추가되기 전에 배치 정규화가 적용되어 앞서 언급한 기울기 폭발을 완화하는 데 도움이 된다.
영향 및 유산
배치 정규화의 도입은 Artificial intelligence 분야에 깊은 영향을 미쳤다. 이는 2015년 ImageNet 대회에서 우승한 152층 ResNet과 같은 훨씬 더 깊은 네트워크의 훈련을 가능하게 했다. 또한 하이퍼파라미터 튜닝의 부담을 줄여 학계와 산업계 모두에서 실험을 가속화했다. 오늘날 배치 정규화는 딥러닝 도구 상자에서 여전히 기본 도구로 남아 있으며, 그 원리는 이후 많은 정규화 기법의 설계에 영향을 주었다. 이론적 기반에 대한 논쟁이 계속되고 있지만, 실용적 이점은 의심의 여지가 없으며 많은 최첨단 모델에서 핵심 구성 요소로 계속 사용되고 있다.