▶️40분
[영상] 전이학습으로 이미지 분류 실습
Day 2: CNN 기반 불량 분류
[영상] 전이학습으로 이미지 분류 실습
비전 AI 외관검사 > Day 2: CNN 기반 불량 분류
학습 목표
- 전이학습의 Feature Extraction 과 Fine-tuning 을 구분하고 선택 기준을 설명할 수 있다
- ImageNet 사전학습 가중치가 제조 이미지에도 쓸모 있는 이유를 설명할 수 있다
- ResNet 과 EfficientNet 의 구조 차이와 제조 적용 기준을 비교할 수 있다
- 인용된 정확도 수치가 어떤 데이터셋·가중치의 값인지 확인하는 습관을 들인다
영상 핵심 정리 — 전이학습으로 이미지 분류
Feature Extraction vs Fine-tuning
| 방식 | 학습 레이어 | 데이터가 적을 때 | 학습 시간 | 이럴 때 쓴다 |
|---|---|---|---|---|
| Feature Extraction | 헤드만 | 유리 | 짧음 | 사전학습 도메인과 비슷한 이미지 |
| 부분 Fine-tuning | 뒤쪽 블록 + 헤드 | 보통 | 중간 | 제조 표면처럼 질감이 다른 이미지 |
| 전체 Fine-tuning | 전체 | 불리(과적합) | 김 | 도메인 차이가 크고 데이터가 충분할 때 |
아키텍처 비교표를 읽는 법
아래 값은 모두 ImageNet-1k 검증셋 Top-1(단일 크롭) 이다. 같은 모델이라도 학습 레시피가 다르면 값이 크게 달라지므로, 표를 옮겨 적을 때는 반드시 어떤 가중치인지를 함께 적는다.
| 모델 | 파라미터 | ImageNet Top-1 | 비고 |
|---|---|---|---|
| ResNet-50 | 25.6M | 76.1% | 원 논문 가중치(torchvision IMAGENET1K_V1) |
| ResNet-50 | 25.6M | 80.9% | torchvision 개선 레시피(IMAGENET1K_V2) |
| EfficientNet-B0 | 5.3M | 77.1% | 원 논문 기준, 입력 224px |
| MobileNet-V3-Large | 5.4M | 75.2% | 엣지용 |
이 주차의 실습 코드는 ResNet50_Weights.IMAGENET1K_V2 를 불러온다.
즉 우리가 출발점으로 쓰는 것은 76.1% 가중치가 아니라 80.9% 가중치다.
표와 코드가 다른 값을 가리키는 일이 실무 문서에서 가장 흔한 혼선이다.
전이학습 코드 패턴
import torchvision.models as models
import torch.nn as nn
model = models.resnet50(weights=models.ResNet50_Weights.IMAGENET1K_V2)
for param in model.parameters():
param.requires_grad = False # 1단계: 백본 동결
model.fc = nn.Linear(model.fc.in_features, 4)
# 2단계: 뒤쪽 블록을 풀고 학습률을 낮춰 이어서 학습
for param in model.layer4.parameters():
param.requires_grad = True
함정 주의: 백본을 requires_grad = False 로 얼려도 BatchNorm 의 이동 평균은
model.train() 상태에서 계속 갱신된다. 완전히 고정하려면 해당 모듈을 eval() 로 돌려야 한다.
전이학습에서 가장 자주 걸리는 함정이고, 다음 code 과제에서 직접 처리한다.
다음 task와의 연결
다음 reading 에서 ResNet·EfficientNet·MobileNet 의 구조 차이를 도식으로 본다.
AI로 학습하기 — 꿀팁
인용한 정확도 수치의 조건 확인하기AI 학습 팁
모델 비교표의 정확도는 데이터셋·해상도·가중치 버전에 따라 크게 달라진다. 수치를 받기 전에 조건을 먼저 확인하는 습관을 들인다.
ResNet-50 과 EfficientNet-B0 의 ImageNet Top-1 정확도를 알려줄 때, 각 수치가 어떤 가중치(원 논문 / torchvision IMAGENET1K_V1 / V2)와 어떤 입력 해상도에서 나온 값인지 함께 적어줘. 그리고 이 값들이 제조 표면 결함 분류 성능을 예측하는 데 얼마나 쓸모가 있는지, 도메인이 다를 때 무엇이 달라지는지 설명해줘. 출처를 확인할 수 없는 값은 확인할 수 없다고 분명히 말해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • Feature Extraction 은 백본을 얼리고 헤드만 학습, Fine-tuning 은 뒤쪽 블록까지 함께 학습
- • EfficientNet-B0 은 ResNet-50 의 약 1/5 파라미터로 ImageNet Top-1 이 비슷하다(77.1% 대 76.1%, 원 논문 가중치 기준)
- • 정확도 수치는 데이터셋·입력 해상도·가중치 버전이 함께 적혀야 비교할 수 있다
- • Fine-tuning 할 때는 학습률을 Feature Extraction 단계보다 낮춘다
