본문 바로가기
C.W.K.
Stream
Lesson 04 of 07 · published

미세 조정

~8 min · transfer

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

2단계: 위쪽 레이어를 풀고 아주 낮은 학습률로 조정해

출력 헤드의 정확도가 안정되면 미세 조정으로 남은 성능을 끌어낼 수 있어. base_model.trainable = True로 백본을 푼 다음 마지막 몇 레이어를 제외한 나머지는 다시 고정해. 초기 레이어에는 보존할 가치가 큰 보편적인 모서리와 질감 감지기가 있고, 후반 레이어에는 내 과제에 맞게 조금 바꿀 수 있는 ImageNet 특화 개념이 있기 때문이야.

핵심은 학습률이야

학습률은 1e-5 정도로, 일반 학습보다 약 100배 낮게 잡아. 사전 학습된 가중치는 이미 좋은 해 근처에 있으므로 큰 학습률을 쓰면 유용한 표현을 한꺼번에 잊는 파국적 망각이 생겨. 낮은 학습률은 기존 지식을 지우지 않고 과제에 맞게 조금씩 움직여. 10~20에포크 동안 검증 정확도를 보고, 개선이 멈추거나 과적합이 시작되면 종료해. 아래 코드는 고정 범위 변경 → 재컴파일 → 학습 순서를 보여 줘.

Code

위쪽 레이어를 풀고 1e-5로 미세 조정하기·python
# Unfreeze the top layers of the base model
base_model.trainable = True

# Freeze everything except the top 20 layers
for layer in base_model.layers[:-20]:
    layer.trainable = False

# CRITICAL: Re-compile with a very low learning rate
model.compile(
    optimizer=keras.optimizers.Adam(1e-5),  # 100x lower!
    loss="categorical_crossentropy",
    metrics=["accuracy"],
)

# Continue training (~10-20 more epochs)
model.fit(train_ds, epochs=20, validation_data=val_ds)

External links

Exercise

특징 추출 모델에서 백본의 마지막 30개 레이어를 풀어. learning_rate=1e-5로 다시 컴파일하고 3에포크를 더 학습한 뒤 미세 조정 전후의 검증 정확도를 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.