Transfer learning

금나현·2022년 4월 29일
0

Transfer Learning(전이 학습) 이란?
:학습 데이터가 부족한 분야의 모델 구축을 위해 데이터가 풍부한 분야에서 훈련된 모델을 재사용하는 학습 기법

이는 특정한 Task( Classification, Detection, Segmentation 등)에 대하여 학습된 딥러닝 모델을, 다른 Task로 Transfer(전이)하여 해당 모델 을 사후적으로 학습하는 개념을 포괄함. 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용하는 것을 의미.
따라서 기존의 만들어진 모델을 사용하여 새로운 모델을 만들시 학습을 빠르게 하여, 예측을 더 높이는 방법.

보통 특정된 딥러닝 모델을 사용하는 것보다, 더 적은 양의 학습 데이터를 사용하면서 학습 속도도 빠르고 우수한 성능을 발휘함. 또한 산업 현장에는 학습 데이터 자체가 비용과 관련되기 때문에 Transfer Learning(전이 학습)에 대해서 관심을 가질 수 밖에 없음

컴퓨터 비전에서 말하는 전이학습은 주로 사전학습 된 모델(Pre-trained model)을 이용하는 것을 뜻함
사전 학습 모델이란 풀고자하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습이 되어 있는 모델

왜 Transfer Learning(전이 학습)을 사용하는가?

이미 학습된 모델을 사용해서 문제를 해결할 수 있음.
이미 학습된 많은 모델은 적용하려는 데이터가 학습할 때의 데이터와 같은 분포를 가진다고 가정으로 했을 때 효율적
새로운 문제를 해결하려할 때 데이터의 분포가 바뀌면 기존의 통계쩍 모델을 새로운 데이터로 다시 만들어야 할 때 좋음
복잡한 모델일 때 학습 시간이 오래 걸릴 수 있으며, 학습시키는데 어려움이 있음.
층(layer)의 개수, Activation function, Hyper-parameters등 모델을 구성하는데 고려해야할 사항이 많으며, 직접 모델을 구성하여 학습시킨다는 것은 많은 시도가 필요.

따라서 이미 잘 훈련된 모델이 있고, 만드려는 모델과 유사한 문제를 해결하는 모델일 경우에는 Transfer Learning(전이 학습)을 사용.

업스트림, 다운스트림

전이학습에 사용되는 태스크는 업스트림(Upstream) 태스크라 불린다. 한마디로 BERT와 GPT를 이용하여 학습한 모델을 업스트림 태스크라 이해하면 되고, 이를 전이학습을 통해서 새로운 서비스를 창출한 태스크를 다운스트림(downstream) 태스크라 한다.

이때 업스트림 태스크를 학습하는 과정은 프리트레인(pretrain), 다운스트림 태스크를 학습하는 과정은 파인튜닝(finetuning)이라 부른다.

Fine-tuning 이란?

기존에 학습되어져 있는 모델을 기반으로 아키텍쳐를 새로운 목적에 맞게 변형하고 이미 학습된 모델 Weights로 부터 학습을 업데이트 하는 방법을 말합니다. (pre-trained model) (다른 레이어를 고정시키고 일부분 layer를 조정)

또한, 모델의 파라미터를 미세하게 조정하는 행위를 말함.

가장 쉽게 이용하려면 내 데이터를 해당 모델로 예측(predict)하여 보틀넥 피쳐만 뽑아내고, 이를 이용하여 어파인 레이어(Fully-Connected Layer)만 학습시켜서 사용하는 방법을 취하면 됨. 하지만 이 경우는 피쳐를 추출해내는 레이어의 파라미터를 업데이트 하지 않기 때문에 Fine-tuning이라고 부르지 않음.

"Fine-tuning 했다" 라고 말하려면 기존에 학습이 된 레이어에 데이터를 추가로 학습시켜 파라미터를 업데이트 해야함. 이 때 주의할 점은, 완전히 랜덤한 초기 파라미터를 쓴다거나 가장 아래쪽의 레이어의 파라미터를 학습하게 되면 오버피팅이 일어나거나 전체 파라미터가 망가지는 문제가 생김.

profile
AI researcher를 꿈꾸는 간호사입니다 :)

1개의 댓글

comment-user-thumbnail
2024년 1월 3일

좋은 설명 감사합니다! 혹시 사용하신 이미지를 학습용으로 사용해도 될까요?

답글 달기