3. Attention Mechanism 정리

Attention Mechanism: Overview

  • "The cat ate the mouse" 라는 영어 문장을 프랑스어로 번역하는 경우 인코더-디코더를 사용
  • 인코더-디코더는 한 번에 한 단어를 취해 각 단계에서 그것을 번역한다

  • 그러나 소스 언어의 단어가 대상 언어의 단어와 일치하지 않는 경우가 있다.
  • "Black cat ate the mouse." 라는 영어 문장을 프랑스어로 번역하는 경우 영어의 첫 단어는 "Black" 이지만 번역된 프랑스어의 첫 단어는 "Chat"으로 고양이라는 뜻의 프랑스 단어이다.

  • 그렇다면 어떻게 모델이 검은색이라는 단어 대신 고양이라는 단어에 더 집중하도록 훈련시킬 수 있는가?
  • 어텐션 메커니즘(Attention Mechanism)이라고 불리는 것을 인코더 디코더에 추가할 수 있다.
  • 어텐션 메커니즘은 신경망이 입력 순서의 특정 부분에 집중하도록 하는 기술이다.
  • 이것은 가장 중요한 부분이 가장 높은 가중치를 받는 입력 시퀀스의 다른 부분에 가중치를 할당함으로써 수행된다.

  • 위는 전통적인 RNN(Recurrent Neural Network) 기반 인코더 디코더의 모습이다.
  • 모델은 한 번에 하나의 단어를 취하고 히든 상태(Hidden State)를 업데이트하여 다음 단계로 전달한다.
  • 인코더의 모든 단계가 끝나면 최종 히든 상태만 디코더로 전달되며, 디코더는 처리를 위해 최종 히든 상태와 함께 소스언어를 대상 언어로 번역한다.

  • 어텐션 모델(Attention Model)은 두 가지 점에서 위에서 설명한 전통적인 시퀀스 to 시퀀스 모델과 다르다.
  • 인코더는 훨씬 더 많은 데이터를 디코더로 전달한다.
  • 어텐션 디코더가 출력결과를 만들기 전에 추가적인 단계를 수행한다.

  • 인코더는 최종 히든 상태만 디코더에 넘기는 대신 인코더의 각 단계에서 생성된 모든 히든 상태를 디코더에 전달한다.
  • 디코더는 모든 히든 상태 정보를 사용해 문장을 번역한다.

  1. 수신한 히든 상태들의 세트를 살펴본다. 각각의 인코더 히든 상태는 입력 문장 내의 특정 단어와 연관된다.
  2. 각각의 히든 상태에 점수를 준다.
  3. 각각의 히든 상태에 그것의 소프트-맥스 점수를 곱한다. 따라서 가장 높은 점수를 가진 히든 상태들을 증폭시키고 낮은 점수를 가진 히든 상태들을 축소시킨다.

  • a: 각 단계에서의 어텐션 비율
  • H: 각 단계에서의 인코더 RNN의 히든 상태
  • B: H의 아레에 붙은(H₂의 2) B는 각 단계에서의 디코더 RNN의 히든 상태

  • 어텐션 메카니즘을 사용하면 "Black cat" 번역의 반전 "Chat noir"가 어텐션 다이어그램에 명확하게 표시된다.

  • "ate" 는 두 단어 "a mange"로 번역되었다.
  • 우리는 어텐션 네트워크가 두 단계 동안 "ate" 라는 단어에 머무른 것을 알 수 있다.

  • 어텐션 단계 동안 우리는 인코더 히든 상태와 H₄ 벡터를 사용하여 컨텍스트 벡터 a₄를 계산한다.
  • 그리고 나서 H₄와 a₄를 연결한다.

  • 이 연결된 벡터는 피드포워드(feedforward) 신경망을 통해 전달된다.
  • 다음 작업을 예측하기 위해 모델과 공동으로 하나의 훈련을 수행한다.

  • 피드포워드 신경망의 출력은 이 시간 단계의 출력 단어를 나타낸다.

  • 이 프로세스는 마지막 문장 토큰이 디코더에 의해 생성될 때까지 계속된다.
  • 이것이 전통적인 인코더 디코더 아키텍처의 성능을 향상시키기 위해 어텐션 메커니즘을 사용할 수 있는 방법이다.

추가 참고

links

social