Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RNN, CNN에 attention 메커니즘은 어떻게 결합되어 사용될 수 있는 것인가요? #39

Open
eubinecto opened this issue Sep 24, 2020 · 3 comments
Assignees
Labels
attention is all you need question Further information is requested

Comments

@eubinecto
Copy link
Owner

eubinecto commented Sep 24, 2020

Contents

  1. Attention mechanism - 어떤 배경에서 등장하게 되었나?
  2. Attention mechanism

references

@eubinecto
Copy link
Owner Author

eubinecto commented Sep 25, 2020

Attention mechanism - 어떤 배경에서 등장하게 되었나?

먼저 encoder-decoder 구조의 RNN을 활용해 기계 번역 문제를 푸는 상황을 생각해보자.

A simple machine translation model, Figure 16-3, pg. 543, Hands-on ml2
image

"milk"라는 단어에 해당하는 불어 단어 "lait". 이 둘 사이의 path length를 보면 상당히 길다. maximum path length는 O(n * m)이다. (n을 인코더의 길이, m을 디코더의 길이라고 한다면). LSTM / GRU는 게이트 개념의 활용으로 분명 vanishing gradient, exploding gradient 문제를 줄여주었으나, 구조적 기반은 여전히 RNN을 그대로 사용하고 있었기에 O(n*m)은 동일했으며, 때문에 긴 문장의 경우 기울기가 불안정해지는 고질적인 문제는 여전히 존재했다.

이 길이를 더 줄일 수 있는 방법이 없을까?

@eubinecto
Copy link
Owner Author

eubinecto commented Sep 25, 2020

Attention mechanisms

Figure 16-6, pg. 550, hands-on ml
image

디코더의 각 time stamp에서, 인코더의 어떤 출력에 가장 집중을 해야하는지 (가장 유사도가 높은 것이 무엇인지)를 학습하도록 한다면, maximum path length를 획기적으로 줄일 수 있다.

각각의 a(t,j) 가중치는 하나의 작은 신경망의 출력으로 얻어진다. (오른쪽 alignment model).

이를 수식으로 표현하면 다음과 같다.

Equation 16-1
image

dot product - optimise할 weight가 없는데?

attention이라는 개념은 두 정보 사이의 similarity라고 볼 수 있기 때문에, 학습하는 파라미터가 없더라도, similarity measure 중 하나인 dot product를 사용하면 입력 문장과 출력 문장에 대한 유사도를 "인코딩"할 수 있다.

두 토큰 사이의 유사도란 무엇을 의미하는가?

Figure3, Neural Machine Translation by Jointly Learning to Align and Translate, 2014
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
attention is all you need question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants