Transfer Learning
Transfer Learning (전이 학습)
이미 학습된 모델의 지식을 새로운 문제에 활용하는 기법
왜 사용하는가?
개인이 수집 불가능할 정도의 데이터를 이용하고 + 성능이 훌륭한 모델 구조와 가중치를 학습한 모델를 선택하고 싶을 때, Transfer Learning 기법을 사용한다.
예시)
1. 데이터 부족할 때
2. 원본과 확연히 다른 새로운 특징을 만들어 낼 수 없을 때
3. 양과 질 모두 충족하는 적절한 데이터였는 지 모르겠을 때
1. Pretrained Model
모델을 완전히 그대로 사용하는 방법
- ImageNet
- AlexNet
- GoogleNet
- ResNet
- 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 레이어 등 마지막 부분