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. 시퀀스 모델링

마치며

7장에서는 RNN을 활용한 순서 정보를 가진 시퀀셜 데이터 또는 시계열 데이터를 학습하는 방법을 익혔습니다. 기존의 신경망과 달리 RNN은 이전 time-step의 자기 자신을 참조하여 현재 자신의 상태를 결정합니다. 이에 따라 time-step마다 RNN의 네트워크 가중치 파라미터는 공유됩니다. 하지만 RNN은 기울기 소실과 같은 문제가 잘 발생하기 때문에 긴 시퀀스 데이터를 제대로 처리하지 못하는 단점이 있었습니다.

LSTM과 GRU는 이전 RNN의 단점을 보완하여 여러 가지 게이트를 열고 닫아 정보의 흐름을 조절함으로써 장기 기억력에 더 나은 성능을 보여줍니다. 보통 RNN을 사용할 때는 LSTM을 가장 많이 사용하며, 사용자의 선호에 따라서 GRU를 사용하기도 합니다.

RNN의 역전파 수행은 시간에 대해서도 이루어집니다. 따라서 time-step이 많은 데이터일수록 time-step별 기울기가 더해져서 최종 기울기가 커집니다. 기울기가 클 때 너무 큰 학습률을 사용하면 해당 학습은 발산할 가능성이 높습니다. 따라서 기울기가 정해진 임계치보다 클 경우, 그래디언트 클리핑을 통해 방향은 유지한 채로 기울기의 크기를 임계치만큼 감소시킵니다. 그에 따라 기울기의 최대 크기가 정해지므로, 학습률 1과 같은 매우 큰 값도 학습에 사용할 수 있습니다.

이번 장은 앞으로 소개할 장들의 가장 큰 기초가 되는 부분입니다. 시퀀셜 데이터인 자연어 처리의 문장을 다룰 때는, RNN을 사용하는 것이 가장 기본이기 때문입니다. 앞으로 이야기할 텍스트 분류나 번역 등의 문제에서 RNN이 어떻게 활용되는지 주목해주세요.

Previous그래디언트 클리핑Next텍스트 분류

Last updated 5 years ago