[플레이데이터 빅데이터 부트캠프]머신러닝 & 딥러닝 전이 학습

전이 학습(Transfer Learning)

전이 학습이란? 하나의 작업을 위해 훈련된 모델을 유사 작업 수행 모델의 시작점으로 활용하는 딥러닝 접근법이다.

사전 학습 모델ImageNet과 같은 대량의 데이터셋으로 이미 학습이 되어있는 모델을 사용한다.

실습

fashion mnist 모델을 사전학습된 VGG16 모델을 사용하여 평가해보자.

VGG16 모델 구조

VGG16은 16개 층으로 이루어진 VGGNet을 의미한다. VGGNet은 옥스포드 대학의 연구팀 VGG에 의해 개발된 모델로써, 2014년 이미지넷 이미지 인식 대회에서 준우승한 모델이다.(VGG16, VGG19가 존재한다.)

Applications - Keras Documentation

 

Applications - Keras Documentation

어플리케이션 케라스 어플리케이션은 선행학습된 가중치와 함께 사용할 수 있도록 한 딥러닝 모델입니다. 이 모델로 예측, 특성추출, 파인튜닝을 할 수 있습니다. 가중치는 모델을 인스턴스화

keras.io

실습으로 VGG16의 모델을 가져와 Fashion MNIST 모델을 분류하여 보자.

Fashion MNIST 데이터 불러오기

데이터 전처리

VGG16 모델 불러오기

VGG16 모델의 연산층을 제외한 다섯개의 블록층(conv layers)만 가져온다.

끝단의 연산층이 사라진 것을 확인할 수 있다.

이제 인풋층을 Fashion mnist 데이터와 알맞게 (32, 32, 3) 구조로 바꿔보자. 

여기서 이제  Fashion mnist에 알맞는 연산층(fully connected layer)을 우리가 덧붙힌다.

activation 함수는 sigmoid 함수와 softmax 함수를 사용하였다. loss function, optimizer 등을 fashion mnist 데이터에 알맞게 튜닝하였다.

전이 학습이 완료된 모델의 summary이다.

모델 학습 및 평가

결과적으로 전이 학습 결과, 이전의 자체 CNN 모델보다 정확성이 높게 나왔다.

5 epoch85.33%의 정확성을 보였다.