전이학습 (Transfer Learning)
![](https://velog.velcdn.com/images/ssmkja61792635/post/d8be0939-8cd3-403a-b8cf-9a68f6c75c3d/image.png)
사전학습된 모델(pretrained model)의 지식을 활용해 새로운 문제를 해결하는 방법
- 사전학습된 모델은 대규모 데이터셋(예, ImageNet, Wikipedia 등)을 기반으로 학습해, 일반적인 패턴을 잘 인식할 수 있는 능력을 갖고 있음
- 모델이 이미 학습한 일반적인 지식을 이용해 빠르게 적응하고 효율적으로 학습할 수 있도록 도와줌
- 이렇게 기존 지식을 활용하기 때문에, 적은 양의 데이터로도 좋은 성능을 빠르게 얻을 수 있음
- 자연어 처리, 컴퓨터 비전, 음성 인식 등 다양한 분야에서 사용
- 사전 학습된 모델의 일부 또는 전체를 사용
- 초기 레이어(저수준 특징)는 보통 모든 종류의 데이터에서 공통된 특징(예, 선, 색깔)을 학습함
- 후반부 레이어(고수준 특징)는 더 구체적이고 특정한 패턴을 학습하는데, 이는 새로운 문제에 맞춰 조정이 필요할 수 있음
- 이미지의 경우, 사전학습된 모델의 초기 레이어는 이미지를 분석하는 기본적인 능력을 갖고 있으므로 새로운 출력층만 학습하면 좋은 성능을 빠르게 얻을 수 있음
- GPT, BERT, YOLO, Stable-Diffusion등의 모델로 전이학습을 수행하여 높은 성능을 보이고 있어 최근 가장 많이 사용하는 방법
※ Pretrained Model : 대규모 데이터셋을 기반으로 학습된 모델. 학습된 일반적인 지식을 가지고 있음.
![](https://velog.velcdn.com/images/ssmkja61792635/post/07ef7784-5812-4261-8c5e-ccd71c3b5dd9/image.png)
낮은 층에서는 이미지의 색, 경계 등 일반적인 특징을 학습하고, 층이 깊어질수록 객체를 구별해낼 수 있는 패턴, 형태 등 구체적이고 특유한 특징을 학습함
미세조정 (Fine-Tuning)
기존에 학습된 모델을 기반으로 새로운 목적에 맞게 변형하고 이미 학습된 모델의 가중치를 미세하게 조정하여 학습시키는 방법 (사전학습 모델 가중치 일부만 재학습 또는 모든 가중치를 다시 학습시킬 수 있음)
![](https://velog.velcdn.com/images/ssmkja61792635/post/62f5b1d7-c2e5-4a53-bf5c-34c4b61d81a3/image.png)
- 전체 모델 새로 학습
- 사전학습 모델의 구조만 가져오고, 가중치는 초기화한 뒤 새로운 데이터로 처음부터 학습하는 방식
- 사용 상황 : 새로운 데이터셋이 사전학습된 모델의 데이터셋과 매우 다르거나, 충분히 많은 데이터가 있어 전체적으로 다시 학습하는 것이 효율적일 때 사용
- Convolution base 동결, 출력층(FCL) 새로 학습
- 사전학습된 모델의 출력층(분류기 부분)을 제외한 나머지 부분(Convolution base)은 고정(동결)하고, 새로운 출력층을 추가하여 학습하는 방식
- 사전학습된 모델의 특징 추출 기능(Feature Extractor)을 그대로 사용하고, 마지막 분류기 부분만 새로운 데이터에 맞춰 학습
- 학습 시간이 짧고, overfitting 방지에 좋음
- 사용 상황 : 새로운 데이터셋이 기존 데이터셋과 유사한 특징을 가진 경우에 사용하며, 학습 데이터가 적을 때 유용함
- Convolution base 일부 동결, 나머지와 출력층(FCL) 재학습
- 사전학습된 모델에서 초기 레이어는 동결하고, 후반부의 Convolution 레이어와 출력층은 새로운 데이터에 맞춰 재학습하는 방식
- 깊은 층(후반부)일수록 데이터의 고수준 특징을 학습하므로, 이를 새롭게 학습시켜 새로운 데이터에 맞춘 미세조정 진행함
- 일부 레이어만 학습가능하게 함으로써 특징 추출을 유지하면서도, 새로운 데이터에 대한 적응력을 높일 수 있음
- 사용 상황 : 새로운 데이터셋이 기존 데이터셋과 일부 유사하면서도, 고수준 특징을 조정할 필요가 있을 때 사용
1) 사전학습된 기본 네트워크 상단에 새로운 네트워크를 추가한다.
2) 기본 네트워크를 고정시킨다.
3) 새로 추가한 부분을 학습시킨다.
4) 기본 계층 중에 학습시킬 상위 부분의 고정을 푼다.
5) 고정을 푼 계층과 새로 추가한 계층을 함께 훈련시킨다.
※ 파인튜닝을 천천히 수행하기 위해 느린 학습 속도를 선택함.
갑자기 큰 변화를 주면 사전학습된 내용이 훼손되기 때문임.
✅ 요 약
전체 모델 새로 학습 : 모델 구조만 사용하고 처음부터 학습. 완전히 새로운 데이터셋이 있거나 데이터가 많은 경우.
Convolution base 동결, 출력층만 학습 : 특징 추출부를 동결하고 출력층만 새로 학습. 데이터가 적고 기존 데이터와 유사한 경우 사용.
Convolution base 일부 동결, 나무지와 출력층 재학습 : 초기 레이어는 동결. 후반부와 출력층은 학습 가능. 새로운 데이터셋에 고수준 특징을 적응시키고 싶을 때 사용.