Self-Supervised Learning은 레이블이 없는 데이터셋으로부터 의미 있는 표현(representation)을 학습하는 방법으로, 레이블링 없이도 자체적인 라벨을 생성하여 Supervised 방식으로 학습을 수행할 수 있습니다. 이 접근법은 대량의 unlabeled 데이터로도 효과적인 학습이 가능하여 주목받고 있습니다.
Self-Supervised Learning에서는 pretext task라는 학습 과제를 설정하여 데이터 내에서 예측할 수 있는 요소를 정의합니다. 이를 통해 모델은 스스로 학습을 진행할 수 있습니다. 아래와 같은 예시가 있습니다.
이와 같은 pretext task를 통해 학습된 모델은 downstream task에도 적용할 수 있으며, 모델의 품질은 downstream task에서의 성능으로 평가됩니다. 예를 들어, pretext task로 학습한 모델이 이미지 분류, 객체 탐지, 텍스트 분류 등의 실제 응용 문제(downstream task)에서 얼마나 잘 작동하는지를 통해 모델의 유용성을 판단합니다. 이러한 특징 때문에 Self-Supervised Learning은 기존 Unsupervised Learning과 달리, downstream task의 성능을 기준으로 모델의 품질을 평가하는 차별점을 가집니다.
Self-Supervised Learning의 주요 장점은 레이블이 없는 데이터로도 학습이 가능하다는 점으로, 특히 labeled data가 부족한 환경에서 의미 있는 표현을 효과적으로 학습할 수 있습니다. 사람이 직접 레이블링을 하지 않아도 되기 때문에, 레이블링 비용과 시간을 절감하는 데 큰 기여를 하며, 대량의 데이터로부터 유용한 패턴을 발견하여 모델의 성능을 높이는 데 도움을 줍니다. 이러한 장점 덕분에, Self-Supervised Learning은 사전 학습(pre-training) 단계에서 효과적으로 활용되며, 자연어 처리, 컴퓨터 비전, 음성 인식 등 다양한 분야에서 널리 사용되고 있습니다.
Self-Supervised Learning은 큰 카테고리로 보면 Self-prediction과 Contrastive learning으로 나눌 수 있습니다.
먼저 Self-prediction은 하나의 data sample 내에서 한 파트를 통해 다른 파트를 예측하는 task를 말하며 Contrastive learning은 batch 내의 data sample들 사이의 관계를 예측하는 task를 말합니다.

출처, Self-prediction

출처, Contrastive learning
Self-prediction은 시계열의 다음 시점을 예측하거나 데이터 전체를 복원하는 방식입니다. 최근에는 일부를 랜덤하게 마스킹한 뒤, 이를 예측 또는 복원하는 방식이 많이 사용됩니다. 주요 기법은 다음과 같습니다.
AutoReressive Generation
순차적 데이터를 기반으로 이전 정보로 다음 시점을 예측합니다. 예를 들어 언어 모델에서는 문맥을 기반으로 다음 단어를 예측합니다.
Masked Generation
Masked Generation은 데이터 일부를 마스킹하고, 남은 정보를 통해 마스킹된 부분을 예측하도록 학습하는 방식입니다. 이 방식은 문맥 내의 연관 정보를 이해하는 데 도움을 주며, 앞뒤 문맥 정보를 모두 고려할 수 있어 관계성(relational information) 학습에 유리합니다.
Innate Releationship Prediction
Innate Relationship Prediction은 데이터에 특정 변을 가해도 본질적인 정보는 변하지 않는다는 가정 하에 변형된 데이터를 예측하는 방식입니다. 주로 도메인 지식이 필요한 이미지 데이터에서 자주 사용되며, 다양한 변형에 대해 일관된 표현을 학습할 수 있도록 합니다. Augmentation Invariant Feature를 학습하는 Contrastive Learning과 달리, 이 방식은 어떤 변형이 적용되었는지 예측하는 데 중점을 둡니다. 이 기법은 단독으로 쓰이기도 하지만, Contrastive Learning과 함께 보조적인 역할로 사용되기도 합니다.
Hybrid Self-Prediction
Hybrid Self-Prediction은 여러 Self-Prediction 방식을 결합해 강력한 성능을 목표로 합니다. 대규모 데이터에서 효과를 발휘하며, 복합적인 방식으로 더 높은 표현력과 성능을 제공합니다. 예를 들어, VQ-GAN은 VQ-VAE, Autoregressive, Adversarial 방식을 결합해 고해상도 이미지를 생성합니다. Autoregressive 모델은 순차적 예측을, Adversarial 모델은 생성된 이미지의 품질을 높이는 역할을 하므로, 각 방식이 상호 보완적인 역할을 수행해 최적의 결과를 도출합니다.
Contrastive Learning의 목적은 데이터 샘플 간의 invariance를 학습하는 것입니다. 이를 위해 모델은 임베딩 공간에서 유사한 샘플 쌍은 가까운 거리로, 유사하지 않은 샘플 쌍은 먼 거리로 위치시키도록 학습합니다. Contrastive Learning의 개념을 이해하기 위해 다음 용어를 알아두면 좋습니다.
Contrastive Learning을 아래와 같은 4가지로 나눠 설명하겠습니다.
Background and Theories
Contrastive Learning은 Siamese Network에서 발전했습니다. Siamese Network는 두 개의 augmented view간의 공통 정보(semantic part)를 추출하여 학습합니다. 이 과정에서 같은 의미를 유지하는 다양한 변형에 대해 distance를 최소화하며, 중요하지 않은 정보는 무시합니다.
하지만 단순히 distance-based loss를 사용하면 모델이 representation collapse(모든 샘플이 같은 표현을 갖는 현상)를 일으킬 수 있습니다. 이를 해결하기 위해 Negative Sample을 포함한 Contrastive Learning이 등장했으며, InfoNCE와 같은 loss가 대표적입니다. InfoNCE는 view 간 mutual information을 최대화하며, alignment와 uniformity를 동시에 달성하여 표현 학습 성능을 높입니다.
Inter-sample Classification (Instance Discrimination)
Contrastive Learning은 인스턴스를 구별하는 classification task로 볼 수 있습니다. Anchor와 Positive/Negative pair를 구별하는 것이 목표이며, 대표적인 예로 MoCo와 SimCLR이 있습니다.
SimCLR에서는 Positive pair는 다양한 augmentation을 통해 생성된 원본의 변형 버전이며, Negative pair는 같은 배치 내 다른 샘플로 설정합니다. Negative Sample의 수가 많을수록 representation collapse를 방지하는 데 유리하기 때문에, batch size를 크게 하거나 MoCo처럼 queue 구조를 활용하기도 합니다.
이 과정에서 Triplet loss나 InfoNCE와 같은 loss를 사용해 Positive는 가까워지고 Negative는 멀어지도록 학습합니다.
Feature Clustering
Feature Clustering은 Positive/Negative 쌍을 구성하는 대신, encoder가 학습한 feature로 데이터를 클러스터링하고, 각 클러스터에 pseudo-label을 부여해 학습을 진행하는 방식입니다. 이렇게 형성된 클러스터 중심을 prototype이라 부르며, 배치 내 모든 샘플을 Negative Sample로 보는 문제를 해결하는 대안으로 볼 수 있습니다. 관련된 모델로는 DeepCluster, SwAV, InterCLR 등이 있습니다.
Non-contrastive Methods with Joint Embedding Architecture
Contrastive Learning의 주요 단점 중 하나는 representation collapse를 막기 위해 많은 Negative Sample이 필요하다는 점입니다. 이를 해결하기 위해 Negative Sample 없이도 collapse를 방지하는 non-contrastive 방법들이 연구되고 있습니다.