Semi-Supervisd Learning

금나현·2022년 4월 29일
0

일반적으로 Supervised Learning(지도학습)이 높은 성능의 모델을 만드는 것이 유리하지만, 수많은 데이터에 label을 전부 달아야 한다는 점에서 데이터셋 모으기가 어려우며 따라서 활용하는 방법도 제한적일 수밖에 없다.
이와 같은 문제를 해결하고자 나온 방법으로

1) Semi-Supervisd Learning
	: 아주 일부분만 label이 존재하는 데이터셋을 사용
2) Unsupervised Learning
	:label이 전혀 없는 데이터셋을 사용

<정의>

  • 레이블링 된 데이터셋으로 모델을 학습하는 지도학습과 달리, 다량의 레이블이 없는 원데이터로부터 데이터 부분들의 관계를 통해 레이블을 자동으로 생성하여 지도학습에 이용 (비지도학습 기법 중 하나)
  • 데이터의 일부분을 은닉하여 모델이 그 부분을 예측하도록 학습
  • pretext task: 딥러닝 네트워크가 어떤 문제를 해결하는 과정에서 데이터 내의 semantic한 정보를 이해할 수 있도록 학습하게 하는 임의의 task (내가 임의로 정의함)
  • 레이블이 없는 데이터를 이해하도록 pretext task를 위한 레이블을 직접 생성하여 모델을 학습하거나 데이터 간의 관계를 이용하여 학습
  • 이렇게 사전학습된 모델을 데이터셋을 representation learning하여 다른 태스크로 전이시켜 사용
    ⇒ 새로운 태스크에서 소량의 데이터만으로 semantic representation을 찾게 하여 좋은 성능을 내는 전이학습(transfer learning)

<기본 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를 얼마나 잘 뽑아냈는지 등)을 평가하는 방식이다.

profile
AI researcher를 꿈꾸는 간호사입니다 :)

0개의 댓글