Dataset Bias
데이터셋 편향은 학습 데이터와 모델이 적용되는 실제 환경 간의 불일치로, 정확도가 고르지 않게 나타나는 현상입니다. 주요 유형과 사례, 편향을 찾고 수정하는 방법을 다룹니다.
데이터셋 편향은 머신러닝 모델을 학습하는 데 사용된 데이터와 모델이 대상으로 삼을 사람, 장소 또는 조건 사이의 체계적인 불일치입니다. 모델은 학습 데이터의 모든 규칙성을 학습하며, 여기에는 데이터 수집 과정에서 우연히 생긴 특성도 포함되므로, 편향된 데이터셋은 자주 접한 상황에서는 잘 작동하지만 나머지 상황에서는 제대로 작동하지 않는 모델을 만듭니다. 테스트 데이터는 대개 동일한 수집 데이터에서 추출되기 때문에, 배포할 때까지 문제가 드러나지 않는 경우가 많습니다. Antonio Torralba와 Alexei Efros는 2011년 "데이터셋 맞히기"라는 게임으로 이 점을 보여 주었습니다. 간단한 분류기도 12개의 인기 이미지 데이터셋 중 사진이 어디에서 왔는지 우연에 의한 것보다 훨씬 높은 확률로 알아맞힐 수 있었는데, 각 데이터셋마다 고유하고 알아볼 수 있는 스타일이 있었기 때문입니다.
데이터셋 편향의 유형#
- 선택 편향: 데이터가 목표 모집단이 아니라 구하기 쉬운 출처에서 수집됩니다. 웹 사진은 부유한 서구권 환경에 치우쳐 있으며, 상업용 객체 인식 서비스는 월소득 미화 3,500달러 초과 가구보다 월소득 미화 50달러 미만 가구의 생활용품에서 정확도가 약 10% 낮았습니다. 미국에서 촬영한 물품과 소말리아 또는 부르키나파소에서 촬영한 물품 사이에는 15~20%포인트의 차이가 있었습니다.
- 대표성 편향: 일부 집단이나 클래스가 너무 드물게 등장해 모델이 이를 학습하지 못합니다. Gender Shades 감사에서는 상업용 성별 분류기가 피부색이 어두운 여성을 최대 34.7%의 경우 오분류한 반면, 피부색이 밝은 남성의 오분류율은 최대 0.8%인 것으로 나타났습니다. 객체 탐지에서는 희귀 클래스가 긴 꼬리를 이루는 현상이 클래스 수준에서 같은 문제입니다.
- 측정 및 촬영 편향: 데이터 수집 환경과 배포 환경의 카메라, 센서, 장소, 조명이 서로 다릅니다. 흉부 X선으로 폐렴을 탐지하도록 학습한 딥러닝 모델은 이미지가 어느 병원에서 촬영되었는지도 식별할 수 있었습니다. 병원마다 폐렴 발생률이 달랐기 때문에 이 신호는 정확도를 부풀리고 새로운 병원으로 일반화되는 성능을 떨어뜨렸으며, 이는 지름길 학습의 한 형태입니다.
- 레이블 편향: 데이터 레이블링에는 어노테이터의 판단, 일관되지 않은 지침 또는 과거의 결정이 반영되며, 모델은 이러한 패턴을 정답으로 취급합니다.
- 시간적 편향: 한 시기에 수집한 데이터는 유행, 제품, 차량이 변화하면서 현실과 맞지 않게 됩니다.
데이터셋 편향이 나타나는 방식#
주로 맑고 건조한 기후에서 학습한 자율주행 인지 모델은 눈, 비, 어둠 속에서 보행자를 덜 안정적으로 탐지합니다. 자동차 AI 분야의 자율주행차를 개발하는 팀은 이 격차를 줄이기 위해 야간 및 악천후 데이터를 수집합니다. 의료 영상 분석에서는 밝은 피부의 이미지가 대부분인 데이터셋으로 학습한 피부과 모델이 어두운 피부에서 성능이 떨어지며, 얼굴 인식 시스템에서도 Gender Shades가 측정한 인구통계학적 격차가 나타납니다. 각 사례에서 전체 정확도는 다수 집단이 평균을 좌우하기 때문에 높게 나타납니다.
아래 코드 조각은 scikit-learn을 사용해 편향이 발생하는 원리를 보여 줍니다. 그룹 B는 그룹 A와 다른 패턴을 따르며, 같은 랜덤 포레스트를 1,000개 샘플로 두 번 학습합니다. 먼저 그룹 B가 데이터의 2%를 차지하도록 학습한 다음, 균형을 맞춰 학습합니다:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
rng = np.random.default_rng(0)
def sample(n, group):
"""Draw n points from group A (label set by feature 0) or group B (label set by feature 1)."""
center = 0.0 if group == "A" else 3.0
X = rng.normal(center, 1.0, size=(n, 2))
return X, X[:, 0 if group == "A" else 1] > center
for n_a, n_b in [(980, 20), (500, 500)]: # skewed, then balanced training sets of the same size
Xa, ya = sample(n_a, "A")
Xb, yb = sample(n_b, "B")
model = RandomForestClassifier(random_state=0).fit(np.vstack([Xa, Xb]), np.concatenate([ya, yb]))
acc = {g: model.score(*sample(2000, g)) for g in "AB"} # held-out accuracy per group
print(f"train A:B = {n_a}:{n_b} -> accuracy on A {acc['A']:.3f}, on B {acc['B']:.3f}")치우친 데이터셋으로 학습하면 모델은 그룹 A에서 완벽한 성능(1.000)을 보이지만, 그룹 B에서는 76.8%의 경우에만 정답을 맞힙니다. 동일한 1,000개 샘플의 균형을 맞추면 그룹 B의 성능은 98.3%로 높아지고 그룹 A는 97.2%로 소폭 낮아집니다. 치우친 학습 데이터와 같은 98:2 비율로 구성된 테스트 세트에서는 첫 번째 모델의 전체 점수가 약 99.5%가 되어 격차가 완전히 가려집니다.
데이터셋 편향과 관련 개념 비교#
- 알고리즘 편향: 다수 클래스에 유리한 손실 함수처럼 모델의 설계, 목적 함수, 배포 과정에서 생기는 치우침입니다. 데이터셋 편향은 알고리즘 편향의 주요 원인 중 하나이며, 두 편향은 서로를 심화시키는 경우가 많습니다.
- AI 편향: AI 시스템에서 발생하는 체계적인 불공정성을 포괄하는 용어이며, AI 공정성의 반대 개념입니다. NIST의 AI 편향 식별 및 관리 표준은 편향의 원인을 시스템적, 인간적, 통계적 또는 컴퓨터적 범주로 분류하며, 대표성이 부족한 데이터셋은 마지막 범주에 속합니다.
- 데이터 드리프트: 배포 후 입력 분포가 변하는 현상입니다. 데이터셋 편향은 데이터 수집 시점부터 존재하지만, 드리프트는 원래 데이터의 대표성이 충분하더라도 이후에 격차를 일으킵니다.
데이터셋 편향 탐지 및 완화#
비전 데이터의 데이터셋 편향 탐지는 문서화와 세분화된 평가에서 시작합니다. 데이터셋 데이터시트는 사용자가 데이터가 누구를 대표하는지 판단할 수 있도록 데이터를 누가, 어떻게, 어떤 목적으로 수집했는지 기록하도록 제안합니다. 단일 평균 대신 그룹, 사이트, 카메라, 조건별 지표와 각 구간별 혼동 행렬을 보고해야 합니다. 데이터 자체를 살펴보는 것도 도움이 됩니다. Ultralytics Platform에서 각 데이터셋의 클래스 탭은 클래스별 주석 개수를 표시하고, 불균형 데이터에는 로그 스케일 전환 기능을 제공합니다. 클러스터링 패널은 클래스 또는 분할별 색상을 적용해 이미지 임베딩을 표시하므로 학습 전에 누락된 데이터 범위를 확인할 수 있습니다.
해결 방법은 원인에 따라 달라집니다. 성능이 약한 구간을 위한 데이터를 집중적으로 수집하면 원인을 직접 해결할 수 있으며, 능동 학습은 레이블을 지정할 새 이미지를 선택하는 데 도움이 됩니다. 데이터 증강은 조명, 방향, 크기를 다양하게 바꾸고, 합성 데이터는 야간 장면이나 특이한 결함과 같은 드문 조건을 보완할 수 있습니다. 대표성이 부족한 예시의 가중치를 높이거나 오버샘플링하고, 분포 강건 최적화를 사용해 성능이 가장 낮은 그룹을 기준으로 최적화하면 학습 과정에서 보상하는 대상이 달라집니다. 배포 후에는 구간별로 세분화된 모델 모니터링을 통해 조건이 변하면서 생기는 격차를 포착할 수 있습니다.










