Transformer
·
딥러닝/NLP
Transformer는 자연어 처리에서 주로 사용하는 딥러닝 아키텍처 중 하나다. 기존 RNN 기반 모델들은 long-term dependency가 있기 때문에, 입력 문장이 길어지면 앞의 과거 정보가 마지막 시점까지 전달되지 못하는 현상이 발생한다. Transformer는 self-attention이라는 특수한 형태의 attention을 사용해 효과적으로 RNN의 한계점을 극복하였다. Transforemr의 구조 트랜스포머의 전체 구조는 위와 같다. 차근차근 알아 보도록 하자. 우선 트랜스포머는 인코더-디코더로 구성된 모델이다. 그림에서 input이 들어가는 박스가 인코더이고 인코더 오른쪽에 있는 박스가 디코더 이다. 인코더와 디코더가 어떻게 작동하는지 이해해보자 ! 트랜스포머의 인코더 이해하기 트랜스..
BLEU
·
딥러닝/NLP
Beam Search Exhaustive search 지금까지 배운 모델의 형태는 output을 greedy 하게 내놓기 때문에, output을 하나만 잘 못 출력해도 그 뒤의 output까지 모두 꼬여 버리게 된다. 하지만 뭔가 잘못되었다는 것을 중간에 깨달아도 다시 되돌아갈수는 없다. y가 출력, x가 입력일 때 우리가 본래 원하는 값은 아래 값을 최대화 하는 것이다. $P(y|x)=P(y_1|x)P(y_2|y_1,x)P(y_3|y_2,y_1,x)$ ... $P(y_{T}|y_1,...,y_{T-1},x)=\prod_1^TP(y_t|y_1,..y_{t-1},x)$ 다만 이렇게 하려면 모든 경우의 수를 따져야 하는데 시간 복잡도는 $O(V^t)$의 연산이 필요하다. 따라서 이전의 greedy한 방법과 ..
Seq2Seq
·
딥러닝/NLP
Seq2Seq Model Seq2Seq 모델은 어제 보았던 RNN의 종류 중 many-to-many, 그 중에서도 첫번째 유형에 해당하는 모델이다. 먼저 input을 모두 받아온 후 이를 기반으로 output을 내보내는 형태이다. 위 구조에서 입력 문장을 읽어내는 RNN 모델을 Encoder 라고 부르고,문장을 한 단어씩 출력하는 RNN 모델을 Decoder라고 한다. 그리고 RNN 모델로는 LSTM을 사용했다. RNN기반의 모델 구조 이기 때문에 hidden state의 dim이 고정된 상태로 계속해서 정보를 누적한다. 길이가 짧을 때는 괜찮지만 길어지게 되면 앞부분의 정보를 잃을 수 있다. 이러한 문제를 해결하기위해 Attention 모듈을 사용한다. Attention 모듈은 decoder의 hidd..
LSTM/GRU
·
딥러닝/NLP
LSTM LSTM은 RNN의 hidden state에 cell-state를 추가한 구조입니다. LSTM은 Long Short-Term Memory의 약자로, 단기 기억을 길게 가져간다는 의미이다. LSTM 모델의 궁극적 아이디어는 cell state 정보를 어떠한 변환없이 그대로 계속 가져가는데에 있다. 이 모델에서 핵심적으로 사용되는 cell state는 과거의 기억들을 최대한 보존하면서 가져갈 수 있으며 이를 통해 Long Short-Term Memory라는 이름에 걸맞는 역할을 하게 된다. 그래서 사실 cell state는 과거 대부분의 정보를 기억하고 있는 벡터, hidden state는 현재 시점에서 필요한 정보만을 cell state에서 필터링한 벡터라고 보면 된다. i,f,o,g는 각각 In..
Basic RNN
·
딥러닝/NLP
Basic of RNN RNN은 기본적으로 동일한 모듈을 중심에 두고 input이 시간에 따라 변화하면서 들어가게 된다. 모듈 내에서 곱해지는 가중치가 시간에 따라 변하지 않는다는 점을 기억하도록 하자. 내부에서 출력과 직접적인 연관이 있는 hidden state의 값은 시간에따라 변화한다. hidden state는 과거의 정보를 기억 하는 역할을 한다. RNN의 동작 과정 RNN의 동작 과정에 대해 살펴보자. 위의 예시처럼 반복적으로 활용되는 가중치 $W$가 RNN이라고 할 수 있으며, 해당 값은 아래 수식으로 표현될 수 있다. $f_w$를 쪼개면 다음과 같이 표현 할 수 있다. hidden state vecot가 가지는 차원 수는 hyper parameter로 우리가 직접 정해야 한다. 앞서 말했듯이..
NLP 기초
·
딥러닝/NLP
최근 경향 Trends of NLP word embedding : 문장 내 각 단어가 의미를 갖도록 벡터 공간 내 하나의 점과 매핑(word2vec) RNN-family models : 문장이라는 시퀀스 데이터에 맞는 모델들(LSTM, GRU, transformer) 각 언어의 어순 등 rule 기반으로 수행되던 알고리즘을 벗어나(많은 예외사항과 다양한 사용 패턴이 존재) 영어와 한글이 잘 번역된 문장을 학습하여 특별한 언어학적인 룰을 배제하고, 단지 시퀀스 데이터를 학습할 수 있는 RNN 기반의 모델을 활용하자 성능이 크게 증가했음 Transformer model : 현재 가장 활발히 활용 및 연구되고 있는 모델 핵심 모듈인 self-attention 모듈을 단순히 계속 쌓아 나가는 식으로 모델의 크기..
ariz1623
'딥러닝/NLP' 카테고리의 글 목록 (3 Page)