Pre training & Fine tuning

sosimeow·2022년 4월 7일
5

ML/DL

목록 보기
4/9
post-thumbnail


NLP 연구의 발전에 큰 역할을 한 Transfer Learning

이를 하기 위한 Pre training 과 Fine tuning에 대한 개념 정리를 해보았다.



Pre training & Fine tuning 개념


Pre-training

사전 학습 모델이란 기존에 자비어(Xavier) 등 임의의 값으로 초기화하던 모델의 가중치들을 다른 문제(task)에 학습시킨 가중치들로 초기화하는 방법이다.

예를 들어, 텍스트 유사도 예측 모델을 만들기 전 감정 분석 문제를 학습한 모델의 가중치를 활용해 텍스트 유사도 모델의 가중치로 활용하는 방법이다.

즉, 감정 분석 문제를 학습하면서 얻은 언어에 대한 이해를 학습한 후 그 정보를 유사도 문제를 학습하는 데 활용하는 방식이다.

이때 사전 학습한 가중치를 활용해 학습하고자 하는 본 문제하위 문제(downstream task) 라 한다. 앞 예시에서 사전 학습한 모델인 감정 분석 문제가 사전 학습 문제(pre-train task) 가 된다.


fine-tuning

fine-tuning이란 사전 학습한 모든 가중치와 더불어 downstream task를 위한 최소한의 가중치를 추가해서 모델을 추가로 학습(미세 조정) 하는 방법이다.
업로드중..

앞 예시의 사전 학습 방법인 감정 분석 문제에 사전 학습시킨 가중치와 더불어 텍스트 유사도를 위한 부가적인 가중치를 추가해 텍스트 유사도 문제를 학습하는 것이 미세 조정 방법이다.

— 《텐서플로 2와 머신러닝으로 시작하는 자연어 처리 (개정판)》 7장





Transfer Learning


Pre-training & fine-tuning

딥러닝 사전 학습은 딥러닝에서 weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 사전 학습을 통해서 효과적으로 층(layer)을 쌓아서 여러 개의 은닉층(hidden layer)를 효율적으로 훈련할 수 있다.

또한 사전 학습은 레이블된 학습 데이터가 필요하지 않아서 비지도 학습(unsupervised learning)이 가능하기 때문에 레이블 되지 않은 빅 데이터를 넣어 훈련시킬 수 있다는 장점이 있다.

사전학습 만으로 원하는 태스크를 수행하는 인공지능 엔진이 완성이 되지는 않고 사전 학습에 기반한 Fine Tuning 이 필요하다.
이는 사전 학습 모델을 기반으로 새로운 목적(질의응답, 번역 등)을 위해 이미 학습된 weight나 bias를 미세하게 조정하는 과정이다.
-> 사전학습 모델에 추가 데이터 투입해 weight 업데이트

이러한 사전 학습-파인튜닝을 하는 학습 과정을 전이학습(transfer learning)이라고 한다. 전이학습은 이미 잘 훈련된 모델이 있고, 해당 모델과 유사한 문제를 해결하는데 효율적으로 사용된다.

참고 원문 링크



Transfer Learning를 활용하는 대표적인 모델인 BERT

대량의 코퍼스를 사용해서 사전훈련을 시키고 언어의 기본적인 패턴을 이해한 워드임베딩을 추출한다. 사전훈련을 통해 생성된 임베딩으로 새로운 문제에 적용하는 전이학습(transfer learning)을 수행해 적은데이터로 기존 ML, DL모델에 적용하여 빠르게 학습이 가능하게 했다.

참고 내용 출처




Fine tuning 주의 사항


fine tuning 시

  • 완전히 랜덤한 초기 파라미터를 쓰거나
  • 가장 아래쪽의 레이어(일반적인 피쳐를 학습한 덜추상화된 레이어) 의 파라미터를 학습하는 것

을 주의

오버피팅이 일어나거나 전체 파라미터가 망가지는 문제가 생기기 때문이다.

출처: https://eehoeskrap.tistory.com/186 [Enough is not enough]


fine tuning 중 overfiting 방지

  1. 정규화 강화 (dropout 추가)
  2. model complexity 감소
  3. early stopping 적용
  4. training data 증가

그냥 overfiting 방지와 거의 유사한 내용이지만, stack overflow fine tuning overfiting 사례와 함께 보면 dropout 조정을 추천하고 있다.

stack overflow 사례

해당 Question을 살펴보면 도움이 될 듯 하다.

profile
데이터 엔지니어 ing

0개의 댓글