[computer-vision]
전이 학습
기존의 머신러닝에서 문제점
- 과업에 맞춰 모델과 데이터를 만들어야 함
- 모델 만들기 → 어렵다
- 데이터 수집 및 레이블링 → 어렵고 비용이 큼
- 딥러닝은 매우 많은 데이터가 필요
전이 학습 Transfer Learning
- 근원 문제 source에 학습시킨 모형을 새로운 대상 문제 target에 적용하는 것
- 사전 학습 pretraining: 근원 문제에 학습 시키는 것. 많은 데이터를 사용
- 미세 조정 fine tuning: 대상 문제에 학습 시키는 것. 적은 데이터를 사용
- 무작위로 초기화된 모형을 처음부터 학습시키는 것보다, 다른 문제에라도 학습시킨 모형을 추가 학습시키는 것이 학습에 유리할 가능성이 높음
- 이미지 처리 과제는 비슷한 특징들을 공유하므로 무작위로 초기화된 것보다는 유사할 가능성이 높음
- 일반적으로 근원 문제에 학습시킬 때보다 작은 학습률을 사용
- 기초 모델 foundation model: 컴퓨터 비전이나 자연어 처리처럼 넓은 종류의 분야에 대해 적용할 수 있는 모델
전이학습의 효과
- 만약 기존의 다른 문제에 학습시킨 모형을 약간의 미세 조정으로 높은 성능을 낼 수 있다면 데이터와 계산 비용을 절감할 수 있음
- 성능은 높아지고 활용의 난이도가 낮아짐
- 사전학습된 모델을 가져다가 쓰면 내가 하고자 하는 과업에 맞춰 약간의 데이터만 모아서 미세 조정만 해주면 됨
- 어떤 경우에는 미세조정 없이 쓸 수 있는 경우도 있음
- 비전문가도 높은 성능의 모델을 쉽게 활용할 수 있게 된 것
전이 학습의 방식
- 사전 학습된 부분을 포함해서 전체적으로 미세 조정
- 사전학습된 모형의 전반부를 특징 추출기로 사용 + 후반부에 분류기만 추가하고 추가된 부분만 학습
- 사전학습된 모형을 추가 학습 없이 그대로 사용(zero-shot learning)
언제 어떤 방법을 사용해야 하나?
| 방법 | 데이터 | 과업의 종류 | 이미지 | 필요한 하드웨어 성능 |
|---|
| OpenCV 등으로 고정된 알고리즘 | 없음 | 단순 (직선, 원 찾기, 기하학적 변환) | 무관 | 낮음 |
| 직접 모델을 만들어 머신러닝/딥러닝 | 많음 | 중간 (이미지 분류) | 해상도 낮고 크기 작음 | 보통 |
| 기존의 모델을 전이 학습 | 적음 | 복잡 (탐지, 생성, 변환 등) | 해상도 높고 크기 큼 | 높음 |