[AI] fine-tuning

seon·2025년 9월 16일

목록 보기
24/26

출처: https://je0nsye0n.tistory.com/31

[1] Pre-training(사전 훈련)

Pre-training이란, 임의의 값으로 초기화하던 모델의 가중치들을 다른 문제(task)에 학습시킨 가중치들로 초기화하는 방법이다.

  • 보통 dataset이 적을 때 주로 사용되며, 다른 작업의 방대한 데이터를 사용하여 모델을 사전학습시키는 것이다.
  • Pre-trained 모델을 비슷한 task에 대해 새로운 모델을 만들 때 사용하면 학습 시간을 상당히 줄일 수 있다.
  • 지도 학습과 비지도학습 모두 가능하며, labeled data가 cost가 높기 때문에 주로 비지도 학습 방식으로 이루어진다.
    (예) 텍스트 유사도 예측 모델을 만들기 전, 감정 분석 문제를 학습한 모델의 가중치를 활용하여 텍스트 유사도 모델의 가중치로 활용하는 방법

이때, 사전 학습한 가중치를 활용하여 학습하고자 하는 본 문제를 하위 문제(downstram task)라 한다. 앞 예시에서 사전 학습한 모델인 감정 분석 문제가 사전 학습 문제(pre-train task)가 된다. 그렇다면, 사전 학습 문제에 맞게 학습된 모델이 어떻게 downstram task를 처리할 수 있을까? 이때 등장하는 개념이 Transfer Learning인 것이다.

[2] Transfer Learning (전이학습)

Transfer Learning은 Pre-trained model을 downstram task에 맞는 라벨로 구성된 새로운 dataset으로 다시 학습시키는 것이다. 다른 도메인의 데이터로 다시 학습한다 해서 domain adaptation이라 부르기도 한다.
즉, 사전에 학습된 모델을 pre-trained model이라 하고, 이를 활용하여 새로운 데이터셋을 학습하는 과정을 transfer learning이라고 정의한다.

[3] Fine-Tuning (미세조정)

아래와 같은 task 조건이 있다고 하자.
1. 표범과 호랑이를 구분하고 싶으나, 이에 대한 dataset이 부족함
2. 강아지와 고양이를 구분하는 데이터를 이용하여 모델을 훈련시킴(Pre-training)
3. 표범, 호랑이 이미지와 각 클래스의 라벨로 구성된 새로운 데이터셋으로 다시 학습시킴(TL)
4. 표범과 호랑이를 구분하는게 아니라 모든 포유류를 구분하고 싶어짐

위와 같은 경우에는 어떻게 해야할까?
얻고자 하는 결과값이 다르기 때문에 마지막 output을 삭제하고 다른 layer들을 붙여서 써야한다. 그리고 이 과정을 fine tuning이라고 한다. 그리고 파인튜닝은 방법에 따라 아래와 같이 나뉠 수 있다.

profile
🌻

0개의 댓글