늦깎이 공대생의 인공지능 연구실
[용어정리] Confident Learning(신뢰 학습) 본문
"하이퍼파라미터를 밤새 튜닝하고, SOTA(State-of-the-Art) 아키텍처로 바꿔봐도 모델 성능이 더이상 오르지 않고 꺾이지 않는 벽에 부딪힌 적 있으신가요?"
AI 연구를 수행하시는 분들이 보통 모델 성능이 안 나오면 레이어를 더 쌓거나 손실 함수(Loss Function)를 수정하곤 합니다. 하지만 원인이 모델이 아니라, 우리가 신뢰하고 넣은 '데이터 라벨' 그 자체에 있다면 어떨까요?
실제로 우리가 당연하게 정답으로 믿고 쓰던 ImageNet 데이터셋에만 10만 개가 넘는 라벨 오류가 존재합니다. 잘못된 정답을 학습하면서 100%의 성능을 바라는 것은 고장난 정답지를 주고 100점을 기대하는 것과 같습니다.
제 연구분야 중 하나인 제품 결함 검사 분야는 사람의 눈으로도 식별하기 어려운 미세한 결함들을 AI가 찾아내는 역할을 합니다. 하지만 작업자가 Labeling을 진행하는 과정에서 잘못 판단하여 엉뚱한 Class에 해당하는 Label을 달거나, 피로 누적으로 Labeling 과정에서 결함을 놓치는 일이 발생하곤 합니다. 이렇게 오염된 Label을 학습한 AI 모델은 현장에 투입되었을 때 실제 결함을 놓쳐버리거나, 멀쩡한 제품을 결함으로 판단하는 오탐지(False Positive) 문제를 야기하게 됩니다.
오늘 소개할 신뢰 학습(Confident Learning)은 무작정 모델만 고치던 기존 방식을 벗어나, "데이터 중심 AI(Data-Centric AI)" 관점에서 데이터 속 가짜 정답을 신속하고 정확하게 솎아내는 핵심 기술입니다.
우리가 믿었던 데이터셋의 배신
실제 표준 데이터셋에서 발생하는 Label Noise는 크게 3가지 형태로 나타납니다.
- Label Errors: 여우 사진인데 '개'로 Label되어 있는 것처럼 명백히 잘못 지정된 경우
- Multi-label Issues: 한 이미지 안에 개와 고양이가 모두 있는데 '개' 하나로만 Label된 경우
- Ontological Issues: '욕조(Bathtub)'와 '대야(Tub)'처럼 모호하거나 포괄적인 클래스 정의 때문에 생긴 노이즈
잘못된 정답지를 가지고 밤새 학습시킨 AI 모델에게 현장에서 100%의 정답률을 기대하는 것은 당연히 어불성설입니다. Garbage In, Garbage Out이라는 오래된 격언처럼, 데이터셋의 배신을 해결하지 않고서는 아무리 모델 구조를 바꿔도 한계에 부딪힐 수밖에 없습니다.
Confident Learning이란?
이처럼 "노이즈가 섞인 데이터 속에서 진짜 정답과 잘못된 Label을 찾아내고, 깨끗한 데이터로 모델을 효율적으로 학습시키는 데이터 중심(Data-Centric) AI 기법"이 바로 신뢰 학습(Confident Learning, CL)입니다.
기존의 노이즈 Label 대응 방식은 손실 함수(Loss Function)를 수정하여 노이즈에 견디게 만들거나(Loss Reweighting), 복잡한 모델 아키텍처로 노이즈를 학습하지 못하게 방어하는 데 치중했습니다. 하지만 이는 학습 과정에서 오차(Error)가 누적되거나 복잡도가 커지는 한계가 있었습니다.
반면 Confident Learning은 "모델이 출력하는 예측 확률(Predicted Probabilities)"과 "기존 노이즈 라벨(Noisy Labels)"의 관계를 분석하여, Data Label의 진짜 결합 분포(Joint Distribution)를 직접 추정해냅니다.
💡 잠깐, '결합 분포(Joint Distribution)'란 무슨 뜻일까요?
쉽게 말해 "데이터에 실제로 적혀 있는 Label(A)과, AI가 판단한 진짜 정답(B)이 동시에 일어날 확률"을 표 하나로 정리한 것입니다. 예를 들어 (추론 결과: 개, 진짜 정답: 여우)라는 사건이 전체 데이터셋에서 얼마나 자주 발생하는지 확률로 나타낸 지도인 셈이죠. 이 지도를 완성하면 Label이 올바르게 적힌 비율(대각선)뿐만 아니라, "어떤 클래스가 어떤 클래스로 잘못 적혀 오염되었는지(비대각선)" 그 패턴을 한눈에 파악할 수 있게 됩니다.

Confident Learning의 3가지 핵심 원칙
Confident Learning의 기본 논문(Northcutt et al.)에서 제시하는 3가지 핵심 축은 Prune(가지치기), Count(카운팅), Rank(우선순위 정렬)입니다.
1. Prune (가지치기): 손실 함수 변경 대신 오염 데이터 직접 제거
- 기존 방식의 문제: 손실 함수에 가중치를 부여하거나(Loss Reweighting) 모델 내부에서 Label을 재예측(Re-labeling)하는 반복 알고리즘(Iterative) 방식은 잘못된 초기 예측이 모델 전체 학습을 망치는 '오류 전파(Error Propagation)' 현상을 겪기 쉽습니다.
- CL의 해결책: Confident Learning은 노이즈 데이터를 '직접 가지치기(Soft/Hard Pruning)'하여 데이터셋 자체를 정제합니다. 모델의 코드를 수정할 필요 없이, 단순히 깨끗해진 데이터셋만 가지고 표준 Cross-Entropy Loss로 안정적인 학습이 가능해집니다.
2. Count (확신 기반 카운팅): 각 클래스별 임계값(Threshold)을 통한 오염도 추정
AI모델이 특정 데이터를 다른 Class라고 예측하는데, 이것이 AI모델의 실수인지 아니면 Label이 틀린 것인지 어떻게 판단할까요?
- 임계값(Threshold) 산출 원리: 각 클래스 \(j{}\)에 속한 데이터들에 대해, 모델이 클래스 \(j{}\)라고 판단한 평균 예측 확률을 해당 클래스의 '확신 기준선 \(t _j \)'으로 설정합니다.
- 예시: '개' 클래스 데이터들에 대해 모델이 낸 예측 확률들의 평균이 0.8이라면, '개' 클래스의 임계값 \(t_{\text{dog}} = 0.8\)이 됩니다.
- 카운팅 기준: 만약 실제 Label은 '여우'로 되어 있는 어떤 사진을 모델이 '개'일 확률 0.85로 예측했다면, 이 확률은 '개' 클래스의 기준선 0.8 을 넘어섭니다. Confident Learning은 이 데이터를 "실제로는 개이지만 여우로 잘못 Labeling된 데이터"로 간주하고 '결합 카운트 Matrix'의 (여우, 개) 칸의 숫자를 1 올립니다.
3. Rank (우선순위 정렬): 확률값의 절대적 수치에 의존하지 않는 안전성
- 확률 정규화 문제 극복: 딥러닝 모델이 출력하는 Softmax 확률값은 종종 과잉 확신(Over-confidence)되거나 덜 정규화(Unnormalized)되어 있을 수 있습니다.
- CL의 해결책: Confident Learning은 예측 확률값 자체를 절대적인 가중치로 사용하는 대신, 라벨 오류일 가능성이 높은 순서대로 데이터의 순위(Rank)를 매깁니다. 구글의 PageRank 알고리즘처럼 상대적 정렬 방식을 취하기 때문에, 확률 수치 자체에 약간의 오차가 있더라도 라벨 오류 데이터를 매우 안정적으로 찾아냅니다.
직관적으로 이해하는 결합 분포 Matrix 산출 방식
Confident Learning이 수십만 개의 데이터 속에서 오염도를 추정해내는 전체 과정은 다음 3단계로 요약할 수 있습니다.
1단계: OOF(Out-of-Fold) 예측 확률 수집
모델이 자기가 학습한 데이터를 그대로 평가하면 과적합(Overfitting)으로 인해 Label 오류를 찾을 수 없습니다. 따라서 교차 검증(Cross-Validation)을 통해 모델이 학습할 때 보지 못했던 데이터들에 대한 객관적인 예측 확률 행렬을 생성합니다.
2단계: 확신 기반 결합 행렬(Confident Joint Matrix) 구축
클래스별 임계값을 바탕으로 카운팅을 진행하여 [주어진 Label \(\tilde{y}\)] × [진짜 Label \(y^*\)] 형태의 행렬을 만듭니다.
- 대각선 성분 \((i, i)\): 올바르게 라벨링된 데이터 수
- 비대각선 성분 \((i, i) \): 라벨 \(\mathit{i} \)로 적혀있지만 실제로는 \(j{} \)인 오류 데이터 수
3단계: 상위 오류 데이터 제거 및 모델 재학습
행렬에서 추정한 비대각선 성분의 개수만큼, 각 셀에서 오답 확신도(예: $P(y^*=j) - P(\tilde{y}=i)$)가 가장 높은 순서대로 데이터를 제거하거나 정정한 후 모델을 재학습시킵니다.
Confident Learning의 실무적 장점
- 하이퍼파라미터에서 자유로움 (Hyperparameter-free): 사람이 임의로 오류 판단 기준(e.g. "확률 0.9 이상만 오류로 보자")을 정할 필요 없이, 각 클래스별 데이터 분포에 따라 임계값이 자동 산출됩니다.
- 대규모 데이터셋에서의 빠른 처리 속도: 단순 반복 연산이 아닌 카운팅 및 정렬 기반 알고리즘이므로, ImageNet(130만 장 데이터) 수준에서도 Label 오류를 검색하는 데 단 3분밖에 걸리지 않습니다.
- 모델 아키텍처 독립성 (Model-Agnostic): 딥러닝(CNN, ViT, ResNet 등)뿐만 아니라 XGBoost, LightGBM, Random Forest 등 예측 확률값(Probabilities)을 출력할 수 있는 모든 머신러닝 알고리즘에 바로 적용할 수 있습니다.
- 오픈소스 패키지 cleanlab 지원: MIT researchers가 개발한 Python 라이브러리 cleanlab을 이용하면 단 3~4줄의 코드로 기존 PyTorch/Scikit-Learn 코드베이스에 즉시 통합할 수 있습니다.
머신러닝 생태계는 이제 단순히 '더 크고 복잡한 모델'을 만드는 경쟁에서, '더 깨끗하고 고품질의 데이터'를 만드는 경쟁으로 패러다임이 이동하고 있습니다.
신뢰 학습(Confident Learning)은 복잡한 하이퍼파라미터 튜닝 없이도, 단 몇 분 만에 데이터셋의 오염도를 파악하고 정제할 수 있는 매우 강력한 무기입니다. 특히 오픈소스 패키지인 cleanlab을 활용하면, 현재 진행 중인 프로젝트에도 손쉽게 적용해볼 수 있습니다.
만약 지금 다루고 계신 모델의 성능이 정체되어 있다면, 코드 창을 잠시 닫고 데이터셋의 라벨부터 검증해보시는 건 어떨까요? 어쩌면 여러분의 모델은 이미 최선을 다하고 있었고, 진짜 문제는 데이터에 있었을지도 모릅니다.
참고자료
https://github.com/cleanlab/cleanlab
GitHub - cleanlab/cleanlab: Cleanlab's open-source library is the standard data-centric AI package for data quality and machine
Cleanlab's open-source library is the standard data-centric AI package for data quality and machine learning with messy, real-world data and labels. - cleanlab/cleanlab
github.com
https://dcai.csail.mit.edu/2024/label-errors/
Label Errors and Confident Learning
Learn how to algorithmically identify mislabeled data.
dcai.csail.mit.edu
'AI용어정리' 카테고리의 다른 글
| [용어정리] Channel (0) | 2026.05.01 |
|---|---|
| [용어 정리]유니그램 확률(Unigram Probability) (0) | 2026.02.01 |
| [용어 정리]Modeling Power (0) | 2025.11.02 |
| [용어정리]Weight Decay (0) | 2024.12.22 |
| [용어정리]Synchronized Batch Normalization (0) | 2024.02.12 |