[DL] Transfer Learning, Pre-trained Model, Fine-tuning
-
728x90
딥러닝 논문을 본다던가 공부를 하다보면 VGG, GoogleNet, ResNet등의 CNN 모델을 backborn으로 한다는 말이라던가, Transfer Learning, Fine-tuning이라는 말을 종종 보게 된다. 이 말을 이해하기 위해서는 이 용어들을 하나하나 따라가다보면 쉽게 이해할 수 있다.
Transfer Learning
전이학습이라고도 불리며 한 작업에서 학습한 모델의 지식을 다른 관련 작업으로 전송하는 기술을 이야기한다. DL에서 Transfer Learning은 미리 학습된 모델의 일부 또는 전체를 가져와 새로운 작업에 적용하여 초기 가중치나 특징을 제공하는 것을 말한다. 이를 통해 새로운 작업에 대해 초기 학습에 비해 빠르고 효과적인 학습을 수행할 수 있다.
즉 위에서 말한 VGG, GoogleNet, ResNet등의 CNN 모델을backborn으로 한다는 말은 저 모델을 가져와서 새로운 작업에 사용하겠다는 말과 같다.
Pre-trained Model
Pre-trained Model은 대규모 데이터셋에서 사전에 학습된 모델을 의미한다. 일반적으로, 대규모 데이터셋에서 사전 학습된 모델은 다양한 일반적인 특징과 지식을 포착하는 데 탁월한 성과를 보이는데 이러한 모델은 일반적인 이미지, 텍스트 등의 특징을 인식하고 학습하는 데 사용된다. 데이콘 등의 대회를 살펴보면 사전 학습된 모델을 사용할 수 없다/있다 는 말이 안내에 적혀있는데 이 사전 학습된 모델이 바로 Pre-trained Model이다. 대표적인 pre-trained model에는 ImageNet이 있다.
그렇다면 pre-trained model은 왜 사용할까?
데이터 부족 문제 해결: 대규모 데이터셋에서 사전에 학습된 모델이다보니 초기 모델로 사용되어 모델에 일반적인 특징과 지식을 전달하면 데이터가 부족하더라도 좋은 성능을 보여줄 수 있다.
Transfer Learning: 전이 학습을 가능하게 만든다. 즉 다른 작업에 대한 초기 가중치나 특징을 제공하여 초기 학습에 비해 더 빠르고 효과적인 학습을 가능하게 한다.
계산 리소스 절약: 모델 학습에 필요한 계산 리소스를 절약할 수 있다. pre-trained model은 이미 대규모 데이터셋에서 학습되었으므로, 처음부터 모델을 학습하는 것보다 훨씬 적은 시간과 리소스가 소요된다.
성능 향상: Pre-trained Model은 일반적으로 우수한 성능을 가진다. 대규모 데이터셋에서 pre-trained model은 일반화 능력이 탁월하며, 다양한 작업에 적용할 수 있다. 따라서 Pre-trained Model을 사용하면 초기 모델의 성능을 향상시킬 수 있다.
Fine-tuning
미리 학습된 모델을 새로운 작업에 맞게 조정하는 기술이다. 기본적으로 pre-trained model은 대규모 데이터셋에서 일반적인 특징을 학습한 후에 제공된 작업에 맞게 조정하는 작업을 Fine-tuning이라고 한다. Fine-tuning에는 다양한 방법이 있지만, 가장 일반적인 방법은 미리 학습된 모델의 일부 계층을 동결하고 새로운 작업에 대한 출력 계층을 추가하고, 이러한 추가된 계층과 동결된 계층을 함께 훈련하는 것이다.
요약하자면 Fine-tuning은 Pre-trained Model을 새로운 작업에 맞게 조정하는 과정을 의미하며, Transfer Learning은 사전 학습된 모델의 지식을 다른 작업으로 전송하는 기술이다. Pre-trained Model은 사전에 대규모 데이터셋에서 학습된 모델을 나타내며, Transfer Learning은 이러한 모델의 지식을 활용하여 새로운 작업에 대한 초기 학습을 효과적으로 수행한다.