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

신경망 기계번역

Previous마치며Next들어가며

Last updated 5 years ago

번역은 오랫동안 인류에게 난제로 남아있었습니다. 항공과 통신 기술의 발전으로 세계는 가까워졌지만 언어의 장벽은 상대적으로 커졌고, 따라서 번역에 대한 연구는 자연어 처리의 역사와 함께했습니다. 하지만 연구가 거듭될수록 언어의 방대함과 모호성은 매우 큰 어려움으로 다가왔습니다. 이러한 가운데 딥러닝을 통해 이러한 언어의 특징에 따른 어려움을 해결하면서 기계번역에 대한 실마리가 풀리기 시작했고, 현재는 딥러닝을 통해 가장 성공적으로 상용화된 기술이 되었습니다. 더욱이 어텐션(attention) 기법을 활용하여 기존 RNN 기반 모델의 한계를 극복하고, 시퀀스 데이터의 길이에 구애받지 않고 훌륭한 성능을 뽑아낼 수 있습니다.

이번 장에서는 기계번역에 관해 이야기하고, 자연어 생성과 이를 위한 seq2seq 및 어텐션 기법을 다룹니다. 더불어 기존의 대부분의 강의와 도서에서 다루지 않았던 어텐션의 동작 원리와 자연어 생성의 깊이 있는 주제에 관해서도 이야기하고자 합니다. 또한 seq2seq의 학습 방법뿐만 아니라, 실제 상용 서비스를 만드는데 중요한 추론(inference)에 관해서도 다루려 합니다. 이때 추론 정확도 향상뿐만 아니라 추론 속도라는 두 마리 토끼를 모두 잡기 위한, 빔서치(beam search)에 관해 이야기합니다. 마지막으로 실제 기계번역 서비스가 가능한 수준의 파이토치 코드를 소개합니다.

Kyunghyun Cho