안녕하세요 이번 글에서는 Transfer learning에 대해서 설명해보려고 합니다.

 

먼저 transfer learning이 무엇인지 설명을 드리는것이 맞으나 이번 글에서는 transer learning을 적용할 때 고려해야할 상황에 대해서만 언급하겠습니다. (시간적인 여유가 있으면 transfer learning에 대한 설명을 추후 업데이트 하겠습니다)

 

 

아래 사이트의 설명을 빌리면 transfer learning을 적용할 때는 크게 4가지 상황을 고려하여 fine-tuning 정도를 결정해야 한다고 합니다. 그렇다면 4가지 상황에 따라 어떻게 fine-tuning 정도를 결정하는지 알아보도록 하겠습니다.

 

https://cs231n.github.io/transfer-learning/

 

CS231n Convolutional Neural Networks for Visual Recognition

(These notes are currently in draft form and under development) Table of Contents: Transfer Learning In practice, very few people train an entire Convolutional Network from scratch (with random initialization), because it is relatively rare to have a datas

cs231n.github.io

 

해당 글은 아래 링크를 설명들을 참고했습니다.

https://analysisbugs.tistory.com/103

 

[신경망] 17. Transfer Learning

안녕하세요. 이번 포스팅에서는 Transfer Learning 에 대해서 배워보도록 하겠습니다. ​ 기존의 기계학습 알고리즘에서는 2개의 훈련 데이터셋을 학습할 때, 비록 2개의 데이터셋이 비슷한 특징을

analysisbugs.tistory.com

 

 

 

1. Small dataset and similar to the pre-trained model`s dataset

  • 데이터가 적기 때문에, 전체 네트워크에 대하여 fine-tuning을 하면, over-fitting 문제가 발생합니다.
  • pre-trained model 학습에 사용된 데이터와 transfer learning을 적용시킬 학습 데이터가 유사합니다. 즉, pre-trained model의 conv filter들이 transfer learning에 적용할 데이터들의 특징들을 모두 잘 추출할 수 있다는 뜻이기도 합니다.
  • 위와 같은 이유로 인해, FC layer에 대해서만 Fine-tuning을 진행합니다. 다시말해, Conv layer의 학습을 막기 위해서 gradient 값을 통해 update를 하지 못하게 해야합니다. 
  • 보통 learning rate를 기존에 pre-trained 된 네트워크의 learning rate 1/10의 값으로 사용합니다. 왜냐하면, 높은 값의 learning rate를 사용하면, 기존에 있던 정보들은 새로운 데이터 셋에 맞춰서 급격히 업데이트 되기 때문입니다. 

그림1. 이미지 출처:  https://analysisbugs.tistory.com/103

 

 

 

 

2. Large dataset and similar to the pre-trained model`s dataset

  • 데이터가 충분하기 때문에 fine-tuning을 적용 시 over-fitting의 위험이 없습니다.
  • 하지만, pre-trained model 학습에 사용된 데이터와 transfer learning을 적용시킬 학습 데이터가 유사하기 때문에 초기 layer들을 학습할 필요가 없습니다. 왜냐하면, edge, texture 와 같은 특징들도 대부분 유사할 것이기 때문이죠.
    • 예를 들어, 축구공 종류를 classification 하기 위해 학습된 딥러닝 모델을 핸드볼공 종류를 classification 하는데 사용한다고 생각해보면 금방 이해가 되실 겁니다. 
  • 추가적으로 학습 시간도 줄여주기 위해 아래와 같이 freezing 정도를 설정해주어 학습시켜줍니다.

그림2. 이미지 출처:  https://analysisbugs.tistory.com/103

 

 

 

 

3. Large dataset and different from the pre-trained model`s dataset

  • Pre-trained model 학습에 사용된 데이터와 transfer learning을 적용시킬 학습 데이터가 다르기 때문에 pre-trained model의 conv filter들이 transfer learning에 적용할 데이터들의 특징들을 잘 추출해 줄 수 없습니다.
  • 그렇기 때문에 전체 네트워크를 학습 시켜야 합니다.
  • 데이터도 충분히 있으니 overfitting의 위험도 피할 수 있습니다.

그림3. 이미지 출처:  https://analysisbugs.tistory.com/103

 

 

 

4. Small dataset and different from the pre-trained model`s dataset

  • Pre-trained model 학습에 사용된 데이터와 transfer learning을 적용시킬 학습 데이터가 다르기 때문에 pre-trained model의 conv filter들이 transfer learning에 적용할 데이터들의 특징들을 잘 추출해 줄 수 없습니다.
  • 그래서 전체 네트워크를 학습시켜야 하는데, 데이터셋이 얼마 없기 때문에 네트워크 전체를 학습시키면 overfitting이 일어날 확률이 생깁니다.
  • 위와 같은 문제를 절충하기 위해 아래와 같이 freezing 정도를 설정해주어 fine-tuning을 적용해 줍니다.

 

그림2. 이미지 출처:  https://analysisbugs.tistory.com/103

 

 

 

 

'Deep Learning for Computer Vision > Convolution Neural Network (CNN)' 카테고리의 다른 글

12. Precision, Recall, F1 score (Feat. TP, FP, FN, TN)  (4) 2020.07.19
10. DensNet  (0) 2020.01.17
9. ResNet  (12) 2020.01.17
8.GoogLeNet (inception v1)  (2) 2020.01.17
7. VGGNet  (5) 2020.01.17

+ Recent posts