일반적으로 Supervised Learning(지도학습)이 높은 성능의 모델을 만드는 것이 유리하지만, 수많은 데이터에 label을 전부 달아야 한다는 점에서 데이터셋 모으기가 어려우며 따라서 활용하는 방법도 제한적일 수밖에 없다.
이와 같은 문제를 해결하고자 나온 방법으로
1) Semi-Supervisd Learning
: 아주 일부분만 label이 존재하는 데이터셋을 사용
2) Unsupervised Learning
:label이 전혀 없는 데이터셋을 사용
<정의>
<기본 step>
1) pre-trained Model 생성
: 다량의 untagged data를 통해 전반적인 data의 특징(feature)를 추출하고 학습하는 model 생성
: label이 없는 데이터를 이해하도록 사전 정의 된 pretext task를 위한 임의의 label을 만들어 model을 학습하거나 데이터 간의 관계를 이용하여 학습
: pre-trained model을 바탕으로 dataset을 representation learning하여 다음 step에 전이 시킴.
2) Downstream task
: 사전학습된 소량의 tagged data만으로 semantic representation 을 찾아 좋은 성능을 위한 transfer learning 시행
<연구과정>
1. Pretext task(연구자가 직접 만든 task)를 정의한다.
2. Label이 없는 데이터셋을 사용하여 1의 Pretext task를 목표로 모델을 학습시킨다.
이때, 데이터 자체의 정보를 적당히 변형/사용하여 (label은 아니지만) 이를 supervision(지도)으로 삼는다.
3. 2에서 학습시킨 모델을 Downstream task에 가져와 weight는 freeze시킨 채로 transfer learning을 수행한다(2에서 학습한 모델의 성능만을 보기 위해).
4. 그래서 처음에는 label이 없는 상태에서 직접 supervision을 만들어 학습한 뒤, transfer learning 3단계에서는 label이 있는 ImageNet 등에서 Supervised Learning을 수행하여 2에서 학습시킨 모델의 성능(feature를 얼마나 잘 뽑아냈는지 등)을 평가하는 방식이다.