Transfer Learning
Transfer learning(전이학습)은 딥러닝 모델의 학습 방법 중 하나로, 이미 학습된 모델의 일부 또는 전체를 새로운 모델 학습에 사용하는 방법입니다.
일반적으로 딥러닝 모델은 수백만 개의 매개변수를 가지고 있기 때문에, 새로운 데이터셋에서 모델을 처음부터 학습시키는 것은 계산 비용과 시간 면에서 매우 비효율적입니다. 이러한 문제를 해결하기 위해, 전이학습은 이미 학습된 모델의 일부 또는 전체를 새로운 데이터셋에서 학습에 활용하는 방법을 제공합니다.
전이학습은 크게 두 가지 방법으로 구분됩니다.
- Feature Extraction: 이미 학습된 모델의 일부 층을 가져와서 새로운 모델의 특성 추출기(feature extractor)로 사용하는 방법입니다. 이 방법은 이미 학습된 모델의 하위 층을 가져와서 입력 데이터의 특성을 추출하고, 이 추출된 특성을 새로운 모델에 입력으로 사용하는 방법입니다. 이 방법은 새로운 데이터셋이 작고, 이전 데이터셋과 유사한 경우에 유용합니다.
- Fine-tuning: 이미 학습된 모델의 일부 층 또는 전체를 가져와서 새로운 모델의 초기 가중치로 사용하고, 새로운 데이터셋에서 모델을 재학습하는 방법입니다. 이 방법은 새로운 데이터셋이 크고, 이전 데이터셋과 다른 경우에 유용합니다.
전이학습은 다양한 딥러닝 모델에서 적용 가능하며, 이미지 분류, 객체 감지, 자연어 처리 등의 분야에서 널리 사용됩니다. 예를 들어, ImageNet 데이터셋에서 학습된 모델의 가중치를 가져와서 새로운 데이터셋에서 이미지 분류 모델을 학습하는 것이 전이학습의 대표적인 예시입니다.
진행한 Transfer learning 과정
1. image_resnet18 모델 불러오기
2. MNIST data에 대하여 학습 진행 -> Source Task model 학습-> Pretrained Model
3. 그 후 Fashion MNIST data에 대하여 학습 진행 하고 추론 -> Target Task model 학습
'AI > Pytorch' 카테고리의 다른 글
Github 모델 찾고 사용하는 방법 (0) | 2023.03.18 |
---|---|
HyperParameter Tuning, Ray - tune 라이브러리 (0) | 2023.03.17 |
Dataset, Dataloader (0) | 2023.03.17 |
nn.Module의 hook 과 apply (0) | 2023.03.17 |
모듈 분석,Docstring,repr (0) | 2023.03.16 |