Pre-trained Model
사전 학습된 모델(Pre-trained Model)이란 대규모 데이터세트로 학습된 딥러닝 모델로, 이미 학습이 완료된 모델을 의미한다. 모델 자체를 현재 시스템에 적용하거나 사전 학습된 임베딩 벡터를 이용해 모델을 구성할 수 있다. Pre-trained 모델을 사용하면 처음부터 훈련시키는 게 아니므로 학습에 필요한 시간이 대폭 감소하며, 이미 다양한 작업에서 검증된 모델이기 때문에 안정적이고 우수한 성능을 기대할 수 있다.
Backbone
백본(Backbone)이란 입력 데이터에서 특징을 추출해 최종 분류기에 전달하는 딥러닝 모델이나 그 일부를 의미한다. 백본 네트워크는 입력 데이터에서 특징을 추출하므로 노이즈와 불필요한 특성을 제거하고 가장 중요한 특징을 추출할 수 있다. 이렇게 추출된 특징을 활용해 새로운 모델이나 기능의 입력으로 사용한다.
포즈 추정 모델이나 이미지 분할 모델을 만들 땐, 객체를 검출하는 컨볼루젼 신경망의 특징값을 가져와 최종 레이어를 바꾸는 등의 방식으로 적용할 수 있다.
백본을 쓴다고 성능이 급격하게 좋아지지는 않으며, 사전 학습된 백본은 쉽게 오버피팅될 수 있다. 미세 조정이나 전이 학습을 적용해 오버피팅을 피해야 한다.
Transfer Learning
전이 학습(Transfer Learning)이란 어떤 작업을 수행하기 위해 이미 사전 학습된 모델을 재사용해 새로운 작업이나 관련 도메인의 성능을 향상시킬 수 있는 기술을 의미한다. 전이 학습은 대규모 데이터세트에서 사전 학습된 모델을 다른 작은 데이터세트로 미세 조정해 활용한다.
소스 도메인에서 학습한 지식을 재사용함으로써 전이 학습된 모델이 더 적은 데이터와 학습 시간으로 더 높은 성능을 낼 수 있다. 또한 대규모 데이터세트에서 사전 학습된 모델을 활용하므로 과대적합 문제를 최소화할 수 있다.
Upstream과 Downstream
전이 학습의 구조는 업스트림(Upstream) 모델과 다운스트림(Downstream) 모델로 나뉜다.
- 업스트림 모델: 대규모 특정 도메인의 데이터세트에서 학습한 모델이다. 이 모델은 기본적인 특징을 학습하며, 새로운 작업에 필요한 지식을 제공한다.
- 다운스트림 모델: 업스트림 모델에서 학습한 지식을 활용하여 새로운 작업이나 도메인의 데이터세트에서 학습하는 모델이다. 다운스트림 모델은 소규모 데이터세트에서 모델의 성능을 높이기 위해 미세 조정된다.
Inductive Transfer Learning
귀납적 전이 학습(Inductive Transfer Learning)은 기존의 모델이 학습한 지식을 새로운 작업에 적용하여 성능을 개선하는 방법이다.
- 자기주도적 학습: 레이블이 없는 대규모 데이터에서 특징을 학습하고, 소량의 레이블 데이터를 이용해 미세 조정을 진행한다.
- 다중 작업 학습: 소스 도메인과 타깃 도메인의 데이터를 기반으로 여러 작업을 동시에 학습하는 방법이다. 이 방식은 작업 간 상호작용을 통해 모델의 일반화를 돕는다.
Transductive Transfer Learning
변환적 전이 학습(Transductive Transfer Learning)은 소스 도메인과 타깃 도메인이 유사하지만 완전히 동일하지 않은 경우에 사용된다.
- 도메인 적응: 두 도메인의 특징 분포 차이를 줄이는 방식으로 모델을 학습한다.
- 표본 선택 편향/공변량 이동: 소스와 타깃 도메인의 데이터 분포 차이를 조정하여 전이를 진행한다.
Unsupervised Transfer Learning
비지도 전이 학습(Unsupervised Transfer Learning)은 소스와 타깃 도메인 모두에서 레이블이 없는 데이터를 사용하는 방법이다. GAN이나 군집화(Clustering) 기법을 통해 타깃 도메인에서의 성능을 개선한다.
Zero-shot Transfer Learning
제로-샷 전이 학습은 사전 학습된 모델을 새로운 도메인에서도 바로 사용할 수 있도록 설계하는 방법이다. 학습하지 않은 데이터에도 일반화된 성능을 발휘하며, 데이터가 부족한 상황에서 유용하다.
One-shot Transfer Learning
원-샷 전이 학습은 클래스당 하나의 샘플만으로 모델을 학습하여 새로운 데이터를 분류하는 기법이다. 서포트 셋(Support Set)과 쿼리 셋(Query Set)을 활용해 분류를 진행하며, 적은 데이터로 높은 정확도를 달성할 수 있다.
Feature Extraction
특징 추출(Feature Extraction)은 전이 학습에서 사전 학습된 모델의 계층을 활용하여 타깃 도메인의 데이터를 처리하는 방식이다. 이 방법은 소스 도메인과 타깃 도메인이 유사한 경우에 주로 사용된다.
특징 추출 과정에서 사전 학습된 모델의 합성곱 계층(Convolutional Layers)과 같은 주요 계층은 동결(Freeze) 하여 학습하지 않는다. 대신, 이 계층에서 추출한 특징들을 기반으로 분류기(Classifier)만 재구성하고 학습한다.
Fine-tuning
미세 조정은 사전 학습된 모델의 일부 계층 또는 전체 계층을 타깃 도메인의 데이터에 맞게 학습시키는 방식이다. 이 방법은 소스 도메인과 타깃 도메인이 유사하지 않거나, 타깃 도메인의 데이터세트가 충분히 크지 않은 경우에 사용된다.
미세 조정에서는 특정 계층을 선택적으로 동결하거나, 동결을 해제하여 학습을 진행한다. 예를 들어, 하위 계층은 일반적으로 저수준 특징(예: 선, 모서리)을 학습하므로 그대로 사용하고, 상위 계층만 재학습하는 경우가 많다. 반면, 소스와 타깃 도메인의 차이가 크다면 전체 계층을 학습시키는 경우도 있다.