1. Self-Supervised Learning (자기 지도 학습)
📌 개념:
- 사람이 라벨을 달지 않아도, 데이터에서 자동으로 라벨을 생성하여 학습하는 방법
- 보통 일부 데이터 특성을 예측하는 프리텍스트(pretext) 태스크를 설정하여 모델을 훈련한 후, 그 모델을 다른 실제 태스크(다운스트림 태스크)에 활용
📌 특징:
✅ 라벨 없이도 지도학습처럼 훈련 가능
✅ 프리텍스트 태스크를 설정하여 데이터에서 정보를 학습
✅ 다운스트림(task-specific) 문제 해결을 위한 사전 학습(pre-training)으로 활용
📌 예시:
- 언어 모델 (NLP)
- GPT, BERT 같은 모델이 대표적
- 단어 일부를 가리고 나머지 단어를 통해 예측하는 "Masked Language Model(MLM)" 방식
- 예: "I love [MASK] coffee" → "[MASK]"를 "drinking"으로 예측
- 컴퓨터 비전 (CV)
- 이미지의 일부를 가린 후 원래 이미지를 복원하도록 학습 (예: MAE, SimCLR, MoCo)
- 예: 퍼즐 조각을 섞어 놓고 원래 위치를 예측하도록 학습
2. Unsupervised Learning (비지도 학습)
📌 개념:
- 라벨 없이 데이터의 숨겨진 패턴을 찾는 기법
- 대표적으로 클러스터링(Clustering), 차원 축소(Dimensionality Reduction) 등의 방법이 있음
📌 특징:
✅ 데이터에서 구조를 학습하지만, 명확한 정답(라벨)이 없음
✅ 탐색적 데이터 분석, 이상 탐지(Anomaly Detection) 등에 유용
✅ 일반적으로 지도학습처럼 특정 태스크를 위한 예측 모델을 만들지는 않음
📌 예시:
- 클러스터링 (Clustering)
- K-means, DBSCAN, Hierarchical Clustering 등을 이용하여 데이터 그룹을 자동으로 찾음
- 예: 고객 데이터를 그룹화하여 마케팅 타겟 세그먼트 만들기
- 차원 축소 (Dimensionality Reduction)
- PCA(주성분 분석), t-SNE, UMAP 같은 방법을 활용하여 데이터의 중요한 특징만 남김
- 예: 고차원 이미지 데이터를 저차원 특징 벡터로 변환하여 시각화
3. Self-Supervised Learning vs. Unsupervised Learning 차이점
구분Self-Supervised LearningUnsupervised Learning
목적 | 프리텍스트 태스크를 학습하여 다운스트림 태스크 성능 향상 | 데이터의 패턴을 찾거나 그룹화 |
라벨 | 없음 (하지만 데이터에서 자동 생성) | 없음 |
학습 방식 | 프리텍스트 태스크 설정 후 학습 | 데이터 내 패턴을 직접 탐색 |
출력 결과 | 사전 학습된 모델 (추후 fine-tuning 가능) | 클러스터링 결과 또는 저차원 표현 |
대표 알고리즘 | BERT, GPT, SimCLR, MoCo, MAE | K-means, PCA, t-SNE, DBSCAN |
4. 쉽게 이해하는 비유
- Unsupervised Learning: 학생이 교재(데이터)를 보면서 스스로 패턴을 찾는 것 (어떤 개념이 중요할지 알아냄)
- Self-Supervised Learning: 교사가 문제(프리텍스트 태스크)를 만들어서 학생이 풀도록 유도하는 것 (문제를 해결하며 학습)
결론
🔹 Self-Supervised Learning은 프리텍스트 태스크를 설정하여 모델을 학습한 후, 다른 태스크에 활용하기 위한 사전학습(Pre-training) 기법
🔹 Unsupervised Learning은 데이터의 구조를 직접 분석하는 방법으로, 주로 클러스터링이나 차원 축소에 사용
👉 Self-Supervised Learning은 지도학습과 비지도학습의 중간 지점에 있는 개념으로 볼 수 있다
'컴퓨터비전' 카테고리의 다른 글
[CV] GAN에서 mode collapse 발생하는 이유는? - Generative Adversarial Network (0) | 2022.04.18 |
---|---|
[CV] ICP (Iterative Closest Point) 쉽게 핵심 정리 (0) | 2022.04.17 |