본문 바로가기

머신러닝/[딥러닝을 이용한 자연어 처리]

(23)
Questions 학습목표 각각의 Case Study에서 나온 질문들입니다. 같이 생각하는 시간을 가지면서 배운 지식을 공고히 다집니다. 질문 1. Multilingual Translation을 훈련하기 위해서 얼마나 많은 데이터가 필요한가요? 일단 Multilingual이기 때문에, 각 언어별 데이터는 오히려 적어도 되겠죠. 왜냐면 그 데이터를 모두 모아서 Neural Net하나를 학습하니까. 이런 Multitask model은 데이터가 작을 때 더 도움이 됩니다. 2. Character token embedding에서 숫자를 어떻게 처리하나요? 예를 들어, Char level은 그냥 숫자 그대로 나눠서 썻습니다. 그리고 만원을 10000 won으로 번역할 것인가, ten thousand won으로 번역할 것인가는 사실..
Real-Time Translation Learning to Decode 학습목표 Docoding 하는 방법을 고민해보고, 동시통역에 대해 공부합니다. 핵심키워드 완전탐색(Exhaustive Search, Brute-force Search) Ancestral Sampling, Forward Sampling 탐욕적 탐색(Greedy Search) 빔 탐색(Beam Search) 동시통역(Simultaneous Translation) 학습하기 마지막 주제는, 생성문제에 대해 자세히 살펴보겠습니다. 여태까지 Representation을 뽑는 방법, 뽑아진 토큰들을 스코어링하는 방법 다 배웠는데, 중요한 것 하나를 안했죠. 스코어링된 토큰들을 어떻게 선택해서, 좋은 번역 결과를 뽑을 것이냐. 이 얘기를 가장 뒤로 미뤄왓던 이유는, 아직 명확한 베스트 원이 나오지 않았기 때문입니다. ..
Meta-Learning of Low-Resource Neural Machine Translation 학습목표 메타학습을 활용한 멀티 태스킹 학습을 공부합니다. 핵심 키워드 멀티 태스킹 학습(MultiTask Learning) 다중언어 기계번역(Multilingual Translation) 메타학습(Meta-Learning) 전이학습(Transfer Learning) 학습하기 다중언어 기계번역을 만든 이유중 하나가 리소스가 별로 없는 언어에 대해 좋은 모델을 만들기 위함이었는데요. 그리고 실제로도 아래 그림처럼, Fi-En의 정확도가 상승했어요. 그런데 생각해보면 Fi-En이 다른 데이터에 비해 작은 것이지, 따로 떼놓고 보면, 절대 작은 데이터가 아니란 말이죠. 그래서 극단적으로, 800개 정도의 리소스만으로도 충분한 정확도를 얻어내고자 하는 시도가 있었습니다. 결과는 좋지 않았습니다. 왜그러냐면, 데..
Fully Character-Level Machine Translation 학습목표 글자 단위의 기계번역을 학습합니다. 또한 실험결과를 통해 다중언어 기계번역으로 확장시킵니다. 핵심키워드 기계 번역(Machine Translation) 형태(Morphology) 글자 단위 모델링(Character-level Modeling) Fully Character-level Machine Translation 학습하기 보통 기계 번역이라고 하면, 문장을 단어로 분할하고, 그 단어에 대한 어떤 번역을 하는 과정을 자연스럽게 떠올리죠. 그런데, 살짝 다시 생각을 해보면, Neural Net을 사용할 때, 그렇게 해야만하는가-하는 생각이 드는거죠. 문장이 단어로 이루어져있든, 알파벳 하나하나 캐릭터로 이루어져있든, 이모지가 들어가 있든, 사실 그냥 인코딩만 할 수 있다면, 연속 벡터 공간으로 ..
Questions 질문 1. 기계번역의 평가는 어떻게 하나요? 사람들이 RNN을 안쓰고 어떤 다른 방법으로 가고 있습니까? 훈련데이터를 필터링해서 크기를 줄일 수 있는 방법은 어떤 것이 있나요? 우선 블루(BLEU) 스코어가 있습니다. 이게 가장 스탠다드하게 쓰이고 있는데, 문장이 하나가 주어져 있고, 이 문장의 Reference translation이 5~10개 정도 주어집니다. 이렇게 사람이 만든 Reference translation의 N-gram들을 다 볼겁니다. 보통 n=4까지 보구요. 그리고 시스템의 Translation이 만든 N-gram의 Precision을 계산합니다. 다만 Precision 특성상, 아무것도 예측안하면 100%가 되니까, 번역 결과의 길이를 통해 페널티를 적용하는거죠. 두번째 저는 RNN..
Learning to Describe Multimedia 학습목표 자연어 뿐만 아니라 멀티미디어 컨텐츠로서 기계번역 메커니즘을 확장해봅니다. 핵심키워드 기계 번역(Machine Translation) 연속 벡터 공간(Continous Vector Space) 인코더(Encoder) 디코더(Decoder) Image Caption Generation Video Description Generation Speech Recognition Self-Attention 학습하기 여태까지 기본적인 것들에 대해 말해봤구요. 이제부터는 이런 것들 위에서 무엇을 더 할 수 있을지에 대해서 말씀드리려고 합니다. 다만, 결국 똑같은 메커니즘, 나아가서 똑같은 코드를 사용해 다른 문제를 푸는 경우도 만나실 수 있으실겁니다. 먼저 기계 번역부터 보자면, 우리의 목표가 번역이었으니까, ..
RNN Neural Machine Translation 학습목표 RNN을 활용한 기계번역의 과정을 공부합니다. 핵심키워드 기계번역(Machine Translation) 소스 언어(Source Language) 타겟 언어(Source Language) 인코더(Encoder) 디코더(Decoder) 학습하기 제가 2015년도에 Bahdanau라는 분과 함께 진행했던 내용은, RNN을 통해 기계번역을 하자는 것이었구요. 이 경우 Bidirectional RNN을 사용했었습니다. 정방향과 역방향, 이 두가지 방향으로 RNN을 통해 토큰을 읽어내리면 두가지 방향의 컨텍스트를 종합한 Representation이 나오겠죠. 이 두개를 Concat시켜서 최종 Representation을 뽑아내니까, 소스 언어의 토큰 개수에 따라서 최종 Representation의 개수가 ..
Encoder & Decoder 학습목표 기계번역의 모델구조와 과정을 살펴봅니다. 핵심키워드 기계번역(Machine Translation) 소스 언어(Source Language) 타겟 언어(Target Language) 인코더(Encoder) 디코더(Decoder) 토크나이즈(Tokenize) 하위 단어의 세분화(Subword Segmentation) 자기회귀 언어 모델링(Autoregressive Language Modeling) 학습하기 간단하게 시작해봅시다. Text classification이나 Language model이나 다 똑같이, 먼저 Vocabulary를 만들어야합니다. 만든 이후에는 정수 인덱스로 원래 단어를 찾아서 보여주게 되겠죠. 아래와 같습니다. 그 이후에는 소스 언어가 있을 때, 이것의 Representati..