꾸준하고 즐겁게
Transfer Learning 본문
728x90
Transfer Learning
이미지넷이라는 사이트에 열리는 ILSVRC이라는 이미지인식 경진대회가 있다.
image-net.org/challenges/LSVRC/
대회에서 개발되어 역대 좋은 성적을 거둔 알고리즘을 두 부분으로 나눈다.
Feature extractor를 Base model이라고 하고, 이어지는 Fully connection을 Head model이라고 한다.
우리는 Base model만을 가져다 사용하고, Head model 부분은 우리의 용도에 맞게 새로 만드는 식으로 활용한다.
이렇게 기존의 잘 만들어진 모델을 활용하는 방법을 Transfer Learning이라고 한다.
IMG_SHAPE = (128, 128, 3)
base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
include_top=False,
weights="imagenet")
위 코드의 MobileNetV2는 많은 사람들이 쓸 수 있도록 오픈되어 있는 알고리즘 중 한 가지다.
input_shape은 이미지를 입력받는 사이즈를 의미한다.
include_top은 헤드 모델을 자르고 베이스 모델만을 가져올지, 둘 다 가져올지 선택할 수 있는 파라미터다.
Head model을 설정하여 Base model의 output을 연결한다.
아래의 코드로 frozen layer (새로 학습시키지 않을 레이어들)과
trainable layer(학습시킬 레이어들)을 결정할 수 있다.
알고리즘 성능에 대한 비교는 다음과 같다.
728x90
'Machine Learning' 카테고리의 다른 글
Fine Tuning (0) | 2021.05.04 |
---|---|
Keras의 ImageDataGenerator 클래스 (0) | 2021.05.03 |
Keras의 ModelCheckpoint (0) | 2021.04.30 |
Keras 라이브러리를 활용해 작성한 사용자 정의 Callback 함수 (0) | 2021.04.30 |
Learning Curve를 통해 Overfitting 확인하기 (0) | 2021.04.30 |