Downstream Task?

hyunsooo·2021년 12월 9일
0

Downstream task를 이해하기 전, 우선 pre-trained와 fine-tuning의 개념에 대해 알아야 합니다.
쉽게 이해하기 위해 Computer Vision분야에서 예를 들어 이야기해 보겠습니다.

pre-trained / fine-tuning

A라는 모델을 동물을 인식하는 모델이라고 할때, 동물 사진에서 고양이를 인식하는 B모델에 사용할 수 있습니다. 이때 A모델은 사전에 훈련(pre-trained)되어 지고 이 모델을 가지고 고양이를 인식하는 모델에 사용는 것 입니다. 이 과정을 전이학습(Transfer Learning) 이라고 표현합니다.

A모델이 사전에 훈련되어져 있다면 이 모델의 Feature들은 동물에 대한 정보들이 담겨 있을 것이고 이 정보들은 고양이를 분류하는 특징들과 유사한 점이 많습니다. 이 사전에 학습되는 모델을 활용하여 새로운 모델을 학습하는 과정을 Fine-tuning이라고 표현합니다.

Fine-tuning의 전략으로는 아래와 같습니다.

  1. 사전 학습된 모델의 영역을 제외한 부분만 학습시킨다.

자연어처리에서 사전학습된 BERT를 사용하여 이 sequence가 긍정인지 부정인지 분류하는 문제를 푼다고 생각해 봅시다.
이 상황에서 BERT라는 모델은 어마어마한 sequence데이터를 통해 사전 학습된 모델이 됩니다.
저는 sequence데이터를 통해 긍,부정 분류를 하는 모델을 만들고 싶을때 BERT라는 모델을 사용하여 새로운 모델을 만들 수 있습니다. BERT의 CLS토큰의 출력에 FC층을 이어 분류 문제에 접근 할 수 있습니다.
여기서 제가 가진 데이터셋이 너무 작거나, 내가 가진 데이터셋이 사전학습 모델이 학습한 데이터셋과 유사하거나 또는 컴퓨터의 연산 능력이 부족할때 제가 FC층만 학습하도록 fine-tuning 할 수 있습니다.
만약 데이터가 너무 작을 때 전체 모델을 새로 학습시킨다면 over-fitting문제가 발생할 수 있습니다.
또한 learning rate의 값을 사전학습된 모델의 1/10값으로 사용하여 기존 정보들이 새롭게 업데이트 되는 것을 막아줍니다.

  1. 전체 모델을 새로 학습시킨다.

BERT모델의 구조만 사용하여 내가 가진 데이터셋에 맞게 전부 새롭게 학습시키는 방법을 말합니다.
이 방법을 사용하려면 좋은 컴퓨터 연산능력과 많은 양의 데이터셋이 필요합니다. 또는 기존 사전학습된 데이터 셋과 전혀 다른 특징을 가지는 경우에 사용하기도 합니다. 데이터셋이 충분하기 때문에 전체를 fine-tuning해도 over-fitting문제가 발생하지 않습니다.

  1. 사전 학습된 모델의 일정 부분도 같이 학습시킨다.
  • 데이터셋이 많고 사전 학습 모델 데이터셋과 유사한 특징을 가질때

데이터셋이 유사하기 때문에, 시간적으로 전체 layer에 대해 fine-tuning할 필요는 없다.

  • 데이터셋이 적고 사전 학습 모델 데이터셋과 다른 특징을 가질때

데이터셋도 부족하고 사전학습모델과 특징도 다르기 때문에 일정부분을 학습시킨다 하더라도 큰 효과를 기대할 수 없고 전체를 fine-tuning하기에도 데이터셋이 적어 over-fitting문제가 발생할 수 있기 때문에 가장 적당한 양의 layer만 학습을 해야하는데 이 기준을 잡기가 매우 어렵습니다.

Downstream Task

위의 예시처럼 현재 자연어 처리분야는 pre-train을 통해 언어모델을 학습하고 그 후 자신이 원하는 task별로 fine-tuning을 통해 모델을 업데이트하여 사용하는데 이때 task를 downstream task라고 말합니다.
BERT를 통해 긍,부정 분류하는 task를 진행할때 이 긍,부정 task를 downstream task라고 할 수 있습니다.

profile
CS | ML | DL

0개의 댓글