Skip to content

Self-supervised Learning

Self-supervised Learning은

  • label이 없는 대량의 data에서 data 자체적에서 labeling이 가능한 학습과제(pretext task) 생성
  • pretext task 학습(supervised learning)을 통해 (main task에) 의미 있는 representation을 획득: similar problem.
  • representation 을 생성하는 모델을 pre-training 모델이라고 부름.
  • 획득한 representation을 직접 feature vector로 사용하는 downstream model을 main task 로 훈련: main task를 훈련시키기 위한 labeled data 필요.
  • 최근엔 pre-training model 에서 knowledge transfer를 수행하고, main task 에 대한 labeled data로 model을 tweak 및 fine-tuning을 수행하는 방법이 선호됨: 이 때 tweak(조정)에는 모델의 구조 및 하이퍼 파라미터 수정도 포함됨.

Self-supervised Learning은 일종의 transfer learning이라고도 볼 수 있으며, main task에서 활용 가능한 labeled data가 매우 적은 상황에서도 효과적으로 main task를 해결하는 기계학습 방법임.


사용되는 경우

Self-supervised Learning은 다음과 같은 상황에서 주로 사용됨.

  • label이 없는 데이터가 label이 있는 데이터보다 훨씬 많을 때
  • 원래 풀고자 하는 task(main task)를 위한 labeled dataset의 샘플 수가 모델을 훈련시키기에 부족할 때

구성 단계

Self-supervised Learning은 다음의 단계로 모델을 훈련시킴.

  1. Pretext task 설정 및 학습
    • 수가 많은 Unlabeled dataset을 Labeled dataset으로 변경시킬 수 있는 사전 과제(pretext task, 보조과제라고도 불림)를 설정.
    • 데이터 자체에서 labeling하고 이 labeled data로 모델을 훈련
    • 일종의 pre-training 으로 볼 수 있음.
    • 원래 main task 관점에서는 label 이 없는 dataset이지만, pretext task 덕에 labeled dataset 이 되며
    • 결국 자동으로 생성된 labeled data를 이용한 supervised learning 으로 representation learning이 가능해짐: pretext task 로 학습된 것이라 main task를 직접 수행하진 못함.
    • 하지만, pretext task가 main task와 유사하거나 이를 수행하기 위한 representation을 얻을 수 있는 관련성을 가진 경우라면 해당 모델로 얻은 representation을 main task에 적용가능함.
  2. Main task에 맞춘 knowledge transfer
    • 해당 모델을 main task에 맞게 knowledge transfer를 수행 : tweak 및 fine-tuning 포함.
    • 대부분 모델의 출력단의 구조가 변경됨: downstream model (layer) 이 main task의 출력에 맞게 변경됨.
    • 이 과정에서는 main task에 맞게 label이 주어진 소수의 dataset을 사용하여 훈련이 이루어짐.
    • 이는 knowledge transfer의 tweak 및 fine-tuning과 비슷함.

Pretext Task

Pretext task는 데이터 자체에서 매우 쉽게 label을 만들어낼 수 있어야 하며, 동시에 main task에 도움이 되는 representation을 학습할 수 있어야 함.

  • 문장의 일부를 가리고 그 부분을 예측하게 하는 BERT모델의 사전훈련 단계에서 pretext task인 Masked Language Modeling을 대표적 예로 들 수 있음.
  • pretext task를 잘 수행하도록 훈련되는 모델은 해당 dataset의 중요한 특징들을 학습하게 됨: 해당 특징들은 main task를 수행하는데에 관련이 있도록 pretext task가 설정되어야 함.
  • 반드시 pretext task로 학습된 내용은 main task를 수행하는 데에 도움이 되어야 함.

장점

Self-supervised Learning의 장점:

  • label 없는 대량의 데이터를 활용 가능
  • 데이터의 일반적인 특징(representative feature)을 잘 학습할 수 있음
  • 주요 과제에 적용 시 적은 양의 레이블된 데이터로도 좋은 성능 달성 가능

결론

Self-supervised Learning

  • dataset의 관점에서 pretext task에 대한 훈련은 레이블 없는 데이터를 사용하므로, 일종의 unsupervised learning 이라고도 볼 수 있음.
  • 하지만 해당 학습 과정은 supervised learning임.
    • pretext task: 자체적으로 label을 생성하고 나서 수행되므로 지도 학습(supervised learning) 기법으로 진행됨.
    • main task: 최종 모델을 훈련시킬 때에도 (소량의) labeled dataset을 사용하는 supervised learning 이 수행됨.
  • 일종의 전이 학습(transfer learning)의 한 형태 로 볼 수 있음.​​​​​​​​​​​​​​​​

즉, self-supervised learning이 적용되는 task 는 사실상 supervised learning과 같음.

Unsupervised Learning의 task 가 주로 clustering, dimensionality reduction, novelty (or outlier) detection 인 점을 주의할 것.
Self supervised Learning 은 task의 관점에서 unsupervised learning과 차이를 보이고, 주어진 dataset 의 측면에서 supervised learning과 차이를 가짐.


참고 자료들.