AI/개념

파인튜닝 추천 전략 및 팁

ksc036 2026. 4. 28. 22:52

파인튜닝 추천 전략과 팁

파인튜닝 전략은 크게 데이터 개수기존 모델이 학습한 도메인과 새 데이터 도메인의 유사도에 따라 달라진다.

사전학습 모델은 이미 일반적인 특징을 학습한 상태이다. 예를 들어 이미지 모델의 backbone은 엣지, 색상, 질감, 형태 같은 기본적인 시각 특징을 어느 정도 알고 있다. 따라서 새로운 데이터셋을 학습할 때는 모든 가중치를 무조건 다시 학습시키기보다, 상황에 따라 일부 레이어를 고정하거나 점진적으로 풀어주는 전략을 사용한다.


1. 데이터가 적은 경우

데이터 개수가 적으면 모델이 학습 데이터에만 과하게 맞춰지는 과적합이 발생하기 쉽다.

이 경우 처음부터 전체 모델을 학습시키기보다, 먼저 backbone을 freeze하고 head 부분만 학습시키는 전략이 좋다.

 
model.train(
data="custom_data.yaml",
epochs=50,
freeze=10
)
 

이렇게 하면 앞쪽 레이어는 기존 가중치를 유지하고, 새로운 데이터셋에 맞는 출력 부분만 먼저 학습할 수 있다.

이후 어느 정도 안정적으로 학습되면 freeze를 풀고 전체 모델을 낮은 learning rate로 추가 학습할 수 있다.

 
model.train(
data="custom_data.yaml",
epochs=30,
freeze=0,
lr0=0.001
)
 

즉, 데이터가 적을 때는 다음과 같은 순서가 안정적이다.

1단계: backbone freeze + head 학습
2단계: 일부 또는 전체 unfreeze
3단계: 낮은 learning rate로 추가 학습
 

2. 도메인이 기존 모델과 유사한 경우

새 데이터셋이 기존 모델이 학습한 데이터와 비슷하다면 전체 모델을 크게 바꿀 필요가 없다.

예를 들어 COCO로 학습된 YOLO 모델을 사용해서 일반 사물, 사람, 차량, 컵, 의자 같은 객체를 탐지한다면 도메인이 비교적 유사하다고 볼 수 있다.

이 경우 backbone의 많은 부분은 그대로 유지하고, head나 뒤쪽 일부 레이어만 학습하는 전략이 적절하다.

기존 특징 추출 능력은 유지
새 데이터셋에 필요한 부분만 조정
 

추천 전략은 다음과 같다.

데이터가 적고 도메인이 유사함 → backbone 대부분 freeze, head 중심 학습
데이터가 어느 정도 있고 도메인이 유사함 → 뒤쪽 일부 레이어만 unfreeze
 

YOLO에서는 freeze 값을 조정해서 일부 레이어를 고정할 수 있다.


3. 도메인이 기존 모델과 많이 다른 경우

새 데이터셋이 기존 모델의 학습 도메인과 크게 다르면, 기존 backbone의 특징이 충분하지 않을 수 있다.

예를 들어 일반 사물 데이터로 학습된 YOLO를 의료 영상, 위성 사진, 열화상 이미지, 산업용 결함 이미지 등에 적용하는 경우가 그렇다.

이 경우에는 일부 레이어만 학습해서는 새로운 도메인의 특징을 충분히 반영하기 어렵다. 따라서 freeze를 거의 하지 않거나, 아예 하지 않고 전체 모델을 학습 대상으로 두는 것이 좋다.

 
model.train(
data="custom_data.yaml",
epochs=100,
freeze=0,
lr0=0.001
)
 

단, 이때도 보통은 pretrained 모델에서 시작한다.
즉, 완전히 랜덤 초기화로 처음부터 학습하는 것이 아니라, 사전학습된 가중치를 가져온 뒤 전체 레이어를 업데이트하는 방식이다.

도메인이 크게 다름 → pretrained weight 사용 + 전체 unfreeze 파인튜닝
 

4. 데이터 개수와 도메인 유사도에 따른 추천 전략

상황추천 전략
데이터 적음 + 도메인 유사 backbone freeze, head만 먼저 학습
데이터 적음 + 도메인 다름 일부 freeze 후 시작, 이후 점진적 unfreeze
데이터 많음 + 도메인 유사 뒤쪽 일부 레이어만 unfreeze하거나 전체를 낮은 lr로 학습
데이터 많음 + 도메인 다름 freeze 없이 전체 모델 파인튜닝
데이터가 매우 많음 scratch 학습도 가능하지만 비용이 큼

5. 실전 팁

파인튜닝할 때는 처음부터 큰 learning rate를 사용하지 않는 것이 좋다. 사전학습된 가중치가 한 번에 크게 바뀌면 기존에 학습된 좋은 특징이 망가질 수 있기 때문이다.

파인튜닝에서는 낮은 learning rate를 사용하는 것이 안정적이다.
 

또한 데이터가 적을수록 augmentation을 적극적으로 사용하는 것이 좋다. 색상, 밝기, 크기, 위치, 좌우 반전 같은 증강을 적용하면 모델이 특정 이미지에만 외우는 것을 줄일 수 있다.

과적합 여부는 train loss만 보면 안 된다. 반드시 validation 성능을 함께 확인해야 한다.

train loss는 계속 감소하는데 val 성능이 떨어짐 → 과적합 가능성
 

이 경우에는 다음 방법을 고려할 수 있다.

augmentation 강화
epoch 줄이기
early stopping 사용
freeze 범위 늘리기
learning rate 낮추기
데이터 추가 확보