배치 정규화는 딥 러닝에서 학습 과정을 안정화하고 심층 신경망의 학습 속도를 크게 높이기 위해 널리 사용되는 기술입니다. 세르게이 이오프와 크리스티안 세게디가 2015년 논문'일괄 정규화'에서 소개한 기술입니다: 내부 공변량 이동을줄임으로써 심층 네트워크 훈련 가속화"라는 논문에서 소개된 이 기술은 네트워크의 깊은 층에 대한 입력 분포가 훈련 중에 변경되는 문제, 즉 내부 공변량 이동을 해결합니다. 배치 정규화는 각 미니 배치에 대해 각 레이어의 입력을 정규화함으로써 활성화 값의 보다 안정적인 분포를 유지하여 더 부드럽고 빠른 수렴을 유도합니다.
배치 정규화 작동 방식
훈련 중에 배치 정규화는 각 미니 배치에 대한 레이어 입력을 표준화합니다. 여기에는 미니 배치 전체에서 활성화의 평균과 분산을 계산한 다음 이러한 활성화를 정규화하는 작업이 포함됩니다. 결정적으로, 이 기술은 활성화 채널당 두 개의 학습 가능한 매개변수, 즉 스케일(감마)과 시프트(베타) 매개변수를 도입합니다. 이러한 매개변수를 통해 네트워크는 정규화된 입력의 최적 규모와 평균을 학습할 수 있으며, 학습에 도움이 된다고 판단되면 정규화를 취소할 수 있는 유연성을 제공합니다. 이 프로세스는 활성화를 합리적인 범위 내에서 유지함으로써 사라지는 그라데이션과 폭발하는 그라데이션과 같은 문제를 해결하는 데 도움이 됩니다. 추론하는 동안 평균과 분산은 일반적으로 훈련 중에 추정된 모집단 통계를 사용하여 고정됩니다.
일괄 정규화 사용의 이점
신경망에 일괄 정규화를 적용하면 몇 가지 주요 이점이 있습니다:
- 더 빠른 교육: 학습 속도가 훨씬 빨라져 훈련 과정의 융합이 가속화되는 경우가 많습니다. 더 많은 최적화 전략은 모델 트레이닝을 위한 팁을 참조하세요.
- 향상된 그라데이션 흐름: 활성화 분포를 안정화하여 그라데이션이 사라지거나 폭발하는 문제를 완화하여 특히 매우 깊은 네트워크에서 더욱 안정적인 훈련으로 이어집니다.
- 정규화 효과: 배치 정규화는 미니 배치 통계로 인해 레이어 입력에 약간의 노이즈 성분을 추가합니다. 이는 정규화의 한 형태로 작용하여 잠재적으로 드롭아웃과 같은 다른 기술의 필요성을 줄여줍니다.
- 초기화에 대한 민감도 감소: 배치 정규화를 사용하는 네트워크는 훈련을 시작하기 전에 선택한 초기 가중치에 덜 민감하게 반응하는 경우가 많습니다.
- 더 심층적인 네트워크를 지원합니다: 심층 아키텍처 훈련과 관련된 문제를 해결함으로써 훨씬 더 심층적인 모델을 성공적으로 훈련할 수 있습니다.
애플리케이션 및 예시
배치 정규화는 많은 최신 딥러닝 모델, 특히 컴퓨터 비전에서 필수적인 구성 요소입니다.
- 이미지 인식 및 객체 감지: 컨볼루션 신경망(CNN)에서 일괄 정규화는 일반적으로 컨볼루션 레이어 후 활성화 함수 (예: ReLU) 전에 적용됩니다. ResNet과 같은 모델은 이 기능에 크게 의존합니다. 다음과 같은 객체 감지 모델에서는 Ultralytics YOLO와 같은 객체 탐지 모델에서 배치 정규화는 학습을 안정화하고 정확도를 높이며 수렴 속도를 높여 COCO와 같은 복잡한 데이터 세트에서 효과적으로 탐지할 수 있도록 도와줍니다. 크로스 미니 배치 정규화(CmBN)와 같은 변형은 성능을 더욱 향상시키기 위해 YOLOv4와 같은 모델에 사용되었습니다.
- 생성적 적대 신경망(GAN): 인공물을 피하기 위해 신중한 구현이 필요하지만, 배치 정규화는 적대적 훈련 프로세스를 안정화하기 위해 GAN의 생성기 및 판별자 네트워크에서 자주 사용됩니다. 모드 붕괴를 방지하고 더 부드러운 훈련 역학을 보장하는 데 도움이 됩니다.
관련 개념 및 변형
일괄 정규화가 널리 사용되지만, 각기 다른 시나리오에 적합한 몇 가지 관련 정규화 기술이 존재합니다:
- 레이어 정규화: 배치에 관계없이 단일 데이터 샘플에 대해 기능 전반의 입력을 정규화합니다. 시퀀스 길이가 다양할 수 있는 순환 신경망(RNN) 과 트랜스포머에서 자주 선호됩니다."레이어 정규화" 백서 원본을 참조하세요.
- 인스턴스 정규화: 각 데이터 샘플의 공간 차원에 걸쳐 각 채널을 독립적으로 정규화합니다. 일반적으로 스타일 전송 작업(신경망 스타일 전송)에서 인스턴스별 대비 정보를 제거하는 데 사용됩니다.'인스턴스 정규화' 문서를 참조하세요:빠른 스타일화를 위한 필수 요소" 문서를 참조하세요.
- 그룹 정규화: 채널을 그룹으로 나누고 단일 데이터 샘플에 대해 각 그룹 내에서 정규화합니다. 레이어 정규화와 인스턴스 정규화의 절충안으로 작동하며 배치 크기가 작아도 성능이 우수합니다."그룹 정규화" 문서를 참조하세요.
고려 사항 및 구현
배치 정규화의 주요 고려 사항은 훈련 중 미니 배치 크기에 대한 의존성입니다. 배치 크기가 너무 작으면(예: 1 또는 2) 배치 통계가 모집단 통계의 노이즈 추정치가 되기 때문에 성능이 저하될 수 있습니다. 또한 학습(배치 통계 사용)과 추론(추정 모집단 통계 사용) 간에 동작이 달라집니다. 다음과 같은 표준 딥 러닝 프레임워크는 PyTorch (torch.nn.BatchNorm2d
) 및 TensorFlow (tf.keras.layers.BatchNormalization
)는 강력한 구현을 제공합니다. 이러한 대안에도 불구하고 배치 정규화는 여전히 많은 최신 딥러닝 모델을 효과적으로 훈련하기 위한 기본 기술로 남아 있습니다.