배치 정규화가 딥러닝 모델을 안정화하는 방식을 살펴보세요. Ultralytics BatchNorm을 활용해 훈련 속도를 높이고 AI 정확도를 향상시키는 방법을 알아보세요.
배치 정규화(Batch Normalization, 흔히 BatchNorm이라 함)는 딥 러닝(DL) 에서 인공 신경망의 훈련을 안정화하고 가속화하기 위해 사용되는 기법이다. 이전 계층의 매개변수 업데이트에 따라 계층 입력의 분포가 지속적으로 변화하는 내부 공변량 이동(internal covariate shift) 문제를 해결하기 위해 도입된 BatchNorm은 각 미니배치에 대해 계층 입력값을 표준화한다. 레이어 입력값을 평균 0, 표준편차 1로 정규화한 후 학습 가능한 매개변수로 스케일링 및 시프트함으로써, 이 방법은 네트워크가 더 높은 학습률을 사용할 수 있게 하고 초기화에 대한 민감도를 감소시킵니다.
표준 컨볼루션 신경망(CNN)에서는 데이터가 각 층에서 변환을 수행하는 층들을 통과합니다. 정규화 없이 출력 값의 규모는 크게 달라질 수 있어 최적화 알고리즘이 최적의 가중치를 찾기 어렵게 만듭니다. 배치 정규화는 일반적으로 활성화 함수 (ReLU나 SiLU 등) 바로 직전에 적용됩니다.
훈련 과정에는 두 가지 주요 단계가 포함됩니다:
이 메커니즘은 정규화 기법의 일종으로 작용하여, 훈련 중 활성화 값에 소량의 노이즈를 추가함으로써 드롭아웃 레이어와 같은 다른 기법의 필요성을 약간 줄여줍니다.
배치 정규화를 ResNet이나 현대적 객체 탐지기와 같은 아키텍처에 통합하면 여러 가지 뚜렷한 장점을 제공합니다:
배치 정규화는 거의 모든 현대적인 컴퓨터 비전(CV) 시스템의 핵심 요소입니다.
배치 정규화를 표준 데이터 정규화와 구분하는 것이 유용합니다.
딥 러닝 프레임워크들처럼 PyTorch 에는 배치 정규화(Batch Normalization)의 최적화된 구현체가 포함됩니다.YOLO 이러한 레이어가 자동으로 컨볼루션 블록에 통합됩니다.
다음 사항 Python 코드 스니펫은 모델을 검사하여
어디에서 BatchNorm2d 계층은 아키텍처 내에 위치한다.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)
이러한 계층 간의 상호작용 방식을 이해하면 개발자가 Ultralytics 활용해 사용자 지정 데이터셋에서 모델을 미세 조정할 때 도움이 되며, 제한된 데이터로도 훈련 과정이 안정적으로 유지되도록 보장합니다.