728x90
strategy 1: 모델 전체를 학습하는 경우 (Full training)
모델 전체 학습
데이터가 많은 경우 효율적
strategy 2: 일부만 학습시키는 경우 (Fine tuning)
상위는 학습시키지 않고 프리징
내 클래스와 pretrained가 비슷할 때
starategy 3: 특징 추출 부분 고정 (Feature Extraction)
분류기(FC layer)만 재학습
1. 전체 학습 (Full Training)
설명: 모델 전체를 학습시켜서 모든 가중치를 업데이트
장점: 데이터가 많을 때 좋음(처음부터 끝까지 내 데이터에 맞는 최적의 모델을 만들 수 있음)
단점: 많은 데이터와 시간, 계산 자원이 필요(이미 잘 학습된 가중치를 처음부터 다시 학습시키기 때문에, 비효율적일 수 있음)
사용 경우: 내가 가진 데이터가 매우 많고, pretrained 모델과 전혀 다른 도메인일 때
2. Fine Tuning
설명: pretrained 모델의 일부 가중치는 고정(Freeze)하고, 나머지 일부만 업데이트
보통 상위 레이어는 Freeze하고 하위 레이어(특화된 레이어)만 학습
장점: pretrained 모델의 일반적인 특징을 유지하면서, 특정 데이터셋에 맞춰 세부 조정을 할 수 있음, 학습 속도가 빠르며, 상대적으로 적은 데이터로도 효과적
단점: pretrained 모델이 사용하는 데이터와 내 데이터의 차이가 크면 성능이 저하될 수 있음
사용 경우: pretrained 모델과 내 데이터가 유사한 도메인일 때
예: 고양이와 개 사진 분류 → 강아지 품종 분류
3. Feature Extraction
설명: pretrained 모델의 모든 레이어를 Freeze하고, 최상위 분류기(FC Layer)만 새로 학습
기존 모델이 추출한 특징(feature)을 그대로 활용
장점: 학습 속도가 매우 빠르고 작은 데이터셋으로도 학습이 가능
단점: 내 데이터가 pretrained 모델의 도메인과 다르면 효과가 제한적
사용 경우: 데이터셋이 매우 적거나, pretrained 모델과 내 데이터가 매우 유사할 때
프리징 (Freezing)
특정 레이어의 가중치가 업데이트되지 않도록 고정
불필요한 계산 낭비를 줄이고, 모델의 기존 특징을 유지
Fine Tuning과 Feature Extraction에서 사용됨
PyTorch 예시: param.requires_grad = False
딥러닝 학습 방법 선택하는 법
: 데이터셋 크기, pretrained 모델과의 도메인 유사성
도메인 유사성
pretrained 모델의 학습 데이터와 내 데이터셋의 내용, 스타일, 특징을 비교해 판단
도메인 유사성 판단 기준
- 클래스: 모델이 학습한 클래스와 내 데이터의 클래스가 유사한지
예: ImageNet은 일반적인 물체(강아지, 고양이 등)를 포함하므로, 강아지 분류처럼 유사한 도메인에 적합.
- 스타일: 이미지의 전반적인 특징(색감, 구조 등)이 유사한지
예: ImageNet 모델은 사진 스타일에 최적화되어 있으나, 의료 영상에는 맞지 않을 수 있음.
- 특징: 학습된 특징(엣지, 패턴 등)이 내 데이터셋에도 적용 가능한지
데이터 확인은 공식 문서와 논문을 통해
데이터 많음 -> Full training
도메인 유사 -> Fine tuning
데이터 적음 + 도메인 유사 -> Feature Extraction
'Pytorch' 카테고리의 다른 글
[파이토치] Multi Label Classification with CNN (0) | 2025.01.10 |
---|---|
[파이토치] Custom Dataset 만들기 (0) | 2025.01.08 |
[파이토치] CNN 모델 학습, 평가, 추론 (0) | 2025.01.06 |
[파이토치] CNN Lenet5 구현 (1) | 2025.01.04 |
[파이토치] MNIST로 이미지 데이터 처리 (1) | 2024.12.31 |