Transfer learning은 classifier를 변경한다.
Fine tuning은 이렇게 변경된 모델 전체를 다시 training한다.
- Fine-Tuning
- 새로운 데이터로 다시한번 가중치를 세밀하게 조정하도록 학습. 기존 데이터는 기존대로 분류
- Feature Extraction
- 기존 가중치는 그대로 놔둔뒤, 새로운 레이어를 추가해서 이를 학습하고 최종 결과를 내게끔 학습
- Joint Training
- 새로운 데이터를 추가하여 처음부터 다시 시작
- Learning without Forgetting
- 새로운 데이터로 가중치를 세밀하게 조정하되, 기존 데이터 분류 결과 또한 개선 가능(하다고 주장)
※ transfer learning - fine tuning의 차이 짚고 넘어가기
혼동될 수 있는 개념인 것 같습니다. 거의 transfer learning = finetuning으로 봐도 무방합니다. imagenet이라는 큰 데이터로 pretrain된 backbone을 이용해 feature map을 뽑아내고, 아래 4가지 처럼 fine tuning을 자신의 데이터셋에 맞게 fc layer만 다시 설계하는 겁니다!
object detection이나 segmentation같이 vgg net의 CNN을 classification이 아닌 feature extraction으로만 쓰는 경우는 transfer learning이라고 하지는 않고 vgg net의 CNN을 backbone으로만 썼다고 합니다.
하지만 task가 바뀐 이런 경우에도 자신의 데이터에 더욱 fit하게 backbone을 다시 학습 시킨다면, finetuning이라고 합니다.
예시를 개 - 고양이 분류로 들었지만, 항상 다양한 문제에 직면할 수 있습니다.
따라서 fine tuning을 할 때에는 중요한 점이 있습니다.
바로 현재 task의 데이터양과 pretrained model과의 dataset, task 관련 유사정도입니다.
아래 4가지로 분류할 수 있습니다.
'AI > 이론' 카테고리의 다른 글
[ML] CNN의 역전파(backpropagation) (0) | 2021.12.30 |
---|---|
[ML] Backpropagation (0) | 2021.12.30 |
[ML] Fully Convolutional Layer, Fully Connected Layer, AutoEncoder (0) | 2021.12.28 |
[ML] K-Fold Cross Validation(교차검증) (0) | 2021.11.09 |
[ML] Ensemble - DL에 적용 (0) | 2021.11.09 |