Transfer Learning(전이 학습)

HojunJang·2024년 3월 7일

1. 출현

  • 딥러닝의 발전

  • 단어 임베딩(Word2vec, GloVe)를 통해 단어를 벡터로 표현하여 컴퓨터가 자연어를 이해할 수 있도록 만듦

  • 딥러닝 모델(CNN, RNN, LSTM)들을 통해 자연어를 처리할 수 있는 기술이 급진적으로 성장

  • 산업에서의 신경망 적용

    • 구글 신경망 기계 번역(GNMT)
    • 전체 문장을 하나의 번역 단위로 간주해 한 번에 번역하는 신경망 기반 적용
    • 번역 오류가 55 -> 85%까지 개선
  • 단어 임베딩의 한계

    • 단어 벡터의 질이 떨어짐
    • 단어의 위치에 상관없이 동일벡터 할당
    • 다의어에 대해 풍부한 의미를 가지지 못함
    • 문맥으로 단어의 의미를 파악할 수 있도록 벡터가 생성되어야 함
  • 대용량 학습 데이터의 필요

    • 현실적인 task를 풀 수 있는 모델을 학습시킬 만한 많은 데이터를 확보 필요
    • 대용량 학습 데이터가 없음
    • 코퍼스 양이 너무 적어 한계
  • CV분야에서의 발전

    • AlexNet이 여러 task에서 도움이 되는 것을 확인
  • Transfer Learning

    • 특정 도메인 task로부터 학습된 모델을 비슷한 도메인 task 수행에 재사용
    • 장기 -> 체스, 자전거 -> 오토바이
  • CV에서의 Transfer Learning

    • 모델 사전 학습 수행
    • 대량의 이미지에서 학습된 일반적인 특징 정보 획득
    • 학습된 정보를 전이시킴
  • NLP에 적용

    • 대량의 코퍼스를 활용하여 특정 방식으로 모델을 미리 훈련시킴
    • 언어의 전반적인 특징 정보를 학습한 사전 학습 모델 생성
    • 사전 학습된 모델을 문서 분류, 대화 처리 등과 같은 다양한 task에 활용
  • Transfer Learning

    • Pre-training

      • Downstream task(구체적으로 풀고 싶은 문제)에 대해 fine-tuning하기 위해 필요한 모델 파라미터를 초기화하는 작업
      • '많은 양의 코퍼스'에 기반하여 특정 학습 방식으로 모델 훈련
    • Fine-tuning

      • 여러 downstream task에 맞추어 pre-training 단계에서 학습된 파라미터를 조금씩 조정
  • Pre-traing & Fine tuning 효율성

    • 풍부하고 유용한 지식 습득 가능

    • 학습 데이터에 레이블링 되지 않은 코퍼스가 사용되기 때문에, 학습 데이터를 제한없이 확보 가능

    • downstream task에 대해서 더 빠르게 모델 학습이 수렴하여 효율적인 학습 시간 확보 가능

    • 빠른 학습 수렴 시간, 컴퓨팅 리소스 절약

  • ELMo(Embeddings from Language Models)

    • 언어 모델 기반으로 문맥 정보를 반영한 단어 임베딩

    • 문장 전체를 보고 단어 임베딩 생성

    • 대용량 데이터로 언어 모델을 pre-training 수행

    • 사전 훈련된 언어 모델을 fine-tuning하여 다양한 task에 적용

    • 구조

      • 2개의 층으로 이루어진 순/역방향 LSTM을 독립적으로 학습하는 언어 모델
      • 위쪽 -> 단어의 문맥 정보
      • 아래쪽 --> 문법 정보
    • pre-training

      • 다음 단어를 예측하는 언어 모델링 작업을 통해 언어 모델 사전 학습 진행
      • 문장 전체가 입력으로 들어오고 순차적으로 다음 단어를 예측하며 단어 임베딩을 학습
      • 단어의 순서에 따라 임베딩 값이 달라지기 때문에 문맥 정보가 반영된 임베딩 생성
    • FFNN(피드 포워드 신경망, 순방향)

      • 입력층에서 출력층 방향으로 연산이 전개되는 신경망
    • Contextualized Word Embedding

      • 순방향 LSTM의 은닉 벡터 및 토큰 임베딩 벡터와 역방향 LSTM의 은닉 벡터 및 토큰 임베딩 벡터를 이어 붙임 (문맥 정보를 담고 있음, 토큰의 좌우 방향 모두의 데이터를 알고 있기 때문에)
      • 이어 붙은 벡터에 가중치를 각각 곱한 후 더하여 최종 ELMo 임베딩 벡터 생성
    • Fine-tuning

      • 각각의 가중치는 수행하고자 하는 task에 따라 달라짐
      • 문맥적인 의미가 중요 -> 상위 LSTM에 높은 가중치
      • 구조 관계가 중요 -> 하위 LSTM에 높은 가중치
profile
일단 취업하고 싶어요

0개의 댓글