Self-Supervised Learning

이진·2024년 11월 15일

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의 장점

Self-Supervised Learning의 주요 장점은 레이블이 없는 데이터로도 학습이 가능하다는 점으로, 특히 labeled data가 부족한 환경에서 의미 있는 표현을 효과적으로 학습할 수 있습니다. 사람이 직접 레이블링을 하지 않아도 되기 때문에, 레이블링 비용과 시간을 절감하는 데 큰 기여를 하며, 대량의 데이터로부터 유용한 패턴을 발견하여 모델의 성능을 높이는 데 도움을 줍니다. 이러한 장점 덕분에, Self-Supervised Learning은 사전 학습(pre-training) 단계에서 효과적으로 활용되며, 자연어 처리, 컴퓨터 비전, 음성 인식 등 다양한 분야에서 널리 사용되고 있습니다.

Self-Supervised Learning Methods

Self-Supervised Learning은 큰 카테고리로 보면 Self-prediction과 Contrastive learning으로 나눌 수 있습니다.

먼저 Self-prediction은 하나의 data sample 내에서 한 파트를 통해 다른 파트를 예측하는 task를 말하며 Contrastive learning은 batch 내의 data sample들 사이의 관계를 예측하는 task를 말합니다.


출처, Self-prediction


출처, Contrastive learning

Self-prediction

Self-prediction은 시계열의 다음 시점을 예측하거나 데이터 전체를 복원하는 방식입니다. 최근에는 일부를 랜덤하게 마스킹한 뒤, 이를 예측 또는 복원하는 방식이 많이 사용됩니다. 주요 기법은 다음과 같습니다.

  1. AutoReressive Generation

    순차적 데이터를 기반으로 이전 정보로 다음 시점을 예측합니다. 예를 들어 언어 모델에서는 문맥을 기반으로 다음 단어를 예측합니다.

    • 예 : WaveNet(오디오), GPT와 XLNet(언어), PixelCNN(이미지)
  2. Masked Generation

    Masked Generation은 데이터 일부를 마스킹하고, 남은 정보를 통해 마스킹된 부분을 예측하도록 학습하는 방식입니다. 이 방식은 문맥 내의 연관 정보를 이해하는 데 도움을 주며, 앞뒤 문맥 정보를 모두 고려할 수 있어 관계성(relational information) 학습에 유리합니다.

    • 언어 : BERT
    • 이미지 : Denoising Autoencoder, Masked Autoencoder, SimMIM
  3. Innate Releationship Prediction

    Innate Relationship Prediction은 데이터에 특정 변을 가해도 본질적인 정보는 변하지 않는다는 가정 하에 변형된 데이터를 예측하는 방식입니다. 주로 도메인 지식이 필요한 이미지 데이터에서 자주 사용되며, 다양한 변형에 대해 일관된 표현을 학습할 수 있도록 합니다. Augmentation Invariant Feature를 학습하는 Contrastive Learning과 달리, 이 방식은 어떤 변형이 적용되었는지 예측하는 데 중점을 둡니다. 이 기법은 단독으로 쓰이기도 하지만, Contrastive Learning과 함께 보조적인 역할로 사용되기도 합니다.

    • 이미지 : 특정 회전(rotation)이 적용된 이미지를 보고 그 회전 각도를 예측하거나, 패치 단위로 분할된 퍼즐을 맞추는 방식인 Jigsaw Puzzle이 있습니다.
    • 시계열 데이터 : segment shuffle을 통해 시계열의 순서를 맞추는 방식
  4. Hybrid Self-Prediction

    Hybrid Self-Prediction은 여러 Self-Prediction 방식을 결합해 강력한 성능을 목표로 합니다. 대규모 데이터에서 효과를 발휘하며, 복합적인 방식으로 더 높은 표현력과 성능을 제공합니다. 예를 들어, VQ-GAN은 VQ-VAE, Autoregressive, Adversarial 방식을 결합해 고해상도 이미지를 생성합니다. Autoregressive 모델은 순차적 예측을, Adversarial 모델은 생성된 이미지의 품질을 높이는 역할을 하므로, 각 방식이 상호 보완적인 역할을 수행해 최적의 결과를 도출합니다.

    • Jukebox, DALL-E: VQ-VAE와 Autoregressive 방식을 결합하여 생성 작업을 수행
    • VQ-GAN: VQ-VAE, Autoregressive, Adversarial 방식을 결합하여 고해상도 이미지 생성을 목표로 하는 모델

Contrastive Learning

Contrastive Learning의 목적은 데이터 샘플 간의 invariance를 학습하는 것입니다. 이를 위해 모델은 임베딩 공간에서 유사한 샘플 쌍은 가까운 거리로, 유사하지 않은 샘플 쌍은 먼 거리로 위치시키도록 학습합니다. Contrastive Learning의 개념을 이해하기 위해 다음 용어를 알아두면 좋습니다.

  1. Anchor : 현재 기준이 되는 데이터 샘플로 query라고도 합니다.
  2. Positive pair : 기준이 되는 데이터 샘플과 같은 class를 가지는 상관관계가 높은 데이터 샘플로 key라고도 합니다.
  3. Negative pair : 기준이 되는 데이터 샘플과 다른 class를 가지는 상관관계가 낮은 데이터 샘플입니다.
  4. View : Anchor와 같은 semantic을 가지는 데이터 샘플입니다.


출처

Contrastive Learning을 아래와 같은 4가지로 나눠 설명하겠습니다.

  1. 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를 동시에 달성하여 표현 학습 성능을 높입니다.

  2. 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는 멀어지도록 학습합니다.

  3. Feature Clustering

    Feature Clustering은 Positive/Negative 쌍을 구성하는 대신, encoder가 학습한 feature로 데이터를 클러스터링하고, 각 클러스터에 pseudo-label을 부여해 학습을 진행하는 방식입니다. 이렇게 형성된 클러스터 중심을 prototype이라 부르며, 배치 내 모든 샘플을 Negative Sample로 보는 문제를 해결하는 대안으로 볼 수 있습니다. 관련된 모델로는 DeepCluster, SwAV, InterCLR 등이 있습니다.

  4. Non-contrastive Methods with Joint Embedding Architecture

    Contrastive Learning의 주요 단점 중 하나는 representation collapse를 막기 위해 많은 Negative Sample이 필요하다는 점입니다. 이를 해결하기 위해 Negative Sample 없이도 collapse를 방지하는 non-contrastive 방법들이 연구되고 있습니다.

    • BYOL & SimSiam: Teacher-Student 구조와 momentum encoder 또는 stop-gradient 기법을 활용해 안정적인 표현을 학습합니다. Negative Sample 없이도 collapse를 방지하며, predictor를 사용하여 encoder가 더 순수한 표현을 학습하게 합니다.
    • Barlow Twins & VICReg: 각 representation dimension을 분리하여 collapse를 막는 방법입니다. Barlow Twins는 Positive pair 간 cross-correlation matrix를 identity matrix에 가깝게 만드는 방식이며, VICReg는 batch 내 샘플의 variance regularization을 통해 collapse를 방지합니다.
    • DINO: BYOL과 SimSiam과 유사하게 Teacher-Student 구조를 사용하며, centering과 softmax sharpening을 통해 collapse를 방지합니다. Centering은 feature의 중심을 조정하고, sharpening은 uniform collapse를 방지하는 효과를 줍니다.

참고

profile
Victoria Concordia Crescit

0개의 댓글