본문 바로가기

AI/TensorFlow 학습

21. TensorFlow 2.x - Transfer Learning 소개

참고: https://youtu.be/r4nQgQkdOqM?si=evhXsu10pL6RxDja

 

 

Transfer Learning(전이학습) 이란 것은 이미 학습된 모델을 가지고 새로운 입력 데이터들로 추론하게 되는데,

이렇게 새로 입력된 데이터를 또 학습데이터로 사용하게하여 추가로 학습시키는 것을 말한다.

 

위 슬라이드에서 보듯이,사전 학습 모델은 feature extractor와 classifier로 나눌 수 있고,  각각은 Conv + Conv + Pooling, Dense + Dense + Dense로 구성되어 있다.

 

TensorFlow에서 제공하는 사전 학습 모델은 위와 같다.

 

transfer learning을 이용한 fine-tuning을 할 때, 

단순히 분류기만 학습시킬 지, 특징추출기의 일부까지 포함할 지, 모델 전체를 학습할 지를 정할 수 있어서

효율적인 재학습을 시킬 수 있다.

 

실제 코드를 보면서 살펴보자.

여기에서는 VGG16이라는 사전학습모델을 다운받고, 그 모델이 어떻게 구성되어있는지 보여준다.

VGG16의 parameter중에서 include_top=False로 했으므로 분류기는 제외하고 특징추출기만 가져온다.

 

분류기(classifier)만 다시 설계하여 만든 모델이다.

 

이런 식으로 사전 학습된 모델을 이용하여 전이 학습이 가능하도록 할 수 있다.

다음 글에서는 Transfer Learning를 예제를 가지고 더 살펴보자.