본문 바로가기
DataScience/MachineLearning

딥러닝 Transfer Learning 이란 (코드없음 진행순서만)

by leopard4 2023. 1. 2.

딥러닝 모델의 정확도를 높이기 위해선 

대학원 이상의 전문지식을 요한다.

따라서 응용프로그래머는 잘 만들어진 검증된 모델을 가져다 쓴다는 개념이

Transfer Learning 이라고 한다.

 

사용법은 사이드바 딥러닝 부분에 자세히 설명해놓았기 때문에,

여기선 전체적인 그림만 그린다

 

1. 필요한 라이브러리를 임포트

 

2.Building the model (Loading the pre-trained model)

학습이 잘 된 모델의 베이스 모델만 가져온다.(헤드모델은 빼고)

 

3. Freezing the base model

가져온 베이스 모델 부분은 이미 특징을 잘잡게 학습되어있기 때문에 

재학습 하지않도록 사전작업을 하는것

 

4.Defining the custom head for our network 

내 문제에 맞게 사용자 정의 모델 헤드를 만든다.

 

5.Defining the model

가져온 베이스모델과 내가만든 헤드모델을 합친다.

 

6.컴파일한다.

 

7.이미지 크기를 조정하거나 증강한다.

이미 넘파이로 피처 스케일링된 이미지라면 rescale은 필요없다.

리사이징 할때는 모델에 맞는 규격이 있으니 주의

For example: MobileNet (architecture that we use) supports: (96, 96), (128, 128), (160, 160), (192, 192), (224, 224).

잘못 입력했을시 규격을 표시해준다.

 

8.완성된 모델로 학습

 

9.평가

 

10. Fine tuning (성능개선의 여지가 있는지 확인)

파인 튜닝 : 섬세한 튜닝 

이 방법은, 꼭 !!! 트랜스퍼 러닝을 한 다음에, 수행하는 방법이다.
위의 트랜스퍼 러닝을 한 후에, 조금 더 개선이 가능한지 해보는 방법으로서
위에서 학습한 모델을 가지고!!! 그 상태에서, 추가로 학습을 시키는것!
단, 좋은 모델의 일부분을, 우리 데이터로 학습가능하도록 변경한 후에 학습시킨다.
 
 
파인 튜닝의 절차: 
Un-freeze a few top layers from the model
# 1. 일단은, 베이스모델의 전체 레이어를 다시, 학습 가능토록 먼저 바꿔준다.
# 2. 베이스 모델의 전체 레이어 수를 확인한다.
 
# 3. 위에서, 레이어 갯수를 확인했으니,
#    몇번째 레이어까지 학습이 안되도록 할것인지, 결정해 준다.

Compiling the model for fine-tuning

Fine tuning

 

Evaluating the fine tuned model

 

test