Rabet 2024. 10. 23. 18:13

Transfer Learning (전이 학습)

이미 학습된 모델의 지식을 새로운 문제에 활용하는 기법

왜 사용하는가?

개인이 수집 불가능할 정도의 데이터를 이용하고 + 성능이 훌륭한 모델 구조와 가중치를 학습한 모델를 선택하고 싶을 때, Transfer Learning 기법을 사용한다.

 

예시)

1. 데이터 부족할 때 

2. 원본과 확연히 다른 새로운 특징을 만들어 낼 수 없을 때

3. 양과 질 모두 충족하는 적절한 데이터였는 지 모르겠을 때

 

1.  Pretrained Model

모델을 완전히 그대로 사용하는 방법

  1. ImageNet
  2. AlexNet
  3. GoogleNet
  4. ResNet
  5. VGGNet

이러한 모델들은 Image Data자체에 대한 Feature를 잘 추출해 낸단 기대를 가지고 있다.

 

- keras 지원 모델 

 

Keras documentation: Keras Applications

Keras Applications Keras Applications are deep learning models that are made available alongside pre-trained weights. These models can be used for prediction, feature extraction, and fine-tuning. Weights are downloaded automatically when instantiating a mo

keras.io

 

 

2. Fine-Tuning

문제에 맞게 Pretrained Model을 조정하여 새로운 데이터에 맞게 학습하는 방법

- 데이터 수집 👆🏻   문제, 사전 학습이 유사 > 모델의 뒷부분 위주로 재학습

- 데이터 수집 👆🏻  문제, 사전학습이 상이  > 모델 전체 재학습

- 데이터수집 👇🏻  문제, 사전 학습이 유사 > 모델의 뒷부분만 재학습

- 데이터 수집 👇🏻 문제, 사전학습이 상이 > 모델의 뒷부분 위주로 재학

 

 

3. 단어 특징

  • Backbone : 앞에 Pretrained Model 부분
  • Neck : 특징을 추가하는 부분
  • Head : output 레이어 등 마지막 부분