semi-supervised learning
sol-commits Oct 1, 2025
| 문제의식 | label은 비싸고 적은데, unlabel은 싸고 많음 → 둘을 함께 써서 성능을 끌어올리는 방식(SSL) |
| 데이터 구성 | 소수의(x, y)와 다수의 x가 섞여있음 |
| 핵심 아이디어 A | consistency regularization |
| 핵심 아이디어 B | 엔트로피 최소화/수도라벨 • 모델이 스스로 낸 예측을 임시 정답(수도라벨)으로 삼아 학습을 도움(self-training) |
| 대표기법 1 | • Π‑Model: 한 이미지에 서로 다른 두 증강을 적용해 나온 두 예측이 서로 가깝게 되도록 손실을 줌 |
| 대표 기법 2 | • Temporal Ensembling : 한 시점의 예측 대신 시간 평균(지수가중 이동평균) 예측을 목표로 서서 더 신뢰도를 높임 |
| 가중치 스케줄링 | • 초기에는 레이블된 데이터의 손실 비중을 크게 시간에 따라 언레이블드 손실 비중을 점점 키움 |
같은 상황에서 레이블만 보고 학습하면 작은 데이터에 암기(오버피팅) 하기 쉬움 → 언레이블드에 보조 목적 함수를 걸어regularizaiton효과를 줌
손실 함수
- 는 훈련 초반엔 작게, 시간이 갈수록 크게(
가중치 스케줄링)
← 초기에 모델 예측은 불안정하니 무리하게 믿지 않기 위해
Consistency Regularization
같은 그림을 살짝 다르게 보여줘도(크롭/색감/노이즈 등) 예측은 같아야 함→ 입력이 조금만 달라지면 출력도 조금만 달라지는 smoothness를 강제
- 구현 핵심
- 한 언레이블드 샘플 x에 증강 t1, t2를 적용해서 x1 = t1(x), x2 = t2(x) 생성
- 같은 모델 f로 예측 → p1 = f(x1), p2 = f(x2)
- 두 예측이 가깝게 되도록
- 왜 효과가 있을까?
- 모델이 증강 불변(레이블 보존) 특징을 학습하도록 유도
→ 작은 레이블 셋만으로도 결정 경계를 데이터 분포의 올바른 영역으로 밀어넣음
엔트로피 최소화 & 수도라벨
모델의 예측을 스스로 정답처럼 사용해 추가 학습(셀프-트레이닝)처음부터 수도라벨을 강하게 쓰지 않는 것이 좋음 → 가중치 스케줄링
- 엔트로피 최소화
: 모델 출력 분포가 날카롭고(=낮은 엔트로피), 확신에 차도록 만드는 기법
대표 기법들
파이 모델- 한 입력에 대해 서로 다른 두 증강을 적용해 얻은 예측이 서로 근접하도록 학습
- 주로 쓰는 것은 제곱 차이(MSE, Mean Squared Error)
Temporal Ensembling(시간 앙상블)- 한 시점의 예측만 쓰지 않고 과거 예측들의 지수가중 이동평균(EMA)을 모아 더 신뢰도 높은 타깃으로 씀(시간 축에서의 일관성)
→ 노이즈가 줄고 수도라벨 품질 개선됨
Mean Teacher- 모델 파라미터(가중치) 자체를 EMA로 업데이트
- Student 모델이 학습할 때 Teacher 모델의 파라미터에서 나온 예측을 target으로 삼아 consistency cost를 계산
- Teacher 모델은 student 모델 파라미터를 EMA로 추적해서 만들어짐. 즉, Teacher는 직접 backprop을 받지 않음
목표: Student와 Teacher 예측이 일관성(consistency)을 유지하도록 하는 것
Virtual Adversarial Training(VAT)
- target이 pseudo-label처럼 현재 모델의 예측으로 두고, perturbation 후 예측이 달라지지 않게 학습
- 단순한 랜덤 노이즈가 아니라, adversarial direction을 계산해서 넣음
→ 가장 모델을 불안정하게 만드는 작은 방향을 택함
→ fast gradient sign method(FGSM)을 활용해서 direction 택함
- perturbation 전후의 예측 분포 차이를
KL-Divergence(=Cross Entropy Loss)로 계산해 consistency를 강제