배치 정규화 (Batch Normalization)
배치 정규화로 딥러닝 성능을 향상시키세요! 이 기술이 AI 모델의 학습 속도, 안정성 및 정확성을 어떻게 향상시키는지 알아보세요.
배치 정규화는 흔히 배치노멀라이제이션으로 약칭되며, 딥러닝의
딥러닝(DL)의 기본 기술로
훈련의 안정성과 속도
안정성과 속도를 높이기 위해 고안된 기본 기술입니다. 중요한 연구 논문에서 소개된
2015년 세르게이 이오프와 크리스티안 세게디의 연구 논문에서 소개된 이 방법은
은 "내부 공변량 이동"이라는 문제를 해결합니다.
네트워크 계층의 입력 분포가 이전 계층의 매개변수가 업데이트됨에 따라 지속적으로 변화하는 현상을 해결합니다. 각 레이어의 입력을 정규화함으로써
각 레이어에 대한 입력을 정규화함으로써, BatchNorm을 사용하면 모델이 더 높은
학습 속도를 높이고
초기 파라미터 가중치에 대한 민감도를 크게 낮춥니다.
배치 정규화의 작동 방식
일반적인
컨볼루션 신경망(CNN)에서 일괄 정규화 레이어는 컨볼루션 또는 완전히 연결된 레이어 바로 뒤에 그리고
비선형 활성화 함수 (예: ReLU 또는
SiLU). 이 프로세스에는 다음 두 가지 주요 단계가 포함됩니다.
모델 훈련 단계:
-
정규화: 레이어는 현재 배치 크기 내에서 활성화의 평균과 분산을 계산합니다.
배치 크기 내에서 활성화의 평균과 분산을 계산합니다. 그런 다음 배치 평균을 빼고 배치 표준 편차로
를 배치 표준 편차로 나누어 평균과 단위 분산이 0이 되도록 입력을 효과적으로 표준화합니다.
-
스케일링 및 시프팅: 정규화로 인해 네트워크의 표현력이 제한되는 것을 방지하기 위해,
레이어에는 학습 가능한 두 가지 파라미터, 즉 스케일 계수(감마)와 시프트 계수(베타)가 도입되었습니다. 이를 통해
네트워크가 최적의 경우 신원 변환을 복원하여
모델 가중치가 여전히 복잡한 특징을 나타낼 수 있도록 합니다.
추론 중에 배치 통계를 활용하는 것은 비실용적입니다.
단일 항목에 대한 예측이 이루어지는 경우가 많기 때문입니다. 대신, 모델은 훈련 중에 축적된 평균과 분산의 이동 평균을 사용하여
의 이동 평균을 사용하여 입력을 결정론적으로 정규화합니다.
딥러닝의 주요 이점
배치 정규화를 아키텍처 설계에 통합하면 다음과 같은 몇 가지 뚜렷한 이점을 얻을 수 있습니다.
몇 가지 뚜렷한 이점을 제공합니다:
-
가속화된 컨버전스: 레이어 입력의 분포를 안정화함으로써 BatchNorm은
최적화 환경을 원활하게 합니다. 이를 통해
경사 하강 알고리즘이 더 빠르게 수렴하여
더 빠르게 수렴하여 총 학습 시간을 단축할 수 있습니다.
-
사라지는 그라데이션 완화: 매우 깊은 네트워크에서는 그라디언트가 미미하게 작아져
작아져 학습이 중단될 수 있습니다. BatchNorm은 포화되지 않은 영역에서 활성화를 유지하도록 도와주며, 시그모이드에서 흔히 발생하는
시그모이드 또는 탄 기반 아키텍처에서 흔히 발생하는 소실 그라데이션 문제
또는 탄 기반 아키텍처에서 흔히 발생하는 소실 그라데이션 문제를 효과적으로 해결합니다.
-
정규화 효과: 미니 배치에 대한 통계 추정으로 인해 발생하는 노이즈는 가벼운 형태의
형태의 정규화 역할을 합니다. 이렇게 하면
과적합을 줄이고, 경우에 따라서는 드롭아웃 레이어와 같은 다른 기법에 대한
드롭아웃 레이어와 같은 다른 기법에 대한 의존도를 줄일 수 있습니다.
실제 애플리케이션
배치 정규화는 컴퓨터 비전(CV)을 넘어
컴퓨터 비전(CV) 및 그 이상에서 보편적으로 사용되며, 최첨단 모델의
최첨단 모델의 성능을 향상시킵니다.
-
고급 객체 감지: 다음과 같은 최신 아키텍처
Ultralytics YOLO11 와 같은 최신 아키텍처는 BatchNorm 레이어에 크게 의존합니다. 이러한 모델에서
이러한 모델에서는 정규화를 통해 다양한 스케일(예: 가장자리 또는 텍스처)에서 감지된 특징이 이미지 대비와 조명의 변화에도 불구하고
이미지 대비나 조명의 변화에도 불구하고 일관성을 유지하여 다양한 환경에서 높은
높은 정확도를 제공합니다.
-
의료 이미지 분석: 다음과 같은 분야에서
의료 분야의 AI, CT 또는 MRI를 분석하는 모델
스캔을 분석하는 모델은 다양한 강도 범위를 가진 여러 기계의 데이터를 처리해야 합니다. BatchNorm은 신경망이 이러한 영역에서
을 일반화하여 다음과 같은 중요한 작업을 지원합니다.
종양 탐지
절대적인 픽셀 강도가 아닌 구조적 특징에 집중함으로써 종양 탐지와 같은 중요한 작업을 지원합니다.
관련 개념과의 차별성
배치 정규화를 유사한 전처리 및 아키텍처 기법과 구별하는 것이 중요합니다:
-
데이터 정규화 비교:
데이터 정규화는
원시 데이터 세트에 적용되는 데이터 전처리 단계입니다.
입력 데이터 세트에 적용되는 데이터 전처리 단계(예: 픽셀 값을 [0, 1]로 스케일링)로, 네트워크에 들어가기 전에 수행됩니다. 반대로 BatchNorm은 네트워크 전체의 레이어 사이에서
네트워크의 레이어 사이에서 내부적으로 작동합니다.
-
대 레이어 정규화: BatchNorm은 배치 차원 전체에 걸쳐 정규화합니다,
레이어 정규화는 단일 샘플에 대해 특징 차원 전체에 걸쳐 통계를 계산합니다. 레이어
노멀라이제이션은 종종 다음에서 선호됩니다.
순환 신경망(RNN) 및
에서 사용되는 트랜스포머
자연어 처리(NLP)
배치 종속성이 문제가 될 수 있는 경우 선호됩니다.
구현 예시
다음과 같은 인기 있는 프레임워크 PyTorch 및
TensorFlow 기본 제공 구현을 제공합니다(예,
torch.nn.BatchNorm2d 또는 tf.keras.layers.BatchNormalization). 다음 예제
는 YOLO11 모델을 검사하여 아키텍처 내에서 통합된 BatchNorm 계층을 관찰하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Display the model summary
# Look for 'BatchNorm2d' in the output to see where normalization is applied
model.info()
# Example output line from info():
# 0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2]
# The Conv module in Ultralytics typically includes Conv2d + BatchNorm2d + SiLU