우리는 정말 많은 레이블이 필요할까?
딥러닝 프로젝트를 진행할 때마다 가장 먼저 부딪히는 벽은 바로 레이블링 비용입니다. 이미지 분류, 텍스트 분류, 이상 탐지 등 지도 학습 기반의 태스크는 대부분 수천에서 수만 개의 레이블된 데이터를 요구하죠. 특히 한국의 SI/스타트업 환경에서는 레이블링 작업에 드는 인건비와 시간이 전체 프로젝트 예산의 상당 부분을 차지합니다.
하지만 생각해보면, 모델이 레이블 없이도 데이터의 구조를 스스로 파악할 수 있다면 어떨까요? 생성 모델(Generative Model)은 비지도 학습 과정에서 이미 데이터의 의미 있는 군집(Cluster)을 발견하는 경우가 많습니다. 예를 들어, 숫자 이미지를 학습한 VAE는 잠재 공간에서 0과 1을 자연스럽게 분리합니다.
그렇다면 이런 질문이 생깁니다: 모델이 이미 데이터 구조를 발견했다면, 분류기로 전환하는 데 실제로 얼마나 많은 레이블이 필요할까?
이 질문에 답하기 위해, 이번 인사이트에서는 GMVAE(Gaussian Mixture Variational Autoencoder) 라는 모델을 통해 극소량의 레이블로도 높은 성능을 내는 방법을 살펴보겠습니다. 이 글은 단순한 튜토리얼이 아니라, '레이블 효율적 학습'이라는 패러다임에 대한 깊이 있는 고찰입니다.
참고: 이 글에서 다루는 실험은 EMNIST Letters 데이터셋(14만 5600개 이미지, 26개 클래스)을 기반으로 합니다. 원문과 실험 코드는 여기에서 확인할 수 있습니다.

GMVAE: 레이블 없이 구조를 배우는 방법
표준 VAE의 한계
표준 VAE는 각 데이터 포인트를 연속적인 잠재 변수 $z$로 매핑합니다. 하지만 사전 분포(Prior)가 단일 가우시안이기 때문에, 잠재 공간이 자연스럽게 여러 그룹으로 나뉘지 않습니다. 즉, 클러스터링에 최적화되어 있지 않습니다.
GMVAE의 아이디어
GMVAE는 사전 분포를 가우시안 혼합 모델(GMM) 로 대체합니다. 여기서 $K$는 사전에 정한 클러스터 개수입니다.
$p(z) = \sum_{k=1}^{K} \pi_k , \mathcal{N}(z \mid \mu_k, \sigma_k^2)$
이를 위해 새로운 이산 잠재 변수 $y$가 도입됩니다. 모델은 각 데이터에 대해 클러스터 사후 확률 $p(y \mid x)$를 학습합니다. 즉, GMVAE는 학습 과정 자체에서 클러스터를 발견합니다.
$K$ 선택의 트레이드오프
$K$ 값은 매우 중요합니다.
- 너무 작으면: 서로 다른 스타일이나 글자가 하나의 클러스터로 합쳐져 세밀한 구조를 포착하지 못합니다.
- 너무 크면: 클러스터가 지나치게 세분화되어, 적은 레이블 샘플로 클러스터-레이블 관계를 추정하기 어려워집니다.
실험에서는 $K=100$을 사용했습니다. 26개의 알파벳 클래스보다 충분히 크게 설정하여, 각 클래스 내의 필체 스타일 변형까지 포착하면서도, 각 클러스터에 레이블 샘플이 충분히 할당되도록 한 절충안입니다.

클러스터를 분류기로 바꾸는 두 가지 전략
GMVAE 학습이 끝나면, 각 이미지는 클러스터에 대한 사후 분포 $p(y \mid x)$를 갖습니다. 이제 이 클러스터에 레이블을 연결해야 합니다. 여기서 두 가지 접근법을 비교합니다.
하드 디코딩 (Hard Decoding)
가장 직관적인 방법입니다.
- 레이블된 작은 부분 집합을 사용해 각 클러스터에 가장 빈번한 레이블을 할당합니다.
- 레이블되지 않은 이미지에 대해, 가장 확률이 높은 클러스터 하나만 선택하고 그 클러스터의 레이블을 할당합니다.
문제점:
- 모델의 불확실성을 무시합니다. (GMVAE가 여러 클러스터 사이에서 '망설일' 수 있음)
- 클러스터가 순수(Pure)하다고 가정합니다. 하지만 현실에서는 하나의 클러스터에 'i'와 'l'이 섞여 있을 수 있습니다.
소프트 디코딩 (Soft Decoding) - 제안하는 방법
소프트 디코딩은 클러스터 전체 사후 분포를 활용합니다.
- 레이블된 데이터로 각 레이블 $c$에 대한 클러스터 확률 벡터 $p(y \mid c)$를 추정합니다. (레이블 $c$의 데이터가 각 클러스터에 속할 확률)
- 레이블되지 않은 이미지 $x$에 대해, 모델이 제공하는 사후 확률 $p(y \mid x)$와 각 $p(y \mid c)$의 유사도를 계산합니다.
- 가장 유사한 레이블 $c$를 선택합니다.
장점:
- 모델의 불확실성을 그대로 활용합니다.
- 클러스터가 순수하지 않아도, 여러 클러스터의 정보를 종합해 올바른 레이블을 추론할 수 있습니다.
실제 예시로 보는 차이
예를 들어, 실제 레이블이 'e'인 이미지가 있다고 가정해봅시다. GMVAE의 클러스터 사후 분포가 다음과 같습니다:
- 클러스터 76: 0.5 (주로 'c'와 연관)
- 클러스터 40: 0.2 (주로 'e'와 연관)
- 클러스터 35: 0.15 (주로 'e'와 연관)
- 클러스터 81: 0.1 (주로 'e'와 연관)
- 클러스터 61: 0.05 (주로 'e'와 연관)
하드 디코딩: 가장 큰 클러스터 76만 보고 'c'라고 예측 -> 오답
소프트 디코딩: 모든 클러스터의 가중 투표 결과, 'e'에 해당하는 확률이 0.5로 'c'의 0.5보다 높음 -> 정답
이처럼 소프트 디코딩은 사후 분포의 정보를 버리지 않고 모두 활용함으로써, 특히 레이블이 극도로 부족한 상황에서 큰 성능 향상을 가져옵니다.

실험 결과: 레이블 0.2%면 충분하다
EMNIST 데이터셋(14만 5600개)을 사용해 레이블 샘플 수를 점진적으로 늘려가며 실험한 결과는 놀라웠습니다.
주요 결과
- 레이블 73개(0.05%)만으로도: 소프트 디코딩이 하드 디코딩 대비 약 18% 포인트 높은 정확도를 기록했습니다. 이는 여러 클러스터가 레이블로 대표되지 않은 상황에서 소프트 디코딩의 강점이 극대화됨을 보여줍니다.
- 레이블 291개(0.2%): GMVAE 기반 분류기가 80% 정확도를 달성했습니다.
- 비교 대상: XGBoost는 같은 성능을 내기 위해 약 7%의 레이블(약 10,000개)이 필요했습니다. 35배 더 많은 레이블이 필요했던 셈입니다.
이 결과가 주는 교훈
분류에 필요한 구조의 대부분은 비지도 학습 단계에서 이미 학습됩니다. 레이블은 단지 그것을 '해석'하는 데만 필요할 뿐입니다.
이는 실무적으로 매우 중요한 시사점을 줍니다. 특히 레이블링 비용이 큰 의료 이미지, 법률 문서, 혹은 한국의 전통 제조업 데이터(불량 탐지) 등에서, 먼저 비지도 학습으로 구조를 학습하고, 이후 극소량의 레이블로 해석하는 파이프라인을 고려해볼 수 있습니다.
주의사항 및 한계
- 데이터셋 의존성: 이 실험은 EMNIST라는 비교적 단순한 데이터셋에 최적화되어 있습니다. 복잡한 자연 이미지(예: ImageNet)에서는 클러스터의 순도가 훨씬 낮아질 수 있습니다.
- 클러스터 개수 $K$ 튜닝: $K$는 하이퍼파라미터이며, 도메인 지식 없이 최적값을 찾는 것은 어려울 수 있습니다.
- 레이블 샘플의 무작위 추출 가정: 실험에서는 레이블 샘플이 무작위로 추출된다고 가정했습니다. 실제로는 특정 클래스의 샘플이 누락될 위험이 있습니다.
다음 단계 학습 방향
- Semi-supervised Learning(준지도 학습) 전반에 대한 이해: GMVAE 외에도 MixMatch, FixMatch 등의 최신 기법을 공부해보세요.
- Contrastive Learning(대조 학습): SimCLR, MoCo 등 레이블 없이 표현을 학습하는 또 다른 강력한 패러다임입니다.
- 실무 적용 팁: 자신의 도메인에 맞게 데이터 전처리와 GMVAE 아키텍처를 조정해야 합니다. 특히 이미지 크기, 색상, 노이즈 등에 민감할 수 있습니다.
함께 보면 좋은 글