51

Transfer Learning 실습: ResNet50으로 불량 분류

Day 2: CNN 기반 불량 분류

학습 목표
  • 사전학습된 ResNet50을 불러와 마지막 층을 교체할 수 있다
  • PyTorch로 제조 이미지 분류 모델을 학습할 수 있다
  • 학습 곡선을 분석하여 과적합 여부를 판단할 수 있다
  • 학습한 모델과 검증 예측을 저장해 뒤 과제(GradCAM·모델 평가)에서 이어 쓸 수 있다

Transfer Learning으로 불량 분류 모델 만들기

사전학습된 ResNet50의 특징 추출기는 그대로 두고, 마지막 분류 층만 제조 불량 분류용으로 교체한다.

학습 전략

[2단계 학습 전략]

Phase 1: Feature Extractor 고정 (10 에포크)
  - ResNet50 전체 가중치 고정 (freeze)
  - 새로운 FC 층만 학습
  - 학습률: 0.001

Phase 2: Fine-tuning (10 에포크)
  - Layer4 이후 가중치 해제 (unfreeze)
  - 전체 미세 조정
  - 학습률: 0.0001 (1단계의 1/10)
에디터 로딩 중...
핵심 포인트
  • Transfer Learning은 2단계: FC층 학습 → Fine-tuning
  • ImageNet 사전학습 가중치를 활용하면 처음부터 학습할 때보다 적은 데이터로 출발할 수 있다
  • Fine-tuning 단계의 학습률은 1단계보다 낮춘다(여기서는 0.001 → 0.0001)
  • 얼린 백본이라도 BatchNorm 통계는 train 모드에서 계속 갱신되므로 따로 eval() 로 고정한다
  • train 과 val 은 다른 시드로 만들어야 과적합이 곡선에 드러난다
  • 이 과제의 산출물(모델 가중치 + 검증 예측)을 GradCAM 과 모델 평가 과제가 그대로 불러 쓴다
AI로 학습하기 — 꿀팁
에이전트로 분류 모델 코드 점검하기AI 학습 팁

AI 에이전트에게 전이학습 코드를 짜게 한 뒤, 과적합 방지·클래스 불균형 처리가 됐는지 검증하세요.

ResNet50 전이학습으로 제조 불량 이미지를 분류하는 PyTorch 코드를 작성하고, 클래스 불균형과 과적합을 어떻게 처리했는지 설명해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
Vision Inspector (화면 구성 확인용)
검사 화면이 어떤 정보를 어떤 순서로 보여주는지 확인하는 용도다. 시뮬레이션 모드는 업로드한 사진을 아예 판정하지 않고 되돌려 보낸다 — 이미지를 보는 모델이 없기 때문이다. 내장 샘플의 판정도 샘플에 적힌 정답을 그대로 읽은 것이라 그림을 바꿔도 결과가 그대로다. 성능 판단은 이 과제에서 직접 학습한 모델로 한다.
용어