본문 바로가기

Deep Learning/밑바닥부터 시작하는 딥러닝15

어텐션(Attention) 어텐션의 구조 seq2seq의 문제점 * seq2seq의 encoder는 고정 길이 벡터를(hidden state vector) decoder에 넘겨주게 된다. 이 때 hidden state vector로는 문장의 길이와 상관 없이 특정 길이의 벡터만 사용해야 된다. 이는 문장 정보를 vector에 충분히 담지 못하게 되는 문제를 야기한다. Encoder 개선 * 마지막 time step의 hidden state vector만 decoder에 넘겨주는 것이 아니라 매 time step의 hidden state vector를 모두 decoder에게 넘겨주면 된다. 이 때 각 time step에서 출력된 vector들은 하나의 행렬로서 decoder에게 전달된다. 이를 통해 고정길이 벡터라는 제한을 넘어설 .. 2022. 2. 18.
RNN을 사용한 문장 생성 언어 모델을 사용한 문장 생성 RNN을 사용한 문장 생성의 순서 * 위 그림은 LSTM을 사용한 언어모델을 도식화 한 것이다. * 만약 위 모델을 사용하여 문장을 생성한다고 해보자. ' I '라는 단어를 입력하면 모델은 다음에 올 단어의 확률분포를 출력한다. * 이 때 우리는 다음에 올 단어를 선택하는 2가지 선택에 마주한다. 1) 결정적(deterministic) 방법 - 확률이 가장 높은 단어를 선택하는 방법 - 가장 확률이 높은 단어를 선택하기 때문에 동일한 input에 대해 항상 동일한 output을 출력한다. 2) 확률적(probabilistic) 방법 - 확률이 가장 높은 단어를 무조건 선택하는 것이 아닌, 확률분포대로 sampling하는 것 - 동일한 input에 대해 다른 output이 출.. 2022. 2. 18.
게이트가 추가된 RNN RNN의 문제점 기울기 소실(Gradient Vanishing), 기울기 폭발(Gradient Exploding) * 위 그림은 RNN의 역전파 과정을 나타낸 것이다. +의 경우 상류에서 흘러들어온 기울기를 그대로 흘려보내기 때문에 신경쓰지 말고 MatMul과 tanh의 기울기 역전파 과정을 살펴보자. * y=tanh(x)의 경우 미분 값이 ${\partial y \over \partial x} = 1 - y^2$이다. 기울기를 그래프로 그려보면 다음과 같다. * tanh(x)미분 값은 모두 1 이하이고, x가 0에서 멀어질수록 0에 다가가다가 0으로 수렴한다. 값이 모두 1 이하이기 때문에 역전파를 계속 거치면서 tanh노드의 역전파가 계속되면 기울기가 0이 된다. * MatMul 연산의 경우 상류로부.. 2022. 2. 10.
순환신경망(RNN) 확률과 언어모델 word2vec 을 확률 관점에서 바라보기 * CBOW 모델에서 t 번째 단어가 target이고 양 옆의 단어가 context라면 target 단어에 $w_t$가 올 확률은 아래와 같다. $P(w_t | w_{t-1}, w_{t+1})$ * 이렇게 CBOW 모델은 사후확률을 추측한다. * 만약 context를 설정하는 윈도우를 target의 왼쪽 두 단어로 생각하면 확률은 다음과 같다. $P(w_t | w_{t-2}, w_{t-1})$ * 그리고 이에 대한 손실함수는 아래와 같다. $L = - log P(w_t | w_{t-2}, w_{t-1})$ * 이렇게 주어진 context에서 target을 추론하는 모델은 다음에 설명할 언어모델에서 사용된다. 언어 모델(Language Model).. 2022. 2. 10.