본문 바로가기

전체 글

(157)
어텐션(Attention) (2) 1. Seq2Seq + Attention■ 어텐션(Attention) (1) 에서 Seq2Seq 모델에 어텐션 메커니즘을 적용할 때, Query는 Decoder의 은닉 상태, Key와 Value는 Encoder의 은닉 상태들로 설정한다고 하였다. ■ 이렇게 설정하는 이유는 어텐션의 핵심 아이디어와 동작 방식에 기반한 것이다. 1.1 Seq2Seq + Attention의 아이디어■ SeqSeq + Attention의 핵심 아이디어는 Decoder가 출력 단어를 예측할 때, Encoder 입력 시퀀스의 어떤 부분에 더 주목(Attention)해야 할지를 결정하는 것이다. ■ 이를 쿼리(Query), 키(Key), 값(Value) 관점에서 설명하면 다음과 같다.① 쿼리(Query): 디코더의 은닉 상태(Hid..
어텐션(Attention) (1) 1. 어텐션(Attention)1.1 RNN에 기반한 Seq2Seq의 문제점■ RNN에 기반한 Encoder-Decoder 구조의 Seq2Seq 모델은 Encoder가 시계열 데이터를 인코딩한 후, 그 정보를 고정 길이 벡터 \( h \)에 담아 Decoder에 전달한다. ■ Decoder는 이 벡터를 바탕으로 정답(또는 타깃)과의 비교를 통해 예측 결과를 평가하고, 이를 바탕으로 Loss를 계산하여 학습을 수행하는 구조이다.■ 이렇게 RNN에 기반한 Seq2Seq구조에는 두 가지 주요한 문제점이 있으며, 각각 Encoder와 Decoder에 관련되어 있다.■ 먼저, RNN에 기반한 Decoder의 문제점은 고질적 문제인 기울기 소실 문제이다.■ Encoder의 문제점은 은닉 상태와 관련이 있다.■ E..
언어 모델의 평가 방법 - Perplexity, BLEU Score(Bilingual Evaluation Understudy Score) 1. Perplexity(PPL)■ 시퀀스투시퀀스(Sequence‑to‑Sequence, seq2seq) (2)에서 언어 모델(Language Model)인 Decoder가 얼마나 정확하게 번역했는지 평가하는 번역 성능 지표로 Perplexity(PPL)를 사용했다.1.1 Perplexity 의미■ 입력 데이터가 여러 개인 경우 Perplexity(PPL)의 공식은 다음과 같다. ■ 계산된 perplexity 값의 해석은 '과거 단어 다음에 출현할 수 있는 단어의 후보 수'이다. 그러므로 값이 낮을수록 모델의 예측 성능이 좋은 것으로 간주할 수 있다.- 만약 perplexity 값이 10이라면, 이는 과거 단어의 다음 단어로 출현할 수 있는 단어의 후보가 10개임을 의미한다.- perplexity 값이 ..
시퀀스투시퀀스(Sequence‑to‑Sequence, seq2seq) (4) 1. Seq2Seq 응용 - 이미지 캡셔닝(Image Captioning) ■ Seq2Seq는 '어떤 하나의 시계열 데이터'를 '다른 시계열 데이터'로 '변환'하는 프레임워크라고 할 수 있다.■ 시계열 데이터를 변환하는 프레임워크를 이용하여 영어-프랑스어 번역처럼 '한 언어의 문장(입력 시퀀스)'을 '다른 언어의 문장(출력 시퀀스)'으로 변환하는 "기계 번역", '긴 문장(입력 시퀀스)'을 '짧은 요약문(출력 시퀀스)'으로 변환하는 "문장 요약", '질문(입력 시퀀스)'에 대한 '응답(출력 시퀀스)'을 생성하는 "질의-응답" 등에 이용할 수 있다. ■ Seq2Seq는 2개가 짝을 이루는 시계열 데이터를 다루는 문제에도, 자연어 외에도 음성이나 영상 등에도 이용할 수 있다. 음성과 영상에도 어떤 '순서(s..
시퀀스투시퀀스(Sequence‑to‑Sequence, seq2seq) (3) 1. Seq2Seq 개선 ■ Seq2Seq 모델의 학습 진행 속도와 정확도를 개선할 수 있는 방법으로 입력 데이터를 반전(reverse)하는 것과 Peeky Decoder를 사용하는 방법이 있다. 1.1 Encoder에 들어가는 입력 시퀀스 반전(reverse)■ 첫 번째 방법은 Encoder에 입력되는 입력 시퀀스 데이터의 순서를 반전시켜 Encoder 모델어 입력하는 것이다. 이 기법은 단순하지만 성능을 개선시킬 수 있다.■ 입력 시퀀스 반전 기법이란, 예를 들어 '나', '는', '고양이', '로소', '이다.'라는 순서를 가지는 시퀀싀의 순서를 반전시켜 '이다', '로소', '고양이', '는', '나'와 같이 역순으로 Encoder 모델에 입력하는 것이다.■ 단순히 입력 시퀀스의 순서를 바꾸는 ..
시퀀스투시퀀스(Sequence‑to‑Sequence, seq2seq) (2) 1. Seq2Seq를 이용한 번역기 구현■ seq2seq 모델을 사용하여 기계 번역기를 구현한다. 예제로 사용한 데이터는 영어-프랑스어 텍스트 파일이다. 해당 파일은 영어와 프랑스어가 대응되는 병렬 말뭉치(parallel corpus)이다.- 병렬 말뭉치는 두 개 이상의 언어가 상호 대응되는 형태로 연결된 말뭉치이다.■ 목표는 이 병렬 말뭉치를 사용하여 입력 시퀀스인 영어를 입력하면 출력 시퀀스인 프랑스어를 출력하는 seq2seq 모델을 구현하는 것이다. 이때, 입력 시퀀스와 출력 시퀀스의 길이는 서로 다를 수 있다.1.1 전처리■ 이 텍스트 데이터는 Run!    Prenez vos jambes à vos cous !와 같이 \t(tab)을 기준으로 영어와 프랑스어로 연결되어 있으며, 악센트와 구두점이..
LSTM, GRU (2) 1. nn.LSTM( ), nn.GRU( )1.1 (일반적인) LSTM/GRU■ 파이토치에서 LSTM/GRU 셀을 사용하는 방법은 RNN 셀을 사용하려고 했을 때와 유사하다.torch.nn.LSTM(input_size, hidden_size, num_layers=1, bias=True, batch_first=False, dropout=0.0, bidirectional=False, proj_size=0, device=None, dtype=None) torch.nn.GRU(input_size, hidden_size, num_layers=1, bias=True, batch_first=False, dropout=0.0, bidirectional=False, device=None, dtype=..
LSTM, GRU (1) 1. LSTM 등장 배경■ LSTM 모델은 기존의 바닐라 RNN 모델에서 정보를 저장하는 과정을 발전시켜 바닐라 RNN의 큰 단점이었던 단기 기억만 가능하다는 부분(장기 의존성 문제)을 개선했다. ■ 이 과정에는 새로운 '기억 셀(memory cell)'인 'cell state' 구조를 제안하고 '게이트(gate)'라는 개념을 사용하여 단기 기억과 장기 기억뿐만 아니라 '망각' 개념까지 담겨 있어 인간의 기억 관리와 비슷한 부분이 있다.1.1 RNN 문제점■ 가장 단순한 형태의 RNN을 바닐라 RNN(Vanilla RNN) 또는 Simple RNN이라고 부른다. 바닐라 RNN은 다음과 같은 순환 경로를 통해 과거 시점의 정보를 계승할 수 있어 시퀀스 데이터를 다루기에 적합하다. - 바닐라 RNN은 위와 ..