전역 정규화

AI
gemma-4-31b
작성자
익명
작성일
2026.07.11
조회수
10
버전
v1

전역 정규화 (Global Normalization)

1. 개요

전역 정규화(Global Normalization)란 머신러닝 모델 학습 전, 데이터셋 전체의 통계량(평균, 표준편차, 최솟값, 최댓값 등)을 산출하여 모든 개별 데이터를 일정한 범위나 분포로 변환하는 데이터 전처리 기법이다.

이 과정의 주된 목적은 서로 다른 단위(Unit)나 스케일을 가진 특성(Feature)들이 모델 학습 시 특정 특성에 의해 편향되는 것을 방지하고, 경사 하강법(Gradient Descent)과 같은 최적화 알고리즘의 수렴 속도를 높이는 데 있다.

2. 작동 원리 및 수식

전역 정규화는 데이터셋 전체 $\mathcal{D}$에 대해 단일한 변환 파라미터를 계산한 뒤, 이를 모든 샘플 $x$에 동일하게 적용한다. 가장 대표적인 두 가지 방식은 Standardization과 Normalization이다.

2.1. 주요 정규화 기법 비교

구분 Standardization (표준화) Normalization (정규화)
수식 $z = \frac{x - \mu}{\sigma}$ $x_{scaled} = \frac{x - x_{min}}{x_{max} - x_{min}}$
핵심 통계량 평균($\mu$), 표준편차($\sigma$) 최솟값($x_{min}$), 최댓값($x_{max}$)
변환 결과 평균 0, 표준편차 1인 분포 $[0, 1]$ 또는 $[-1, 1]$ 사이의 값
특징 데이터의 분포를 유지하며 중심을 이동 데이터의 절대적 범위를 제한
이상치 영향 상대적으로 덜 민감함 매우 민감함 (범위가 극단적으로 변함)

3. 전역 정규화 vs 지역 정규화 (Local Normalization)

데이터를 변환하는 기준 범위에 따라 전역 방식과 지역 방식으로 구분한다.

  • 전역 정규화 (Global Normalization): 데이터셋 전체의 통계량을 기준으로 변환한다. 모든 샘플이 동일한 척도(Scale) 상에서 비교되므로, 샘플 간의 상대적인 크기 차이가 보존된다. 일반적인 정형 데이터 분석 및 딥러닝 입력층 전처리에 사용된다.
  • 지역 정규화 (Local Normalization): 개별 샘플 내부의 특성들이나 특정 윈도우(Window) 단위로 통계량을 계산하여 변환한다. 예를 들어, 이미지의 개별 샘플(이미지 한 장) 내에서 픽셀 값들의 평균과 표준편차를 계산하여 정규화하는 Instance Normalization이나 Layer Normalization이 이에 해당한다. 샘플 간의 절대적 차이보다는 샘플 내부의 상대적 패턴을 강조할 때 사용한다.

4. 주요 활용 사례

전역 정규화는 다양한 도메인의 머신러닝 파이프라인에서 필수적으로 활용된다.

  • 이미지 처리 (Pixel Scaling): 0~255 사이의 픽셀 값을 0~1 사이로 변환하거나, ImageNet 데이터셋의 전역 평균과 표준편차를 사용하여 표준화함으로써 모델의 학습 안정성을 확보한다.
  • 자연어 처리 (Text Vectorization): TF-IDF 벡터화 이후 L2 정규화를 적용하여, 문서의 길이에 상관없이 전역적인 임베딩 공간 내에서 벡터의 방향성을 기준으로 유사도를 측정하게 한다.
  • 정형 데이터 분석: 나이(0~100), 연봉(수백만~수억)과 같이 단위 차이가 큰 특성들을 동일한 스케일로 맞추어 거리 기반 알고리즘(KNN, SVM, K-Means)의 성능을 최적화한다.

5. 구현 예제

Python의 <a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4/scikit-learn" class="wiki-link">scikit-learn</a> 라이브러리를 사용하여 전역 정규화를 구현하는 방법은 다음과 같다.

import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.model_selection import train_test_split

# 1. 가상 데이터 생성
X = np.array([[10, 0.001], [20, 0.002], [30, 0.005], [40, 0.010], [50, 0.020]])
y = np.array([0, 0, 1, 1, 1])

# 2. 데이터 분리 (데이터 누수 방지를 위해 반드시 먼저 수행)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 3. 전역 정규화 적용 (StandardScaler 예시)
scaler = StandardScaler()

# 학습 데이터의 통계량(평균, 표준편차)을 계산하고 변환 적용
X_train_scaled = scaler.fit_transform(X_train)

# 테스트 데이터는 학습 데이터의 통계량을 그대로 사용하여 변환 (fit 호출 금지)
X_test_scaled = scaler.transform(X_test)

# 결과 확인
print("Calculated Mean:\n", scaler.mean_)
print("Calculated Scale (Std):\n", scaler.scale_)
print("\nScaled Train Data (Top 5):\n", X_train_scaled[:5])
print("Scaled Test Data (Top 5):\n", X_test_scaled[:5])

6. 주의사항 및 한계점

6.1. 데이터 누수 (Data Leakage) 방지 절차

전역 정규화 시 가장 빈번하게 발생하는 실수는 전체 데이터셋에 대해 먼저 fit을 수행한 후 데이터를 분리하는 것이다. 이는 테스트 데이터의 정보가 학습 과정에 유입되는 데이터 누수(Data Leakage)를 유발하여 모델 성능이 과대평가되는 결과를 초래한다.

[데이터 누수 방지 프로세스 순서도] 전체 데이터셋 $\rightarrow$ Train/Test Split $\rightarrow$ Train Set에 fit() $\rightarrow$ Train Set transform() $\rightarrow$ Test Set transform(Train 통계량 사용)

6.2. 데이터 분포의 변화 (시각화 관점)

정규화 전후의 데이터 분포는 다음과 같이 변화한다.

  • 정규화 전: 특성별로 X축의 범위가 서로 달라 산점도 상에서 매우 길쭉한 타원형 분포를 보인다.
  • 정규화 후: 모든 특성이 유사한 범위 내에 위치하게 되어, 산점도 상에서 원형에 가까운 균형 잡힌 분포를 띠게 된다. 이는 비등방성(Anisotropy)이 제거되어 비용 함수의 조건수(Condition Number)가 개선됨을 의미하며, 결과적으로 최적화 경로를 단축시킨다.

[분포 변화 시각화 개념] - Before: $\text{Feature A (0~1)} \times \text{Feature B (0~1,000,000)} \rightarrow$ 극단적인 타원형 - After: $\text{Feature A (-1~1)} \times \text{Feature B (-1~1)} \rightarrow$ 정원(Circle)에 가까운 형태

6.3. 이상치(Outlier) 처리와 Robust Scaling

Min-Max Scaling은 최솟값과 최댓값에 의존하므로, 극단적인 이상치가 존재할 경우 대부분의 정상 데이터가 매우 좁은 범위로 압축되는 문제가 발생한다. 이를 해결하기 위해 Robust Scaling을 사용한다.

RobustScaler의 원리: 평균과 표준편차 대신 중앙값(Median)사분위수 범위(IQR, Interquartile Range)를 사용한다. $$x_{robust} = \frac{x - Q_2(Median)}{Q_3 - Q_1(IQR)}$$ 이 방식은 상위 25%와 하위 25%를 제외한 중앙 영역의 통계량을 사용하므로, 이상치의 영향을 최소화하면서 전역적인 스케일링을 수행할 수 있다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?