attention 7강

  1. Attention 개념 – 사전적으로 “집중”한다는 의미 – Attemtion을 도입함으로써 문장이 길어도 성능이 떨어지지 않게 된다 – 기존 seq-to-seq의 문제점
  1. encoder에 들어가는 문장의 크기가 다양하지만, context vector는 고정되어 있다.

    입력되는 문장의 정보가 경우에 따라서는 충분히 context vector에 전달되지 않는 경우도 있다(bottleneck 문제), RNN 자체의 길이가 길어지면 정보 손실에 의해서 성능이 떨어진다, 3) 사람은 seq-to-seq 처럼 번역하지 않는다.

    즉, 문장을 다 보고 다시는 그 문장을 보지 않고 번역을 하지 않는다.

    번역중에 입력된 문장을 계속 보는 것이 자연스럽습니다.

  2. 2. Attention 함수 – 어떤 query가 들어가면 key와의 유사도를 구해서 각각 value에 반영한다 – 유사도가 반영된 value 값을 모두 더해서 attention value를 만들어낸다 – 일반적으로 key, value는 같은 경우가 많다

3. Dot productention – 세 번째 단어까지는 디코더에서 나오고, 네 번째 단어를 꺼내기 직전의 상황 – Q, K, V 각각의 정의

  • 3번째 시점의 디코더의 h idden state(Query)와 인코더 각각의 hidden state(Keys)의 내적값을 구한다.

  • 내적값이 4개가 나오면 이것을 softmax로 통과시켜서 합이 1인치를 산출(각각 유사도가 나온다) – 이 값을 인코더의 hidden state에 각각 곱한다(Value에 곱한다). 여기에서는 키가 Value와 동일)

이것을 더하면 attention va lue 1개가 나온다.

세 번째 hidden state와 concate한 것을 출력층으로 보내기(attention을 하지 않았다면 그대로 세 번째 hidden state인 s_t만 보내 예측에 활용했다)

  • 이후 가중적을 하여 tanh 도를 적용시키고 s_t를 새로 만들어 출력층에 넣는다
  • 최종적으로는 다시 가중치 행렬을 곱해서 bias를 더해서 soft max까지 해준다고 예측치를 낸다.

세 번째 시점에서 번역하려고 하는데 attention을 통해서 인코더 단어를 다시 한 번 참고하는 것입니다.

– attention value를 context vector 라고 부르는 경우가 많다.

인코더에 해당하는 정보를 정리해 넣기 위해서. 번역하는 순간마다 attention value를 참고한다.

원래 context vector도 그대로 있어

4. 바다나우 어텐션(Bahdanau Attention)-t 시점의 예측을 위해 t-1 시점의 은닉 상태를 활용 (아까 닷 어텐션에서는 s_t 사용) – 그림에서는 디코더의 세 번째 시점의 예측을 위해 디코더의 두 번째 시점의 은닉 상태를 활용

점수 계산식은 내적이 아니라

  • 상식을 행렬로 표현하면 – 아래와 같이
  • attention score에서 h1은 h1과 s_(t-1)의 유사도, 나머지도 각각 유사도임
  • 그 후 softmax 함수를 통과시키고 value 값을 곱한다.

  • dot attentin과 달리, conte x tvector를 출력층에 직접 보내는 것이 아니라, t시점의 입력과 함께 t시점의 은닉상태(s_t)를 구한다.

    이것으로 soft max에 넣어서 출력을 구하는

5. 2개의 어텐션 비교 – 연산 순서를 그림으로 표현하면 다음과 같다

(※수업한 내용을 바탕으로 복습용의 요약. 자세한 내용은 아래 위키독스 내용 참조) https://wikidocs.net/48948 이번 챕터에서는 신경망의 성능을 높이기 위한 메커니즘으로 AI 분야에서 대세 모듈로 사용되는 트랜스포머의 기반이 되는 어텐션 메커니즘에 대해 학습합니다.

wikidocs.net