코딩 및 기타

drift 및 MLM 블로그 A Gentle Introduction to Transfer Learning for Deep Learning

정지홍 2024. 10. 9. 17:47

 

drift

--->머신러닝에 있어서 " 예측하지 못한 변화"에 의해서 모델의 성능이 시간이 지남에 따라서 떨어짐을 의미

---> model drift , model decay , model staleness 라고도 불림

 

concept drift

---> 시간이 지남에 따라서 input값과 target값의 관계가 변화는 현상

 

data drift

---> 시간이 지남에 따라서 input의 분포가 변하는 현상

 

label drift

---> 시간이 지남에 따라서 target값의 분포가 변하는 현상

 

 

 

전이학습이란 한 작업에 대해서 개발된 모델을 시작점으로 하여 두번째 작업을 시작하는 방식으로 모델을 재사용하는것이다.

---> 컴퓨터 비전과 자연어 처리같이, 작업을 하기 위해서는 많은 시간과 자원이 필요한 작업에서 주로 pre-trained된 모델을 사용하기 시작함.

 

이 포스팅에서는, 전이학습을 가지고 어떻게 모델의 성능 개선 및 훈련 속도를 증가하는지 발견할 수 있을 것이다.

자세히는....

  • 무엇이 전이학습이며 어떻게 사용하는지..
  • 딥러닝에서의 전이학습의 가장 흔한 예시
  • 언제 나의 예측 모델링 문제에서 전이학습을 사용하는지

 

전이학습이란?

  • 이는 한 작업에 대해서 훈련된 모델을 관련된 2번째 작업으로 용도를 변경하는것
  • 전이학습은 2번째 작업에 대해서 빠른 진행이나 성능 개선을 위한 최적화이다.
  • multi-task learning과 concept drift문제에 관련된 전이학습은 딥러닝에 대한 연구에만 국한된것이 아니다.

 

전이학습을 어떻게 적용시키나? - 모델 개발에서의 접근 -

  1. 필요한 데이터가 풍부한 예측 모델에 대한 모델링을 선택해야 한다. (데이터는 input output의 관계가 존재해야함.)
  2. source model을 개발한다. 모델은 소박한 것 보다는 skillful한것이 나중에 모델에 대한 성능이 좋을 것이다.
  3. 2번째 작업에 대해서 모델을 재사용.
  4. 선택적으로 모델을 튜닝해야 할수도 있다. 즉, 모델을 task of interest에 맞게 input-output쌍에 대해서 적응이나 재정의를 해야한다.

전이학습을 어떻게 적용시키나? -미리 훈련된 모델에서의 접근-

  1. 미리 훈련된 모델중 이용 가능한 source가 되는 모델을 선택.
  2. 모델 재사용
  3. 선택적으로 모델 튜닝

전이학습에 대한 예시 -이미지 데이터-

  • 이미지 데이터에 대한 전이학습은 흔하다.
  • 가장 흔한 예시로는 미리 사전에 훈련된 딥러닝 모델을 1000개의 종류를 가진 이미지 데이터에 대한 분류 문제이다.
  • 여러 모델들은 이러한 작업에 대해서 경쟁하고 마지막에 남은 모델만 재사용이 허락된다.
  • vgg model , inception model , resnet model

전이학습에 대한 예시 -언어 데이터-

  • 자연어 처리 문제에 대한 전이학습도 흔하다.
  • 이러한 타입의 문제에서는, 단어의 의미가 비슷한 서로 다른 단어들이 유사한 벡터 표현을 갖는 고차원 연속 벡터 공간에 단어를 매핑하는 단어 임베딩이 사용된다.
  • word2vec model , glo ve model 존재

 

언제 이를 사용하나?

  • 최적화를 이용하여, 시간을 줄이거나 더 나은 성능을 위할때 사용
  • 일반적으로는, domain에 대해서 모델이 개발되고 평가될때 까지는 전이학습에 대한 benefit가 명확하지는 않다.
  • 이상적으로는, 전이학습을 한것이 성능면에서 높고, 더 높은 시작점 및 기울기가 더 가파라야 한다.