SlideShare a Scribd company logo
1 of 26
Download to read offline
Sequence to Sequence Learning
With Neural Networks
huffon
Contents
▪ History of Machine Translation
▪ Rule-based Machine Translation
▪ Statistical Machine Translation
▪ Neural Machine Translation
▪ “Sequence to Sequence Learning with Neural Networks“
▪ Abstract
▪ Introduction
▪ Model
▪ Conclusion
Machine Translation (1): Rule-based Machine Translation
▪ 가장 단순한 접근 방법? Source 언어의 모든 단어를 Target 언어의 단어로 치환하는 것
▪ 이 접근 방법에 필요한 것은 각각의 단어 번역을 위한 단어 사전의 구축
▪ But, 이처럼 1:1 치환의 번역을 시도하면 문법과 문맥을 무시한 번역이 이루어지기 때문에 결과는 그다지 좋지 않음
Machine Translation (1): Rule-based Machine Translation
▪ 보다 나은 규칙 기반 기계 번역을 위해서는 Target 언어의 규칙들을 수작업으로 추가해주어야 함
e.g.) 스페인어는 영어와 다르게 형용사가 명사 뒤에 오기 때문에 두 단어의 해석 순서를 달리 가져가야 함
▪ 이상: 이같은 언어 규칙을 수작업을 통해 모두 적용한다면 모든 문장의 번역이 가능하게 될 것
▪ 현실: 인간의 언어가 항상 고정된 규칙을 따르지는 않기 때문에 실생활 문서에서는 안정적으로 동작하지 않음
Machine Translation (2): Statistical Machine Translation
▪ 규칙 기반 번역 모델의 실패 이후, 확률 및 통계 기반의 모델을 사용하는 새로운 접근 방법이 대두됨
▪ 통계 기반 번역 시스템을 위해서는 동일한 텍스트가 최소 2가지 언어로 번역되어 있는 많은 훈련 데이터가 필요
▪ 이러한 이중 번역문을 병렬 말뭉치라고 부르며, 컴퓨터가 병렬 말뭉치를 사용해 텍스트를
Source 언어에서 Target 언어로 변환하는 방법을 통계적으로 알아낼 수 있음
유럽 의회의 의사 진행 절차가 21개 언어로 번역되어 있음
Machine Translation (2): Statistical Machine Translation
▪ 확률 기반 번역 시스템은 통계 기반 번역과 달리 하나의 정확한 번역을 생성하려고 하지 않음
▪ 대신 수 천개의 가능한 번역을 생성하여 각각의 번역이 얼마나 정확한가에 대해 확률적으로 순위를 메김
▪ 즉, 훈련 데이터와 번역본이 얼마나 유사한지에 따라 그 정확도를 평가하게 되는 것
Machine Translation (2): Statistical Machine Translation
▪ Step 1: 원본 문장들을 쉽게 번역될 수 있는 단순한 조각들로 분해
▪ Step 2: 각각의 조각에 대해 가능한 모든 번역을 찾음 + 사전적 정의 뿐 아니라 실생활에서 사용되는 모든 맥락에서 !
Machine Translation (2): Statistical Machine Translation
▪ Step 3: 조합 가능한 모든 번역문을 만들고 가장 좋은 번역문 찾기
▪ Step 4: 이렇게 생성된 모든 문장을 확인하고 “인간이 사용할 법한 최적의” 문장 하나를 찾아 채택
즉, 훈련 데이터 세트에 존재하는 문장과 비교해 가장 높은 확률 점수를 얻은 문장을 찾아서 채택
Machine Translation (2): Statistical Machine Translation
▪ 통계 기반 기계번역은 충분한 훈련 데이터를 제공받을 시, 규칙 기반 기계번역보다 훨씬 뛰어난 성능을 보임
▪ 실제로 2000년대 초 Google Translate은 통계 기반 기계번역을 이용해, 기계번역 서비스를 제공
언어학자들이 설계한 규칙 기반 기계번역보다 확률과 통계에 기반한 기계 번역이 더 나은 성능을 보여준 것
“Every time I fire a linguist, my accuracy goes up.”
Frederick Jelinek
▪ But, 통계 기반 기계번역은 번역하고자 하는 언어 한쌍마다 새로운 여러 단계의 번역 경로를
전문가가 수정하고 조정해야 하기 때문에 구축과 유지가 어려움
▪ 이처럼 큰 비용의 감당이 어렵기 때문에 ‘중역’ 을 통한 기계번역이 이루어지게 됨 (e.g. French, Japanese)
Machine Translation (3): Neural Machine Translation
컴퓨터에게 훈련 데이터만 주면 알아서 번역하는 방법을 가르치자 !
How? With RNN & Encoder !
Machine Translation (3): Neural Machine Translation (RNN)
▪ RNN은 주로 순서가 있는 데이터를 입력해 문장 흐름에서 패턴을 찾아 분류하기 위해 사용
▪ 이미 주어진 단어 표현 벡터를 활용해 모델을 학습하지 않고, 텍스트 정보만을 입력해 문장에 대한 특징 정보를 추출
▪ RNN은 데이터에서 패턴을 학습하고자 할 때 유용: 인간 언어는 하나의 크고 복잡한 패턴이기 때문에 RNN 활용이 가능
Machine Translation (3): Neural Machine Translation (Encoder)
▪ 인코딩이란? Source를 표현할 수 있는 측정 값들을 뽑아내는 행위
▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
Machine Translation (3): Neural Machine Translation (Encoder)
▪ 인코딩이란? Source 를 표현할 수 있는 측정 값들을 뽑아내는 행위
▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
Machine Translation (3): Neural Machine Translation
▪ 한 번에 한 단어를 RNN Encoder에 입력하며, Encoder를 거쳐 단어에 상응하는 벡터가 생성됨
▪ Decoder는 인코딩 된 벡터를 병렬 코퍼스에 저장되어 있던 다른 언어의 데이터 셋을 이용해 디코딩
Sequence to sequence Learning: Abstract
Sequence to sequence Learning: Abstract
▪ DNN(Deep Neural Network)은 다양한 Learning task에서 강력한 성과를 보인 모델
▪ 그러나 DNN은 sequence data를 mapping하지 못한다는 치명적인 단점 지님
Sequence to sequence Learning: Abstract
▪ 우리는 sequence learning이 가능한 end-to-end 접근 방법을 제안할 것
▪ 모델에서는 Multi-layered LSTM(Encoder)이 Input sentence를 vector로 mapping 하는데 사용되며,
다른 deep LSTM(Decoder)이 Encoder로 부터 나온 encoded vector를 target sentence로 디코딩
▪ 이러한 시도는 이전의 기계번역 패러다임이었던 SMT 보다 훨씬 더 좋은 성능을 보임
▪ +) Input sentence들을 reverse하여 학습시킨 것이 LSTM 성능 개선에 큰 도움이 되었음
Sequence to sequence Learning: Introduction
▪ 실생활의 많은 중요한 문제들은 sequence data로 표현되어야 더 용이하게 해결이 가능
e.g.) speech recognition, machine translation, question answering
→ Domain 독립적인 sequence 학습 모델이 필요하다 !
Sequence to sequence Learning: Introduction
▪ Source와 그에 상응하는 target 간에 거리가 멀기 때문에 RNN이 아닌 LSTM을 사용
▪ Encoder: input sentence를 timestep 마다 읽어 들여 고정된 사이즈의 vector 를 배출
▪ Decoder: 해당 encoded vector를 이용해 target sentence 추출
→ 즉, LSTM은 다양한 길이의 input을 고정된 길이의 vector로 변환하여 반환
Sequence to sequence Learning: Model
▪ 기계번역 task에서 Input과 Output은 서로 다른 언어이기 때문에 복잡한 관계 지님
그리고 이러한 복잡한 관계로 인해 서로 다른 길이를 지니는 Input과 output의 학습은 어려울 수 밖에 없음
▪ 일반적인 Sequence learning 전략은 RNN을 이용한 Encoder-Decoder 방식
But, long-term dependency 문제로 우리는 LSTM 사용
▪ Decoder는 Encoder로 부터 마지막 hidden state를 받고 이를 토대로, y1, y2, … 를 예측
각각의 y1, y2, … 는 단어사전에 저장된 모든 단어들에 대한 softmax로 표현되어 다음 Layer에 전달
Sequence to sequence Learning: Model
MT에서 <EOS> 토큰의 사용은 필수적인데, 조합 가능한 모든 길이 중 Input의 길이를 정확히 정의하기 위함
Sequence to sequence Learning: Model
▪ 기존 모델과 우리 모델의 3가지 다른 특징
1) 2개의 서로 다른 LSTM 계층 사용 (LSTM Encoder-Decoder)
2) LSTM을 deep하게 쌓음 → 얕게 쌓는 것 보다 효과가 좋더라 !
3) Input sentence를 reverse해서 집어 넣음
Sequence to sequence Learning: Reversed Input
▪ 예시) a, b, c, d 를 ㄱ, ㄴ, ㄷ, ㄹ 로 mapping 하고자 할 때 input을 a, b, c, d가 아닌 d, c, b, a로 집어 넣음
▪ 즉, input과 target 사이에 short-term dependency를 강제로 부여해 학습을 용이하게 하는 것
▪ 물론, Input을 뒤집더라도 하더라도 전체 단어들 간 평균 time distance 에는 변함이 없다
but, Input과 Target 간 관계를 찾기 위한 첫 번째 단어를 찾는 minimal time lag가 압도적으로 줄어듦
→ 이에 따라 backpropagation도 훨씬 수월해지기 때문에 성능이 개선되는 것으로 추정
▪ “실험 전에는 다른 사람들이 상상하는 그림과 같이 앞 부분의 번역은 잘되고, 뒷부분의 번역은 불안할 것으로
예상했지만 막상 실험을 돌려보니 그냥 다 잘되더라!”
Sequence to sequence Learning: Conclusion
▪ 1) 제한된 크기의 단어사전을 보유한 deep LSTM 모델이 훨씬 큰 단어사전을 지닌 SMT를 능가하는 퍼포먼스 보임
→ 간단하고 직관적이며, 상대적으로 최적화가 덜 이루어진 신경망 모델이 SMT를 꺾은 것을 보아하니,
NMT(Neural Machine Translation)가 앞으로 기계번역에 하나의 패러다임을 제시할 것 !
▪ 2) Input을 reverse 하는 행위가 이 정도로 번역의 성능을 높일지는 우리도 몰랐음
LSTM의 제한된 메모리로 인해 긴 문장에는 모델의 점수가 좋지 않을 것이라 예측했으나,
reversed input dataset으로 훈련된 우리 모델은 긴 문장들도 잘 기억하고 번역하더라 BAAAM !
▪ 즉, 기계번역에서 가장 중요한 것은 short term dependency를 가지게 하는 인코딩 방법을 찾는 것이 아닐까?
References
▪ Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences
▪ Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)
▪ “Sequence to Sequence Learning with Neural Networks”, Ilya sutskever
▪ Andrew Ng’s Machine Learning Lecture on Coursera
<EOP>

More Related Content

What's hot

Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역NAVER LABS
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)Tae Young Lee
 
Pretrained summarization on distillation
Pretrained summarization on distillationPretrained summarization on distillation
Pretrained summarization on distillationgohyunwoong
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summitTae Young Lee
 
A Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding AutoencoderA Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding AutoencoderLee Seungeun
 
CS294-112 Lecture 13
CS294-112 Lecture 13CS294-112 Lecture 13
CS294-112 Lecture 13Gyubin Son
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2gohyunwoong
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명Junho Lee
 
딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향LGCNSairesearch
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine TranslationNAVER LABS
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...gohyunwoong
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경NAVER D2
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
 
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled AttentionDeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled Attentiontaeseon ryu
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 

What's hot (20)

Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역
 
파이썬과 자연어 5 | 딥러닝
파이썬과 자연어 5 | 딥러닝파이썬과 자연어 5 | 딥러닝
파이썬과 자연어 5 | 딥러닝
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
Pretrained summarization on distillation
Pretrained summarization on distillationPretrained summarization on distillation
Pretrained summarization on distillation
 
CS294-112 18
CS294-112 18CS294-112 18
CS294-112 18
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
A Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding AutoencoderA Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding Autoencoder
 
CS294-112 Lecture 13
CS294-112 Lecture 13CS294-112 Lecture 13
CS294-112 Lecture 13
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
 
GPT-X
GPT-XGPT-X
GPT-X
 
Attention is all you need 설명
Attention is all you need 설명Attention is all you need 설명
Attention is all you need 설명
 
딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
Mt
MtMt
Mt
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled AttentionDeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 

Similar to Sequence to Sequence Learning with Neural Networks

딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향홍배 김
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
2019 8-19-week-i-learned
2019 8-19-week-i-learned2019 8-19-week-i-learned
2019 8-19-week-i-learnedstrutive07
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)Adonis Han
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Jaemin Cho
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기NAVER D2
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
파싱테이블 만들기 Project
파싱테이블 만들기 Project파싱테이블 만들기 Project
파싱테이블 만들기 ProjectK
 
Chapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive netsChapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive netsKyeongUkJang
 
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?ssuseraf7587
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리Seonbae Kim
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningSoo Kim
 
[Paper Review] What have we achieved on text summarization?
[Paper Review] What have we achieved on text summarization? [Paper Review] What have we achieved on text summarization?
[Paper Review] What have we achieved on text summarization? Hangil Kim
 
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...taeseon ryu
 
Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHyo jeong Lee
 
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...keunbong kwak
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classificationMYEONGGYU LEE
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionWoodam Lim
 

Similar to Sequence to Sequence Learning with Neural Networks (20)

딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
2019 8-19-week-i-learned
2019 8-19-week-i-learned2019 8-19-week-i-learned
2019 8-19-week-i-learned
 
Pycon Korea 2020
Pycon Korea 2020 Pycon Korea 2020
Pycon Korea 2020
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
파싱테이블 만들기 Project
파싱테이블 만들기 Project파싱테이블 만들기 Project
파싱테이블 만들기 Project
 
Chapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive netsChapter 10 sequence modeling recurrent and recursive nets
Chapter 10 sequence modeling recurrent and recursive nets
 
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep Learning
 
[Paper Review] What have we achieved on text summarization?
[Paper Review] What have we achieved on text summarization? [Paper Review] What have we achieved on text summarization?
[Paper Review] What have we achieved on text summarization?
 
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...deep encoder, shallow decoder  reevaluating non-autoregressive machine transl...
deep encoder, shallow decoder reevaluating non-autoregressive machine transl...
 
Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear Regression
 
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification
 
Bidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehensionBidirectional attention flow for machine comprehension
Bidirectional attention flow for machine comprehension
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Sequence to Sequence Learning with Neural Networks

  • 1. Sequence to Sequence Learning With Neural Networks huffon
  • 2. Contents ▪ History of Machine Translation ▪ Rule-based Machine Translation ▪ Statistical Machine Translation ▪ Neural Machine Translation ▪ “Sequence to Sequence Learning with Neural Networks“ ▪ Abstract ▪ Introduction ▪ Model ▪ Conclusion
  • 3. Machine Translation (1): Rule-based Machine Translation ▪ 가장 단순한 접근 방법? Source 언어의 모든 단어를 Target 언어의 단어로 치환하는 것 ▪ 이 접근 방법에 필요한 것은 각각의 단어 번역을 위한 단어 사전의 구축 ▪ But, 이처럼 1:1 치환의 번역을 시도하면 문법과 문맥을 무시한 번역이 이루어지기 때문에 결과는 그다지 좋지 않음
  • 4. Machine Translation (1): Rule-based Machine Translation ▪ 보다 나은 규칙 기반 기계 번역을 위해서는 Target 언어의 규칙들을 수작업으로 추가해주어야 함 e.g.) 스페인어는 영어와 다르게 형용사가 명사 뒤에 오기 때문에 두 단어의 해석 순서를 달리 가져가야 함 ▪ 이상: 이같은 언어 규칙을 수작업을 통해 모두 적용한다면 모든 문장의 번역이 가능하게 될 것 ▪ 현실: 인간의 언어가 항상 고정된 규칙을 따르지는 않기 때문에 실생활 문서에서는 안정적으로 동작하지 않음
  • 5. Machine Translation (2): Statistical Machine Translation ▪ 규칙 기반 번역 모델의 실패 이후, 확률 및 통계 기반의 모델을 사용하는 새로운 접근 방법이 대두됨 ▪ 통계 기반 번역 시스템을 위해서는 동일한 텍스트가 최소 2가지 언어로 번역되어 있는 많은 훈련 데이터가 필요 ▪ 이러한 이중 번역문을 병렬 말뭉치라고 부르며, 컴퓨터가 병렬 말뭉치를 사용해 텍스트를 Source 언어에서 Target 언어로 변환하는 방법을 통계적으로 알아낼 수 있음 유럽 의회의 의사 진행 절차가 21개 언어로 번역되어 있음
  • 6. Machine Translation (2): Statistical Machine Translation ▪ 확률 기반 번역 시스템은 통계 기반 번역과 달리 하나의 정확한 번역을 생성하려고 하지 않음 ▪ 대신 수 천개의 가능한 번역을 생성하여 각각의 번역이 얼마나 정확한가에 대해 확률적으로 순위를 메김 ▪ 즉, 훈련 데이터와 번역본이 얼마나 유사한지에 따라 그 정확도를 평가하게 되는 것
  • 7. Machine Translation (2): Statistical Machine Translation ▪ Step 1: 원본 문장들을 쉽게 번역될 수 있는 단순한 조각들로 분해 ▪ Step 2: 각각의 조각에 대해 가능한 모든 번역을 찾음 + 사전적 정의 뿐 아니라 실생활에서 사용되는 모든 맥락에서 !
  • 8. Machine Translation (2): Statistical Machine Translation ▪ Step 3: 조합 가능한 모든 번역문을 만들고 가장 좋은 번역문 찾기 ▪ Step 4: 이렇게 생성된 모든 문장을 확인하고 “인간이 사용할 법한 최적의” 문장 하나를 찾아 채택 즉, 훈련 데이터 세트에 존재하는 문장과 비교해 가장 높은 확률 점수를 얻은 문장을 찾아서 채택
  • 9. Machine Translation (2): Statistical Machine Translation ▪ 통계 기반 기계번역은 충분한 훈련 데이터를 제공받을 시, 규칙 기반 기계번역보다 훨씬 뛰어난 성능을 보임 ▪ 실제로 2000년대 초 Google Translate은 통계 기반 기계번역을 이용해, 기계번역 서비스를 제공 언어학자들이 설계한 규칙 기반 기계번역보다 확률과 통계에 기반한 기계 번역이 더 나은 성능을 보여준 것 “Every time I fire a linguist, my accuracy goes up.” Frederick Jelinek ▪ But, 통계 기반 기계번역은 번역하고자 하는 언어 한쌍마다 새로운 여러 단계의 번역 경로를 전문가가 수정하고 조정해야 하기 때문에 구축과 유지가 어려움 ▪ 이처럼 큰 비용의 감당이 어렵기 때문에 ‘중역’ 을 통한 기계번역이 이루어지게 됨 (e.g. French, Japanese)
  • 10. Machine Translation (3): Neural Machine Translation 컴퓨터에게 훈련 데이터만 주면 알아서 번역하는 방법을 가르치자 ! How? With RNN & Encoder !
  • 11. Machine Translation (3): Neural Machine Translation (RNN) ▪ RNN은 주로 순서가 있는 데이터를 입력해 문장 흐름에서 패턴을 찾아 분류하기 위해 사용 ▪ 이미 주어진 단어 표현 벡터를 활용해 모델을 학습하지 않고, 텍스트 정보만을 입력해 문장에 대한 특징 정보를 추출 ▪ RNN은 데이터에서 패턴을 학습하고자 할 때 유용: 인간 언어는 하나의 크고 복잡한 패턴이기 때문에 RNN 활용이 가능
  • 12. Machine Translation (3): Neural Machine Translation (Encoder) ▪ 인코딩이란? Source를 표현할 수 있는 측정 값들을 뽑아내는 행위 ▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
  • 13. Machine Translation (3): Neural Machine Translation (Encoder) ▪ 인코딩이란? Source 를 표현할 수 있는 측정 값들을 뽑아내는 행위 ▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
  • 14. Machine Translation (3): Neural Machine Translation ▪ 한 번에 한 단어를 RNN Encoder에 입력하며, Encoder를 거쳐 단어에 상응하는 벡터가 생성됨 ▪ Decoder는 인코딩 된 벡터를 병렬 코퍼스에 저장되어 있던 다른 언어의 데이터 셋을 이용해 디코딩
  • 15. Sequence to sequence Learning: Abstract
  • 16. Sequence to sequence Learning: Abstract ▪ DNN(Deep Neural Network)은 다양한 Learning task에서 강력한 성과를 보인 모델 ▪ 그러나 DNN은 sequence data를 mapping하지 못한다는 치명적인 단점 지님
  • 17. Sequence to sequence Learning: Abstract ▪ 우리는 sequence learning이 가능한 end-to-end 접근 방법을 제안할 것 ▪ 모델에서는 Multi-layered LSTM(Encoder)이 Input sentence를 vector로 mapping 하는데 사용되며, 다른 deep LSTM(Decoder)이 Encoder로 부터 나온 encoded vector를 target sentence로 디코딩 ▪ 이러한 시도는 이전의 기계번역 패러다임이었던 SMT 보다 훨씬 더 좋은 성능을 보임 ▪ +) Input sentence들을 reverse하여 학습시킨 것이 LSTM 성능 개선에 큰 도움이 되었음
  • 18. Sequence to sequence Learning: Introduction ▪ 실생활의 많은 중요한 문제들은 sequence data로 표현되어야 더 용이하게 해결이 가능 e.g.) speech recognition, machine translation, question answering → Domain 독립적인 sequence 학습 모델이 필요하다 !
  • 19. Sequence to sequence Learning: Introduction ▪ Source와 그에 상응하는 target 간에 거리가 멀기 때문에 RNN이 아닌 LSTM을 사용 ▪ Encoder: input sentence를 timestep 마다 읽어 들여 고정된 사이즈의 vector 를 배출 ▪ Decoder: 해당 encoded vector를 이용해 target sentence 추출 → 즉, LSTM은 다양한 길이의 input을 고정된 길이의 vector로 변환하여 반환
  • 20. Sequence to sequence Learning: Model ▪ 기계번역 task에서 Input과 Output은 서로 다른 언어이기 때문에 복잡한 관계 지님 그리고 이러한 복잡한 관계로 인해 서로 다른 길이를 지니는 Input과 output의 학습은 어려울 수 밖에 없음 ▪ 일반적인 Sequence learning 전략은 RNN을 이용한 Encoder-Decoder 방식 But, long-term dependency 문제로 우리는 LSTM 사용 ▪ Decoder는 Encoder로 부터 마지막 hidden state를 받고 이를 토대로, y1, y2, … 를 예측 각각의 y1, y2, … 는 단어사전에 저장된 모든 단어들에 대한 softmax로 표현되어 다음 Layer에 전달
  • 21. Sequence to sequence Learning: Model MT에서 <EOS> 토큰의 사용은 필수적인데, 조합 가능한 모든 길이 중 Input의 길이를 정확히 정의하기 위함
  • 22. Sequence to sequence Learning: Model ▪ 기존 모델과 우리 모델의 3가지 다른 특징 1) 2개의 서로 다른 LSTM 계층 사용 (LSTM Encoder-Decoder) 2) LSTM을 deep하게 쌓음 → 얕게 쌓는 것 보다 효과가 좋더라 ! 3) Input sentence를 reverse해서 집어 넣음
  • 23. Sequence to sequence Learning: Reversed Input ▪ 예시) a, b, c, d 를 ㄱ, ㄴ, ㄷ, ㄹ 로 mapping 하고자 할 때 input을 a, b, c, d가 아닌 d, c, b, a로 집어 넣음 ▪ 즉, input과 target 사이에 short-term dependency를 강제로 부여해 학습을 용이하게 하는 것 ▪ 물론, Input을 뒤집더라도 하더라도 전체 단어들 간 평균 time distance 에는 변함이 없다 but, Input과 Target 간 관계를 찾기 위한 첫 번째 단어를 찾는 minimal time lag가 압도적으로 줄어듦 → 이에 따라 backpropagation도 훨씬 수월해지기 때문에 성능이 개선되는 것으로 추정 ▪ “실험 전에는 다른 사람들이 상상하는 그림과 같이 앞 부분의 번역은 잘되고, 뒷부분의 번역은 불안할 것으로 예상했지만 막상 실험을 돌려보니 그냥 다 잘되더라!”
  • 24. Sequence to sequence Learning: Conclusion ▪ 1) 제한된 크기의 단어사전을 보유한 deep LSTM 모델이 훨씬 큰 단어사전을 지닌 SMT를 능가하는 퍼포먼스 보임 → 간단하고 직관적이며, 상대적으로 최적화가 덜 이루어진 신경망 모델이 SMT를 꺾은 것을 보아하니, NMT(Neural Machine Translation)가 앞으로 기계번역에 하나의 패러다임을 제시할 것 ! ▪ 2) Input을 reverse 하는 행위가 이 정도로 번역의 성능을 높일지는 우리도 몰랐음 LSTM의 제한된 메모리로 인해 긴 문장에는 모델의 점수가 좋지 않을 것이라 예측했으나, reversed input dataset으로 훈련된 우리 모델은 긴 문장들도 잘 기억하고 번역하더라 BAAAM ! ▪ 즉, 기계번역에서 가장 중요한 것은 short term dependency를 가지게 하는 인코딩 방법을 찾는 것이 아닐까?
  • 25. References ▪ Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences ▪ Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) ▪ “Sequence to Sequence Learning with Neural Networks”, Ilya sutskever ▪ Andrew Ng’s Machine Learning Lecture on Coursera
  • 26. <EOP>