이번에 정리할 내용은 Unsupervised Pre-training / Representation Learning과 관련된 내용이다. 이 파트는 우리가 메타러닝적으로 모델을 학습시킬 때, 만약 Task 자체가 많이 없거나 라벨이 없는 데이터만을 가지고 있을 때 어떤식으로 모델을 잘 학습할 수 있을지에 대해 다룬다. 일반적인 지도학습 모델보다 현실에서 직면할 수 있는 문제를 해결하고자 하는 방법론이라고 생각하면 좋다.
우리가 라벨이 없는 하나의 데이터 셋만을 가지고 있을 때, 문제를 해결하는 가장 좋은 방법은 Unsupervised Pre-training을 통해 학습한 모델(Representation)을 가지고 Few-shot이나 Meta-learning 기법을 활용한 Fine-Tuning을 수행하는 것이다(라벨이 없을 때에는 지도학습이 어렵기 때문).
Unsupervised Pre-training을 통해 좋은 Representation을 만드는 방법론에는 크게 2가지가 존재한다.
1. Contrastive (Self-supervised) Learning
비슷한 예시는 비슷한 Representation을 가진다는 생각에서 비롯된 방법론으로, Positive Pair는 비슷한 Feature를 가지기 때문에 Positive Pair끼리의 거리가 Negative Pair의 거리보다 가깝도록 모델을 설계한다.
이 때 Positive/Negative Pair를 어떻게 구성할 것인지, Contrastive Loss를 어떻게 구성할 것인지가 중요하다. 따라서 데이터의 라벨이 있다면 상관이 없겠지만, 라벨이 없는 경우에는 Augmentation을 통해 Positive Pair를 구성하거나 가까운 Image Patch, Video Frame을 같은 라벨로 구성하기도 한다.
대표적인 Contrastive Loss는 Face Recognition에서 많이 사용되는 Triplet Loss, InfoNCE Loss로 Positive Pair는 가깝게, Negative Pair는 멀게 위치하도록 수식을 구성한다.
그럼 이제 대표적인 모델을 소개하도록 하겠다.
(1) SimCLR
- Contrastive Learning을 기반으로 한 Self-supervised Framework
- Augmentation을 활용하여 같은 이미지에서 생성된 Positive Pair는 가깝게, Negative Pair는 멀도록 모델을 학습한다.
- 단점으로는 많은 Negative Pair를 고려해야 하기 때문에 Batch Size가 커야하고 때문에 학습이 오래 걸린다는 점이 있다. 또한 Augmentation 성능이 모델 성능을 좌우하는 문제도 가지고 있다.
(2) MOCO(Momentum Contrast)
- SimCLR가 가지는 Large Batch Size를 필요로 한다는 문제를 해결하기 위해 등장한 모델이다.
- 이전 Batch를 Keep한다는 아이디어가 기반이 되며 Momentum 기반으로 Contrast를 수행한다.
- Key-Value 구조를 활용하여 Dynamic Queue, Momentum Update를 통해 Negative Sample을 효율적으로 관리한다.
- Dynamic Queue: 이전 Feature 들을 Queue 형태로 쌓아둠 → 새로운 Key가 추가되면 가장 오래된 샘플이 제거(FIFO)
- 현재 Batch에서 Query Encoding을 수행하는 Query Encoder와 Queue에 저장된 Key에 대해 Encoding을 수행하는 Key Encoder가 존재하는데, 이 때 Queue에 저장된 Key(이전 Batch 샘플)를 Negative Sample로 활용한다.
- 이 때 Key Encoder는 Momentum Update를 통해 느리게 업데이트되어 안정적인 학습이 가능하다.
(3) SwAV
- Clustering 방식을 추가한 방법론을 차용. Pseudo Class를 만들어서 사용한다.
2. Non-Contrastive (Self-supervised) Learning
(1) BYOL(Bootstrap Your Own Latent)
- Negative Pair를 사용할 경우 Collapse가 일어나 Distance가 0으로 갈 수 있기 때문에, Negative Pair를 사용하지 않는다.
- Positive Pair 만을 사용하여 Online Network, Target Network를 사용하여 두 네트워크를 통과한 Representation이 비슷해지도록 학습을 수행한다.
- Target Network에서는 Momentum Update를 수행하여 느리게 학습되기 때문에 Collapse가 발생하지 않는다.
여기서 Collapse는 모델이 모든 입력에 동일한 결과를 내는 상태라고 생각하면 된다.
(2) SimSiam
- Momentum Encoder를 사용하지 않은 BYOL
- Negative Pair를 사용하지 않은 SimCLR 라고 생각하면 편하다.
→ 즉, 두 모델의 장점만을 뽑아 결합한 모델!
- Collapse를 방지하기 위해 Stop-grad를 사용하였으며 EM(Expectiation-Maximization) 알고리즘을 기반으로 한다.
※ 모델 관련 도식
- Contrastive Learning의 장점: General, Effective, Augmentation을 활용해 Domain Knowledge 통합 가능
- Contrastive Learning의 단점: Negative를 선택하기가 어려움, Large Batch가 필요, 데이터에 성능 좌우
Contrastive Learning을 메타러닝에 적용할 때(SimCLR 예시)
- SimCLR는 Minibatch 당 1개의 Task vs Meta-Learning은 Multiple Task
- SimCLR는 Sample의 모든 Pair를 비교 vs Meta-Learning은 Support Example에 대해서만 Query를 비교
3. Reconstruction-based Learning
Input Data를 가지고 좋은 Representation을 뽑았다면, 그걸 다시 Reconstruction하는 데에 충분한 정보를 담고 있을 것이다.
ex. AutoEncoder
→ 비교적 간단하고 Positive/Negative Pair가 필요하지 않지만, Bottleneck 디자인이라는 점과 Few-shot Task에서 성능이 떨어진다는 단점이 있다.
Q: Encoder가 High-level Feature를 더 잘 잡게 만들기 위해서는 어떻게 해야할까?
→ Task를 더 어렵게 만들면 된다!! (ex. Bert, MAE, Autoregressive Model 처럼 Input을 Masking)
본 개념 정리 글은 제가 수업을 듣고 이해한 내용과 인터넷 검색을 통해 찾은 정보를 바탕으로 작성되었습니다. 잘못된 개념이 있다면 언제든 알려주시면 감사하겠습니다.
'AI & CS 지식 > 메타러닝' 카테고리의 다른 글
[메타러닝] 11. Advanced Meta-Learning (0) | 2025.02.28 |
---|---|
[메타러닝] 9. In-Context Learning (0) | 2025.02.15 |
[메타러닝] 8. Continual Learning (0) | 2025.02.07 |
댓글