사전훈련된 컨브넷 사용하기
구조: [훈련된 합성곱 기반 층 -> 훈련된 분류기] 라고 하면,
훈련시키기 빠르다는 장점이 있지만, end-to-end 컴파일을 하지 않는 이상, 데이터 증식을 사용하지 못하기 때문에 과대적합될 수 있다.
conv_base.trainable=False
위와 같은 코드를 통해 합성곱 기반층 전체를 freezing 시켜줘야 한다.
기존의 층들과 새로 추가한 층들을 처음부터 한번에 훈련 시킨다면, 훈련되는 동안 너무 큰 오차가 신호가 기존 네트워크에 전파되어 사전학습된 표현들을 망가뜨릴 가능성이 크다.
따라서 다음과 같은 순서로 훈련시켜야 한다.
1. 기존의 층들 위에 새로운 층들을 추가한다.
2. 기존의 층들을 freezing 시킨 후에 새로운 층들을 훈련시킨다.
3. 기존의 층들의 freezing을 해제한, 기존의 층들과 새로운 층들을 함께 훈련시킨다.