Natural Language Processing with PyTorch
  • 소개글
  • 서문
  • Index
  • 딥러닝을 활용한 자연어 처리 개요
    • 자연어 처리란 무엇일까?
    • 딥러닝 소개
    • 왜 자연어 처리는 어려울까?
    • 무엇이 한국어 자연어 처리를 더욱 어렵게 만들까?
    • 자연어 처리의 최근 추세
  • 기초 수학
    • 서문
    • 랜덤 변수와 확률 분포
    • 쉬어가기: 몬티 홀 문제
    • 기대값과 샘플링
    • Maximum Likelihood Estimation
    • 정보 이론
    • 쉬어가기: MSE 손실 함수와 확률 분포 함수
    • 마치며
  • Hello 파이토치
    • 딥러닝을 시작하기 전에
    • 설치 방법
    • 짧은 튜토리얼
    • 쉬어가기: 윈도우즈 개발 환경 구축
  • 전처리
    • 전처리란
    • 코퍼스 수집
    • 코퍼스 정제
    • 분절
    • 병렬 코퍼스 정렬
    • 서브워드 분절
    • 분절 복원
    • 토치텍스트
  • 유사성과 모호성
    • 단어의 의미
    • One-hot 인코딩
    • 시소러스를 활용한 단어 의미 파악
    • 특징
    • 특징 추출하기: TF-IDF
    • 특징 벡터 만들기
    • 특징 유사도 구하기
    • 단어 중의성 해소
    • Selectional Preference
    • 마치며
  • 단어 임베딩
    • 들어가며
    • 차원 축소
    • 흔한 오해 1
    • Word2Vec
    • GloVe
    • Word2Vec 예제
    • 마치며
  • 시퀀스 모델링
    • 들어가며
    • Recurrent Neural Network
    • Long Short Term Memory
    • Gated Recurrent Unit
    • 그래디언트 클리핑
    • 마치며
  • 텍스트 분류
    • 들어가기
    • 나이브 베이즈를 활용하기
    • 흔한 오해 2
    • RNN을 활용하기
    • CNN을 활용하기
    • 쉬어가기: 멀티 레이블 분류
    • 마치며
  • 언어 모델링
    • 들어가며
    • n-gram
    • 언어 모델의 평가 방법
    • SRILM을 활용한 n-gram 실습
    • NNLM
    • 언어 모델의 활용
    • 마치며
  • 신경망 기계번역
    • 들어가며
    • Sequence-to-Sequence
    • Attention
    • Input Feeding
    • 자기회귀 속성과 Teacher Forcing 훈련 방법
    • 탐색(추론)
    • 성능 평가
    • 마치며
  • 신경망 기계번역 심화 주제
    • 다국어 신경망 번역
    • 단일 언어 코퍼스를 활용하기
    • 트랜스포머
    • 마치며
  • 강화학습을 활용한 자연어 생성
    • 들어가며
    • 강화학습 기초
    • 정책 기반 강화학습
    • 자연어 생성에 강화학습 적용하기
    • 강화학습을 활용한 지도학습
    • 강화학습을 활용한 비지도학습
    • 마치며
  • 듀얼리티 활용
    • 들어가며
    • 듀얼리티를 활용한 지도학습
    • 듀얼리티를 활용한 비지도학습
    • 쉬어가기: Back-translation을 재해석하기
    • 마치며
  • NMT 시스템 구축
    • 파이프라인
    • 구글의 NMT
    • 에딘버러 대학의 NMT
    • MS의 NMT
  • 전이학습
    • 전이학습이란?
    • 기존의 사전 훈련 방식
    • ELMo
    • BERT
    • GPT-2
    • XLNet
    • 마치며
  • 이 책을 마치며
  • 참고문헌
Powered by GitBook
On this page
  1. 전이학습

전이학습이란?

전이학습transfer learning이란 신경망의 일부 또는 전체 신경망 가중치 파라미터를 MLE를 통해 학습 데이터에 본격적으로 훈련시키기에 앞서, 다른 데이터셋이나 목적 함수를 사용해 미리 훈련 한 후, 이를 바탕으로 본격적인 학습에서 신경망 가중치 파라미터를 더 쉽게 최적화하는 것을 가리킵니다.

이와 비슷한 개념으로 멀티 태스크 학습(multi-task learning)이 있습니다. 이는 여러개의 서로 다른 데이터셋 또는 목적 함수를 동시에 신경망에게 학습 시키는 것입니다.

이미 수 년 전부터 영상 처리 분야에서는 이미지넷ImageNet에서 사용되던 신경망 가중치 파라미터 값을 사용해 다른 문제에 전이학습을 적용하는 접근 방법이 흔하게 쓰였습니다. 그 동안 자연어 처리 분야에서는 전이학습을 사용하기보다는 본질적인 문제 해결에 집중해온 모양새였습니다. 하지만, 최근 많은 문제가 딥러닝을 통해 어느 정도 해결이 되면서 성능을 극대화할 수 있는 방법들을 모색하기 시작했고, 기존의 문제점들을 보완한 여러 전이학습 방법들이 제시되고 각종 자연어 처리 문제 해결에 뛰어난 성능을 보이면서 점차 주류로 자리잡아가는 추세입니다.

전이학습은 더 넓은 범위의 목적objective을 갖는 비지도학습 문제의 전역 최소점global minima은 더 작은 범위의 목적을 갖는 지도학습 문제의 전역 최소점을 포함하고 있을 가능성이 높습니다. 따라서 우리는 비지도학습을 통해 지역 최소점local minima을 찾고 나면, 추가 지도학습에서 더 낮은 지점의 지역 최소점에 도달할 수 있을 것입니다.

요즈음 학계의 추세는 모델이 깊고 넓어져 많은 가중치 파라미터를 갖게 될수록 지역 최소점에 대한 문제가 자연스럽게 해소되어 점점 전역 최소점에 가까워진다고 생각하는 편입니다.

사전에 훈련된 신경망의 각 계층들은 문제를 해결하기 위한 데이터들을 잘 설명할 수 있는 특징feature들을 추출하도록 훈련되어 있을 것입니다. 따라서 만약 우리가 비슷한 특징을 지닌 데이터셋으로 유사한 문제를 해결하고자 한다면, 랜덤하게 초기화된 상태의 가중치 파라미터에서 최적화를 시작하기보다는 기존에 이미 훈련된 가중치 파라미터에서 조금만 바꿔서 새로운 문제를 풀게 하는 편이 훨씬 쉬울 수 있습니다.

즉, 랜덤 초깃값에서 최적화를 시작하는 것은 데이터셋의 노이즈noise와 경사하강법의 한계 때문에 어려울 수 있지만, 사전 훈련된 가중치 파라미터 값에서 최적화를 시작하는 것은 앞에서 설명한 문제를 어느 정도 해결해줄 수도 있습니다. 따라서, 사전 훈련을 통해 우리는 좀더 높은 성능을 기대할 수 있을 것입니다. 물론 당연히 완전 다른 성격의 데이터셋 또는 다른 성격의 문제를 해결할 때 사전 훈련은 그만큼 도움이 되지 않을 가능성이 높습니다.

게다가 만약 사전 훈련에 사용된 훈련 데이터셋이 매우 방대하고 자세한 정보를 담고 있었다면, 새로운 문제를 위한 데이터셋이 미처 담지 못한 정보를 포함할 수도 있습니다. 그렇다면, 랜덤 초깃값에서부터 훈련시킬 때는 얻을 수 없었던 해결 능력을 덤으로 얻을 수 있을 것이고, 사전 훈련 덕분에 성능이 향상될 것입니다.

Previous전이학습Next기존의 사전 훈련 방식

Last updated 5 years ago