MOTIVATION
딥러닝의 가장 대표적인 방법론은 supervised learning (지도학습)이다. 하지만 supservised learning은 어쩌면 학습 데이터의 패턴을 외우는 학습법에 불과하다. 그러므로 한번도 보지 않은 데이터에 대해서는 맞추기 쉽지 않다. 일반화가 잘되기 위해서는 필연적으로 더 많은 labeled data가 요구된다. 성공적으로 딥러닝을 도입한 이미지 분야의 경우도 역시 대용량 labeled 이미지를 확보했기 때문에 좋은 성능을 얻을 수 있었다고 볼 수 있다. 하지만 labeled data를 확보하기 어려운 분야들도 존재한다. labeling에 전문성이 필요하거나 labeling에 걸리는 프로세스가 긴 분야의 경우 대용량의 labeled data를 얻기 힘들 수 있다. 또한 전체 데이터에 대해 정답 라벨을 다는 작업(= 라벨링)은 많은 시간과 비용이 발생하기도 한다.
이러한 이유들로 Semi-supervised learning(준지도 학습)이라는 방법이 등장하게 된다.
Semi-supervised learning (준지도학습)은 소량의 labeled data에는 supervised learning을 적용하고 대용량 unlabeled data에는 unsupervised learning을 적용해 추가적인 성능향상을 목표로 하는 방법이다.
ASSUMPTIONS FOR SEMI-SUPERVISED LEARNING
준지도 학습을 사용하려면 데이터에 대한 다음과 같은 가정이 필요하다.
1) Manifold assumption
"고차원의 데이터를 저차원의 공간 (manifold)에서 표현할 수 있다.”
📌 개념
- 현실 세계의 데이터(이미지, 음성, 텍스트 등)는 보통 고차원(수백~수천 차원) 공간에서 표현됨.
- 하지만 실제 데이터는 이 차원 전체를 다 사용하는 게 아니라 훨씬 낮은 차원의 구조(다양체, Manifold) 위에 놓여 있다고 가정.
- 즉, 데이터가 분포하는 공간이 저차원의 곡면(Manifold)처럼 구성되어 있다는 가정.
- 우리가 직접 모든 데이터를 라벨링하지 않아도 데이터가 저차원 manifold에 존재한다면, 비슷한 위치의 데이터는 같은 label을 가질 확률이 높음.
- 즉, labeled 데이터가 일부만 있어도 unlabeled 데이터를 올바르게 분류하는 데 도움이 됨.
💡 예제
- 사람 얼굴 이미지는 수백만 개의 픽셀(고차원)이지만, 실제로 얼굴의 표정, 조명, 각도 등의 몇 개의 중요한 요소만 변화하면 대부분 설명할 수 있음.
→ 즉, 얼굴 데이터는 엄청난 차원이 아니라 훨씬 낮은 차원의 manifold에 존재한다고 볼 수 있음. - 손글씨 숫자 (MNIST 데이터)도 픽셀 하나하나는 784차원이지만, 실제로 손글씨의 형태 변화는 몇 개의 핵심 패턴만으로 표현 가능함.
2) Smoothness assumption
"다차원 공간 상에서 가까운 거리에 있는 샘플들은 label이 같을 것이다."
📌 개념
- 데이터가 서로 가까우면 같은 label을 가질 가능성이 높다.
- 즉, 데이터의 분포가 매끄럽게 변한다고 가정.
- 한 점에서 label이 결정되면, 그 주변의 데이터들도 비슷한 label을 가져야 함.
💡 예제
- 색깔 변화가 부드러운 사진을 생각해보자.
→ 빨간색 픽셀 근처의 픽셀도 대부분 빨간색일 가능성이 높다. - 손글씨 숫자 데이터에서도 비슷한 필체의 숫자는 같은 label일 확률이 높음.
3) Cluster assumption
"데이터는 클러스터를 형성할 것이며, 같은 클러스터에 속한 샘플은 같은 label 을 공유할 가능성이 높다"
📌 개념
- 데이터가 임의로 흩어져 있는 게 아니라 비슷한 데이터들끼리 그룹(클러스터)을 형성한다.
- 같은 클러스터 안에 있는 데이터들은 같은 label을 가질 확률이 높음.
💡 예제
- 고양이, 개, 자동차의 사진 데이터가 있다고 가정하자. → 비슷한 동물 사진끼리는 한 그룹, 자동차 사진끼리는 또 다른 그룹을 이룰 것임.
→ 이런 경우, 한 클러스터 안의 데이터들은 같은 label일 확률이 높음. - 손글씨 숫자 데이터(MNIST)도 비슷한 모양의 숫자들은 서로 가깝게 모여 있을 것.
정리
가정 | 개념 | 준지도 학습에서의 역할 |
Manifold Assumption | 고차원 데이터가 사실 저차원 manifold에 존재 | 모델이 데이터를 더 효과적으로 학습할 수 있도록 도움 |
Smoothness Assumption | 가까운 데이터들은 같은 label을 가짐 | labeled 데이터가 일부만 있어도, 근처 데이터들의 label을 예측 가능 |
Cluster Assumption | 같은 클러스터에 속한 데이터들은 같은 label을 가질 확률이 높음 | 클러스터 내의 labeled 데이터로 unlabeled 데이터들의 label을 유추 가능 |
CONSISTENCY REGULARIZATION
Motivation : “같은 데이터에 작은 변화를 주더라도 예측이 일관되어야 한다.”
- 데이터가 조금만 달라져도 결과가 크게 바뀌면 일반화(generalization)가 안 되는 모델이 된다. 따라서, 작은 변화에도 모델이 안정적인 출력을 내도록 학습하는 게 중요하다.
- 이를 위해 Perturbation(교란)과 Data Augmentation(데이터 증강)을 사용하여 모델을 튼튼하게 만든다.
- Perturbation (교란)
- 데이터에 작은 변화를 주어도 모델이 같은 예측을 하도록 유도하는 기법
- 입력 데이터에 약간의 변형(perturbation)을 가하지만, 라벨은 그대로 유지
- Data Augmentation (데이터 증강)
- 데이터를 변형하여 새로운 데이터를 생성하여 학습에 추가하는 기법
- 데이터 개수를 늘리기 위해 변형을 가한 데이터를 추가
(1) Π-model (ICLR 2017)
“Phi” ~= perturbation
모델이 같은 입력 데이터에 대해 약간의 변화(Perturbation)를 주더라도 같은 출력을 내도록 학습시키는 방법이다. 즉, 노이즈가 추가된 데이터에서도 모델이 일관된 예측을 하도록 하는 consistency loss(일관성 손실)를 사용한다. Perturbation을 적용한 데이터(Φ)와 원본 데이터의 예측값 차이를 줄이는 것이 목표이다.
단점 : 모델의 현재 시점 prediction만 사용
➔ prediction이 불안정하면 학습 target (consistency loss) 도 불안정해짐
Π-model은 입력 데이터에 작은 변형(perturbation)을 가한 두 개의 입력을 만들어 동일한 출력을 내도록 강제한다.
이 과정에서 consistency loss를 이용하여 모델을 학습함.
📌 학습 과정
- 같은 입력 x에 대해 두 개의 변형된 버전을 만듦.
- 하나는 원본 데이터 x
- 다른 하나는 작은 변형(perturbation, )을 추가한 데이터 x′
(x′=x+노이즈)
- 모델이 x와 x′에 대해 각각 예측값 p(x)와 p(x′)을 생성.
- 두 예측값이 일관되도록 consistency loss(일관성 손실)을 적용하여 학습.
🚨 문제점 : 모델의 현재 시점 prediction만 사용함
- Π-model은 현재 모델이 예측한 결과를 기반으로 일관성을 강제함.
- 하지만, 초기 모델이 잘못된 예측을 하면, 그 잘못된 예측이 계속 학습되면서 consistency loss가 불안정해지는 문제가 발생.
💡 왜 이런 문제가 발생할까?
Π-model은 라벨이 없는 데이터(Unlabeled Data)에 대해 "자기 자신의 예측을 학습"하는 방식이다.
즉, 모델이 초기에는 불완전한 예측을 하므로, 잘못된 예측값을 consistency loss로 사용하면 학습이 제대로 이루어지지 않을 수 있음.
✔ 예제:
- 만약 모델이 초기에 x를 고양이(0.8), x′를 강아지(0.7)로 예측했다면?→ "두 예측값이 일치하도록 만들라"는 손실이 작동하지만, 이미 예측이 잘못되었으므로 잘못된 방향으로 학습될 수 있음.→ 결국 잘못된 예측이 강화되면서 모델이 오히려 나빠질 가능성이 있음.
(2) Temporal Ensembling (ICLR 2017)
👉 Π-model의 단점을 해결하기 위해 등장한 준지도 학습 기법
앞서 본 Π-model에서는 현재 모델이 예측한 값을 consistency loss(일관성 손실)에 사용했음.
하지만 초기 모델의 예측이 불안정하면, 그 잘못된 예측이 강화되는 문제가 발생.
Solution : 이전 epoch에서 얻은 데이터의 prediction 값을 누적하여 사용한다. 이렇게 하면 단일 epoch에서 나온 불안정한 예측값을 바로 사용하지 않고, 시간이 지나면서 점진적으로 더 나은 예측을 하게 됨.
EMA ( Exponential Moving Average )
📌 학습 과정
- 각 데이터에 대한 예측값을 저장하는 변수 zt를 유지 (모든 데이터에 대해 누적 예측값을 저장).
- 매 epoch마다 새로운 예측값 pt을 계산.
- 기존 누적 예측값 zt와 현재 예측값 ptp_t를 EMA (Exponential Moving Average) 방식으로 업데이트.
zt+1 = αzt+(1−α)pt
- α는 decay factor (보통 0.6~0.9 사이로 설정).
- zt는 현재까지 누적된 예측값, pt는 현재 epoch의 예측값.
- EMA 방식으로 이전 예측을 기억하면서 새로운 정보를 조금씩 반영.
- 업데이트된 zt를 새로운 pseudo-label(target)로 사용하여 consistency loss를 계산.
- 라벨이 없는 데이터도 더 신뢰할 수 있는 pseudo-label을 사용하여 학습.
EMA (Exponential Moving Average, 지수 이동 평균)란?
-> 최근 예측값보다 과거 예측값을 더 적게 반영하면서 점진적으로 평균을 구하는 방법.
📌 왜 EMA를 사용하나?
- 단순 평균(Arithmetic Mean)을 사용하면 과거 예측값을 동일한 비율로 반영해야 함.
- 하지만 EMA를 사용하면 최근 예측값을 더 크게 반영하고, 오래된 예측값의 영향은 점차 줄어듦.
- 이렇게 하면 예측값이 점진적으로 수렴하면서 안정적인 pseudo-label을 제공할 수 있음.
🚨 문제점 : 모든 데이터의 prediction을 저장해야 하므로 메모리 사용량이 큼
- 각 데이터에 대한 누적 예측값 zt를 저장해야 함 → 데이터가 많을수록 메모리 부담 증가.
- 특히 대규모 데이터셋에서는 모든 샘플에 대한 예측값을 저장하는 것이 부담스러울 수 있음.
(3) Mean teacher (NeurIPS 2017)
👉 Π-model과 Temporal Ensembling의 단점을 해결한 준지도 학습 방법
👉 Solution : 모델의 예측값이 아니라 모델의 가중치(Weights)에 EMA(Exponential Moving Average)를 적용하여 안정적인 Teacher 모델을 생성
📌 역할
- Student Model
- 일반적인 신경망 모델.
- Gradient Descent(경사 하강법)으로 학습되므로 예측이 불안정(Unstable)할 수 있음.
- θt: 현재 모델(Student)의 가중치.
- Teacher Model
- Student 모델의 가중치를 EMA(Exponential Moving Average)로 누적 업데이트하여 생성한 모델.
- 예측이 불안정한 Student 모델 대신 더 부드럽고(stable) 일관된 pseudo-label을 제공.
- θt′: Teacher 모델의 가중치.
- 는 EMA의 decay factor (보통 0.99 정도로 설정).
- θt−1′은 이전 Teacher 모델의 가중치.
- θt는 현재 Student 모델의 가중치.
📌 학습 과정
- Student 모델이 학습 데이터(라벨 있음/없음)를 사용하여 경사 하강법(Gradient Descent)으로 학습.
- Teacher 모델은 Student 모델의 가중치를 EMA 방식으로 업데이트하여 더 안정적인 모델이 됨.
- 두 모델의 예측값이 일관되도록 consistency loss(일관성 손실)을 적용하여 학습.
- Student 모델과 Teacher 모델의 예측이 최대한 비슷하도록 유도.
➔ Stable, smoothed target 제공
Mean Teacher의 장점
1) 더 안정적인 pseudo-label 제공
- Π-model과 Temporal Ensembling은 현재 예측값을 사용하여 consistency loss를 계산했음.
- 하지만 Mean Teacher는 가중치를 누적하여 안정적인 Teacher 모델을 사용 → 더 신뢰할 수 있는 target 제공.
2) 메모리 효율적
- Temporal Ensembling은 모든 데이터의 예측값을 저장해야 해서 메모리 부담이 컸음.
- Mean Teacher는 오직 가중치(Weight)만 EMA로 누적하기 때문에 메모리 사용량이 훨씬 적음.
3) 준지도 학습에서 효과적으로 사용 가능
- Teacher 모델이 더 정확한 예측을 하므로 라벨이 없는 데이터도 학습에 활용 가능.
- 실제 실험에서도 다른 준지도 학습 방법보다 성능이 더 좋았음.
“Mean teachers are better role models”
θ𝒕 = αθ’𝒕−𝟏 + (1 − α)θ𝒕
참고 : https://sanghyu.tistory.com/177
Semi-supervised learning (준지도학습): 개념과 방법론 톺아보기
Semi-supervised learning overview 논문 [14-16] 및 여러 방법론 관련 논문들 [1-13] 읽으며 얻은 지식을 바탕으로 글로 정리해보려고 한다. 오랜만에 쓰는 기술글이라 설렌다!! 나도 처음 공부하는 분야이기
sanghyu.tistory.com
https://arxiv.org/pdf/1610.02242
https://arxiv.org/pdf/1703.01780
'AI' 카테고리의 다른 글
[Pytorch] 반지도 학습 구현해보기 - PyTorch 주요 함수 이해하기 (0) | 2025.03.20 |
---|---|
Residual Block 이해하기 (0) | 2025.02.21 |
Batch, Step, Epoch 이해하기 (1) | 2025.02.20 |
[논문] A Survey of Resource-efficient LLM and Multimodal Foundation Models (0) | 2025.02.13 |
[Object Detection] R-CNN, Fast R-CNN, Faster R-CNN (2) | 2024.12.18 |