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. 언어 모델링

마치며

이번 장에서는 주어진 문장을 확률적으로 모델링하는 방법을 이야기했습니다. 자연어 처리 분야에서 문장 예측 능력의 필요성은 딥러닝 이전부터 꾸준히 있었기에 n-gram 등의 방법을 통해 많은 곳에 활용되고 있었습니다. 하지만 n-gram과 같은 방식들은 여전히 단어를 불연속적인 존재로 취급하다 보니 희소성 문제를 해결하지 못해 일반화 능력에서 많은 어려움을 겪었습니다. 이에 마르코프 가정과 스무딩, 디스카운팅을 통해 n-gram의 단점을 보완하고자 했지만, n-gram은 근본적으로 출현 빈도에 기반하므로 완벽한 해결책이 될 수는 없었습니다.

하지만 신경망을 통해 언어 모델링을 수행하면 일반화 문제는 해결됩니다. 신경망은 비선형적 차원 축소에 매우 뛰어난 성능을 가지므로, 희소한 단어들의 조합에 대해서도 효과적으로 차원 축소하여, 기존 훈련 데이터 내의 다른 단어 조합에 대한 유사도 비교 등을 훌륭하게 수행합니다. 따라서 추론 수행 과정에서 처음 보는 시퀀스의 데이터가 주어지더라도 기존에 자신이 배운 것에 기반하여 나름 훌륭한 예측을 해냅니다.

지금까지 언어 모델링이 정말 많은 분야에서 중요한 기초로써 다양하게 활용되고 있음을 배웠습니다. 이처럼 신경망을 통해 개선된 언어 모델을 활용하여, 이어지는 장에서는 자연어 생성, 특히 번역에 대해 다루고자 합니다.

Previous언어 모델의 활용Next신경망 기계번역

Last updated 5 years ago