콘텐츠로 이동

자기지도 학습 (Self-Supervised Learning)

난이도: 중급
선수 지식: 전이 학습
관련 문서: 전이 학습 | 생성 모델 | 대규모 언어 모델

핵심 요약: 레이블 없이 데이터 자체에서 패턴을 학습하는 기법이다. BERT의 “빈칸 맞추기(Masked LM)”, SimCLR의 “같은 이미지의 다른 변형은 유사하게” 학습 등이 대표적. 라벨링 비용을 획기적으로 줄인다.

  • 자기지도 학습(Self-Supervised Learning, SSL): 라벨 없이 데이터 자체의 구조를 활용해 학습 신호를 만드는 방법. 지도 학습과 비지도 학습의 중간 형태.
  • 대조 학습(Contrastive Learning): “같은 것은 가깝게, 다른 것은 멀게” 배치하는 학습 방법. 같은 고양이 사진의 회전/크롭 버전끼리는 가깝게, 다른 이미지와는 멀게.
  • 사전 학습(Pre-training): 대규모 비라벨 데이터로 범용적인 표현을 먼저 학습하는 단계. 이후 소량 라벨 데이터로 미세 조정(fine-tuning)한다.
  • CLIP: 이미지와 텍스트를 같은 공간에 매핑하는 모델. “고양이 사진”이라는 텍스트와 실제 고양이 이미지를 가깝게 학습하여, 텍스트만으로 이미지를 분류할 수 있다.

자기지도 학습(Self-Supervised Learning, SSL)은 라벨이 없는 데이터에서 스스로 학습 신호를 생성하여 유용한 표현(representation)을 학습하는 기법이다. 지도 학습은 대규모 라벨링이 필요하지만, SSL은 데이터 자체의 구조를 활용한다. BERT의 Masked Language Modeling, GPT의 다음 토큰 예측, SimCLR의 대조 학습 등이 대표적이며, 현재 딥러닝의 사전 학습 패러다임의 핵심이다.

비유: 자기지도 학습은 빈칸 채우기 문제집으로 공부하는 것이다. 선생님이 일일이 정답을 달아줄 필요가 없다 — 문장에서 단어를 가리고 그 단어를 맞히게 하면, 정답은 원래 문장이 이미 갖고 있다. 라벨링 비용 없이 무한한 문제를 만들 수 있는 이 발상이 현대 대규모 모델을 가능하게 했다.


“라벨이 필요 없다” — 이 단순한 아이디어가 딥러닝의 패러다임을 바꾸었다. 지도 학습의 가장 큰 병목은 대규모 라벨링 비용이었다. ImageNet의 1,400만 장 이미지에 라벨을 붙이는 데 수년이 걸렸고, 의료/법률 등 전문 도메인에서는 라벨링 비용이 천문학적이었다.

2020년 Google Research의 SimCLR(“A Simple Framework for Contrastive Learning of Visual Representations”)은 라벨 없이도 ImageNet 지도 학습에 근접하는 표현을 학습할 수 있음을 보여주며 비전 분야의 SSL 혁명을 촉발했다. 핵심 아이디어는 같은 이미지의 서로 다른 증강 버전을 “유사한 쌍”으로, 다른 이미지를 “다른 쌍”으로 학습하는 대조 학습(Contrastive Learning)이었다.

2021년 OpenAI의 CLIP(Contrastive Language-Image Pre-training)은 4억 개의 이미지-텍스트 쌍으로 대조 학습을 수행하여, 별도의 학습 없이(zero-shot) 이미지를 분류할 수 있는 모델을 만들었다. CLIP은 텍스트 설명만으로 임의의 카테고리를 분류할 수 있어, 전통적인 “학습 → 분류” 패러다임 자체를 재정의했다. SSL은 NLP(BERT, GPT), 비전(SimCLR, MAE), 오디오(wav2vec), 멀티모달(CLIP) 등 거의 모든 도메인에서 현대 딥러닝의 기본 패러다임으로 자리 잡았다.

이후로도 발전이 이어졌다. DINOv2(2023)는 라벨 없이 학습한 비전 표현만으로 별도 미세조정 없이 여러 downstream 과제에 바로 쓸 수 있는 범용 시각 특징을 제공했고, SigLIP(2023)은 CLIP의 대조 손실을 sigmoid 기반으로 바꿔 대규모 배치 없이도 효율적으로 학습할 수 있게 했다. JEPA 계열은 픽셀을 그대로 복원하는 대신 표현 공간에서 예측하도록 하여, 재구성 기반 방법의 한계를 넘으려는 방향을 제시했다.


핵심 아이디어: 유사한 쌍(positive pair)은 임베딩 공간에서 가깝게, 다른 쌍(negative pair)은 멀게 학습한다.

InfoNCE Loss: L=logexp(sim(zi,zj)/τ)k=12N1[ki]exp(sim(zi,zk)/τ)L = -\log \frac{\exp(\text{sim}(z_i, z_j) / \tau)}{\sum_{k=1}^{2N} \mathbb{1}_{[k \neq i]} \exp(\text{sim}(z_i, z_k) / \tau)}

  • ziz_i, zjz_j: positive pair의 임베딩
  • τ\tau: temperature 파라미터
  • sim\text{sim}: 코사인 유사도

SimCLR (Simple Contrastive Learning) 다이어그램

  • 같은 이미지의 다른 증강 = positive pair
  • 다른 이미지 = negative pair
  • 핵심 발견: 큰 배치 크기, 강한 증강, projection head가 성능에 중요
  • Momentum encoder + queue로 큰 negative 풀을 메모리 효율적으로 유지
  • SimCLR의 큰 배치 크기 제약을 해결
모델핵심 아이디어Collapse 방지
BYOLTeacher-Student, momentum updateMomentum encoder
SimSiam동일 네트워크, stop-gradientStop-gradient
VICReg분산-불변-공분산 정규화명시적 정규화 항

→ Negative pair 없이도 좋은 표현을 학습할 수 있음을 보여주었다.

CLIP (Contrastive Language-Image Pre-training)

섹션 제목: “CLIP (Contrastive Language-Image Pre-training)”

이미지-텍스트 쌍으로 대조 학습. 이미지 인코더와 텍스트 인코더를 동시에 학습하여, 텍스트로 이미지를 검색하거나, zero-shot 이미지 분류가 가능하다.

2. 마스킹 기반 학습 (Masked Modeling)

섹션 제목: “2. 마스킹 기반 학습 (Masked Modeling)”

입력의 일부를 마스킹하고, 마스킹된 부분을 복원하도록 학습한다.

도메인모델마스킹 비율특징
텍스트BERT (MLM)15%토큰 단위 마스킹
이미지MAE75%패치 단위, 높은 마스킹 비율
오디오wav2vec 2.0-오디오 프레임 마스킹

He et al. (2022)이 제안. 이미지 패치의 75%를 마스킹하고 복원한다.

  • 매우 높은 마스킹 비율이 핵심 (이미지는 텍스트보다 중복성이 높음)
  • 인코더는 보이는 패치만 처리 → 효율적 학습
  • 디코더는 가벼운 구조로 복원

자기지도 학습이 라벨링 비용을 얼마나 아껴줄까?

이미지 100만 장을 분류하는 모델을 만든다고 하자. 장당 라벨링 비용은 $0.5다.

전통적 지도 학습:

1,000,000×$0.5=$500,0001{,}000{,}000 \times \$0.5 = \$500{,}000

자기지도 학습 + 소량 파인튜닝: 라벨 없이 100만 장으로 표현을 먼저 학습한 뒤, 1%인 10,000장만 라벨링해 미세조정한다.

10,000×$0.5=$5,000(99% 절감)10{,}000 \times \$0.5 = \$5{,}000 \quad (\text{99\% 절감})

왜 이게 가능한가: 라벨은 “이건 고양이”라는 한 조각의 정보만 준다. 반면 이미지 자체에는 형태, 질감, 색, 구조가 전부 들어 있다. 자기지도 학습은 라벨이 아니라 데이터 자체에서 감독 신호를 만들어내 이 풍부한 정보를 쓴다.

⚠️ 대신 사전학습에는 대규모 연산이 든다. 라벨링 비용을 GPU 비용으로 바꾼 것에 가까우므로, 이미 공개된 사전학습 모델을 쓸 수 있다면 그것이 가장 저렴하다.

특성지도 학습자기지도 학습
라벨 필요필수불필요
데이터 확보비용 높음비용 낮음
표현의 범용성과제 특화적범용적
소량 라벨 시과적합 위험사전 학습 후 few-shot 가능
계산 비용상대적 낮음높음 (대규모 사전 학습)

SSL의 학습 패러다임 다이어그램 이 패러다임은 현재 NLP(BERT, GPT), 비전(MAE, CLIP), 오디오(wav2vec), 멀티모달(CLIP, DALL-E) 등 거의 모든 도메인에서 채택되고 있다.


상황SSL 적합도비고
라벨 없는 데이터가 풍부매우 적합핵심 사용 시나리오
라벨 획득 비용이 높음적합의료, 법률 등
범용 표현이 필요적합다양한 downstream 과제
특정 과제에 라벨이 충분덜 필요직접 지도 학습이 효율적
멀티모달 이해매우 적합CLIP 등
도메인 적응적합도메인 내 비라벨 데이터 활용

200만 달러 레이블링 예산을 80% 절감한 SSL 도입 사례

섹션 제목: “200만 달러 레이블링 예산을 80% 절감한 SSL 도입 사례”

한 대형 이커머스 회사에서 상품 이미지 분류 모델을 운영하고 있었다. 수만 개의 카테고리에 걸친 상품을 분류하기 위해 매년 200만 달러 이상의 레이블링 예산을 투입하고 있었으며, 새로운 카테고리가 추가될 때마다 대규모 재라벨링이 필요했다.

SSL 도입 후 다음과 같은 변화가 있었다:

  • 1단계: 수천만 장의 비라벨 상품 이미지로 SimCLR 기반 사전 학습을 수행했다. 이 과정에서 모델은 색상, 형태, 질감, 구조적 패턴 등 범용적인 시각 표현을 학습했다
  • 2단계: 각 카테고리당 50100장의 라벨 이미지만으로 fine-tuning을 수행했다. 이전에는 카테고리당 5,00010,000장이 필요했다
  • 결과: 라벨링 비용이 80% 절감되었고, 새로운 카테고리 추가 시 소량의 라벨만으로 빠르게 대응할 수 있게 되었다
  • 성능: 분류 정확도는 기존 대규모 라벨 기반 모델과 동등하거나 일부 카테고리에서 오히려 높았다. SSL로 학습한 표현이 더 범용적이고 견고했기 때문이다

이 사례는 SSL이 단순히 기술적 혁신이 아니라 비즈니스 비용 구조를 근본적으로 바꿀 수 있다는 점을 보여준다.


import numpy as np
from sklearn.datasets import make_classification
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X, y = make_classification(n_samples=6000, n_features=100, n_informative=15, random_state=0)
Xp, Xd, yp, yd = train_test_split(X, y, test_size=0.4, random_state=0) # Xp=라벨 없는 사전학습용
# 자기지도 대용: 라벨 없이 Xp로 표현(PCA)을 학습
rep = PCA(n_components=15, random_state=0).fit(Xp)
Xtr, Xte, ytr, yte = train_test_split(Xd, yd, test_size=0.5, random_state=0)
print(f"{'라벨 개수':>9} {'원본 특성':>10} {'SSL 표현':>10}")
for n in (30, 100, 500, len(Xtr)):
a = LogisticRegression(max_iter=5000).fit(Xtr[:n], ytr[:n]).score(Xte, yte)
b = LogisticRegression(max_iter=5000).fit(rep.transform(Xtr[:n]), ytr[:n]).score(rep.transform(Xte), yte)
print(f"{n:>9} {a:>10.3f} {b:>10.3f}")
print("\n라벨이 적을수록 사전학습된 표현의 이점이 커진다")
# 실행 결과:
# 라벨 개수 원본 특성 SSL 표현
# 30 0.610 0.632
# 100 0.627 0.676
# 500 0.668 0.727
# 1200 0.694 0.727
#
# 라벨이 적을수록 사전학습된 표현의 이점이 커진다

라벨이 30개뿐일 때 SSL 표현이 가장 큰 이점을 준다(0.610 → 0.632). 라벨이 늘수록 격차는 줄지만, 500개 시점에서도 여전히 SSL 쪽이 앞선다(0.668 → 0.727). 라벨링 예산이 빠듯할수록 사전학습된 표현의 가치가 커진다는 뜻이다.

(위 예시는 설명을 위해 PCA를 자기지도 표현 학습의 대용으로 썼다. 실제 SSL은 대조 학습이나 마스킹 예측 같은 훨씬 강력한 목적 함수를 쓴다.)


  1. “SSL은 비지도 학습(unsupervised learning)이다”: SSL은 데이터 자체에서 감독 신호를 생성한다. 엄밀히는 지도 학습의 변형에 가깝다. 전통적 비지도 학습(클러스터링 등)과는 다르다.

  2. “Negative pair가 반드시 필요하다”: BYOL, SimSiam 등이 negative pair 없이도 좋은 성능을 달성함을 보여주었다.

  3. “SSL 사전 학습이면 fine-tuning이 불필요하다”: SSL로 학습한 표현은 범용적이지만, 특정 과제에 최적화하려면 fine-tuning이 필요하다.

  4. “대조 학습에서 배치 크기가 작아도 된다”: SimCLR는 큰 배치(4096+)에서 성능이 좋다. 배치 크기가 작으면 MoCo 같은 대안을 고려하라.

  5. Projection head를 downstream에 사용: Projection head는 대조 학습의 학습 신호를 위한 것이며, downstream에서는 인코더의 표현을 사용해야 한다.


1. 자기지도 학습이 “비지도”와 다른 점은?

정답 보기

정답 라벨이 없는 것은 같지만, 자기지도는 데이터 자체에서 감독 신호를 만들어낸다(단어 가리고 맞히기, 이미지 일부 복원 등). 실제로는 지도 학습의 형태로 학습이 진행된다.

2. 대조 학습(contrastive learning)의 핵심 아이디어는?

정답 보기

같은 대상의 서로 다른 변형은 가깝게, 다른 대상은 멀게 표현을 배치하도록 학습한다. 라벨 없이도 “무엇이 같고 다른지”를 가르칠 수 있다.

3. SSL이 라벨링 비용을 줄여주는 이유는?

정답 보기

라벨 없는 대량 데이터로 범용 표현을 먼저 학습해 두면, 이후 과제에는 소량의 라벨만으로 충분해진다. 라벨은 정보량이 적고 비싸지만 원본 데이터에는 풍부한 구조가 있다.