1단계: 백본을 고정하고 새 출력 헤드만 학습해
특징 추출은 가장 안전하고 빠른 전이 학습 방식이야. base_model.trainable = False로 사전 학습된 가중치를 모두 잠그고 그 위에 작은 학습 가능 출력 헤드를 붙여. 신경망 대부분에서 그래디언트를 계산하지 않으므로 학습 비용과 GPU 메모리가 줄고, 이미 배운 특징을 망칠 위험도 없어. 항상 여기서 시작하고, 이 기준선의 성능이 정체될 때만 다음 과의 미세 조정을 검토해.
놓치기 쉬운 두 지점
출력 헤드는 의도적으로 작게 만들어. GlobalAveragePooling2D가 백본의 특징 맵을 이미지당 벡터 하나로 압축하고, Dropout은 작은 데이터셋의 과적합을 줄이며, 클래스 수에 맞춘 Dense가 최종 예측을 맡아. 코드에서는 다음 두 가지가 중요해:
- 백본을
training=False로 호출해 BatchNormalization 레이어를 추론 모드에 둬. 가중치가 고정된 동안 내 자료로 누적 통계가 흔들리지 않게 하는 장치야. Sequential로 감싸지 않고keras.Input을 사용하는 함수형 구조로 작성해. 고정 백본과 학습 가능한 출력 헤드의 경계가 명시되고 다음 미세 조정 단계도 이 구조 위에 이어져.