Yolo 비전 선전
선전
지금 참여하기
용어집

정규화(Normalization)

정규화가 모델 훈련과 정확도를 어떻게 향상시키는지 살펴보세요. Min-Max 스케일링, Z-점수 표준화 및 Ultralytics 프로젝트에서의 역할을 알아보세요.

정규화는 데이터 전처리에서 수치형 속성을 표준 범위로 재조정하는 기본 기법입니다. 머신러닝(ML) 환경에서 데이터셋은 종종 연령대(0–100)와 소득 수준(0–100,000)처럼 서로 다른 척도를 가진 특징을 포함합니다. 이러한 불균형을 방치할 경우 최적화 알고리즘이 큰 값에 편향되어 수렴 속도가 느려지고 성능이 저하될 수 있습니다. 데이터 정규화를 통해 엔지니어는 모든 특징이 최종 결과에 비례적으로 기여하도록 하여 신경망이 더 효율적으로 학습할 수 있게 합니다.

일반적인 정규화 기법

데이터 변환을 위한 여러 표준 방법이 존재하며, 각각은 서로 다른 분포와 알고리즘 요구 사항에 적합합니다.

  • 최소-최대 스케일링: 이는 가장 직관적인 정규화 방식입니다. 데이터를 고정된 범위(보통 [0, 1])로 재조정합니다. 이 변환은 최소값을 빼고 범위(최대값에서 최소값을 뺀 값)로 나누어 수행됩니다. 이미지 처리 분야에서널리 사용되며, 픽셀 강도가 0과 255 사이로 제한된다는 것이 알려져 있습니다.
  • Z-점수 표준화: 종종 정규화와 혼용되지만, 표준화는 데이터를 평균 0, 표준편차 1로 변환하는 특정 과정이다. 이는 데이터가 가우시안 분포를 따를 때 특히 유용하며, 정규 분포된 데이터를 가정하는 서포트 벡터 머신(SVM) 과 같은 알고리즘에 필수적이다.
  • 로그 스케일링: 극단적인 이상값을 포함하거나 지수 법칙을 따르는 데이터의 경우, 로그 변환을 적용하면 값의 범위를 압축할 수 있습니다. 이는 대규모 값 급증에 의해 왜곡되지 않고 추론 엔진이 효과적으로 해석할 수 있도록 분포를 보다 관리하기 쉽게 만듭니다.

실제 애플리케이션

정규화는 다양한 산업 분야의 고성능 AI 시스템 파이프라인에서 표준적인 단계입니다.

  1. 컴퓨터 비전(CV): 객체 탐지 이미지 분류와 같은 작업에서 디지털 이미지는 0부터 255까지의 픽셀 값으로 구성됩니다. 이러한 큰 정수 값을 네트워크에 직접 입력하면 경사 하강 속도가 느려질 수 있습니다. 표준 전처리 단계는 픽셀 값을 255.0으로 나누어 [0, 1] 범위로 정규화하는 것입니다. 이 방법은 YOLO26과 같은 고급 모델에 일관된 입력을 보장하여 Ultralytics 플랫폼에서의 훈련 안정성을 향상시킵니다.
  2. 의료 영상 분석: 의료용 스캔(예: 의료 AI에 사용되는 스캔)은 종종 서로 다른 기기에서 생성되며, 각 기기마다 강도 척도가 다릅니다. 정규화는 MRI 또는 CT 스캔의 픽셀 강도가 서로 다른 환자와 장비 간에 비교 가능하도록 보장합니다. 이러한 일관성은 정확한 종양 탐지에 매우 중요하며, 모델이 밝기 변화보다는 구조적 이상에 집중할 수 있게 합니다.

관련 개념 구분하기

딥 러닝에서 발견되는 유사한 전처리 및 아키텍처 용어와 정규화를 구분하는 것이 중요하다.

  • vs. 배치 정규화: 데이터 정규화는 네트워크에 입력되기 전 원시 데이터셋에 적용되는 전처리 단계입니다. 반면 배치 정규화는 모델 훈련 중 네트워크 전체에 걸쳐 레이어 간 내부적으로 작동합니다. 이는 학습 과정을 안정화하기 위해 이전 활성화 레이어의 출력을 정규화합니다.
  • vs. 이미지 증강: 정규화는 픽셀 값의 스케일을 변경하는 반면, 증강은 데이터셋 다양성을 높이기 위해 이미지의 내용이나 기하학적 구조 (예: 뒤집기, 회전, 색상 변경) 변경합니다. Albumentations 같은 도구는 증강에 사용되며, 정규화는 수학적 스케일링 연산입니다.

구현 예시

컴퓨터 비전 분야에서 정규화는 종종 파이프라인의 첫 번째 단계입니다. 다음 Python 예제는 NumPy 사용하여 이미지 데이터를 수동으로 정규화하는 방법을 보여줍니다. 이 과정은 Ultralytics 데이터 로더 내에서 훈련 중에 자동으로 수행됩니다.

import numpy as np

# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)

# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0

print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기