모두야

CH8) 어텐션 본문

밑.시.딥/2권

CH8) 어텐션

미미밍2 2021. 9. 28. 21:10
반응형

seq2seq의 문제점/ 해결

Encoder가 시계열 데이터를 인코딩 할 때, Encoder의 출력은 '고정 길이의 벡터' 이다. 

입력 문장 길이에 관계없이, 항상 같은 길이의 벡터로 표현해야한다.

-> 아무리 긴 문장이여도 고정 길이의 벡터로 변환 해야한다.

 

☞ Encoder 개선

Encoder 출력 길이를 입력 문장 길이에 따라 바꿔주는 것이 좋다. 

시각별 LSTM 계층의 은닉 상태 벡터를 모두 이용하여 입력된 단어와 같은 수의 벡터를 얻는다. 

 

=> 시각별 LSTM 계층의 은닉 상태에는 어떤 정보가 담겨 있을까?

직전에 입력된 단어의 정보가 많이 포함되어 있다. 

 

은닉상태의 모든 시각만큼 꺼낸다


☞ Decoder 개선

1. 맥락벡터 c

[ 입력과 출력의 여러 단어 중 어떤 단어끼리 서로 관련이 있는가 의 대응 관계를 알고 싶다 ]

고양이=cat, 나=I (얼라인먼트alignment)

 

Encoder에서 각 단어에 대응하는 LSTM 계층의 은닉 상태 벡터 hs가 출력되었다. 

 

각 단어에 대응하는 벡터를 hs에서 골라서 사용하는 것이 아니라, (선택시 미분 불가->오차역전파법 불가)

hs의 모든 벡터를 사용하고 각 단어의 중요도를 나타내는 가중치 a를 확률분포처럼 나타낸다.

중요도 a와 각 벡터 hs를 통해 가중치 합을 구하여 맥락벡터 c를 계산한다.

a에서 '나'에 해당하는 가중치가 0.8 이므로 맥락벡터 c에서도 '나' 벡터의 성분이 많이 포함 되어있다.

(마치 '나' 벡터를 선택한 것 같다)

 

2. 가중치 a

위의 코드 구현을 통해 가중합을 이용하여 맥락 벡터를 얻을 수 있다. 이때 가중치 a는 어떻게 구할까?

데이터로부터 자동으로 학습할 수 있는 가중치 a를 구해보자.

 

Decoder의 첫번째(시각) LSTM 계층이 은닉 상태 벡터h 를 출력할 때까지의 처리를 알아보자.

내적 : 두 벡터가 얼마나 같은 방향을 향하고 있는가 = 두 벡터의 유사도를 표현한다.

 

hs와 h의 내적을 통해 유사도를 산출한다 -> s (정규화 되기 전: 점수) => a (정규화 : softmax 함수 0~1값)

 

3. Attention 계층

[Attention weight + Weight sum 계층]

Attention weight : Encoder가 출력하는 각 단어의 벡터 hs로 부터 해당 단어의 가중치 a를 구한다.

Weight sum : a와 hs의 가중 합을 구하고, 그 결과 맥락 벡터 c를 출력한다.


어텐션을 갖춘 seq2seq 구현

 


어텐션 가중치 시각화

seq2seq가 시계열 변환을 할 때, 어텐션 가중치를 시각화 한 것

 

년/월/일 대응 관계가 중요하다

=> 신경망 내에서 어떤 처리가 이루어지는 지 잘 모르는 경우가 많은데, 어텐션으로는 단어와 단어의 관련성을 살펴볼 수 있다.

 

 

 

 

 


양방향 RNN

 

  • Encoder가 출력하는 hs의 각 행은 대응하는 단어의 성분이 포함되어 있다.
  • 기존 RNN에서는 글이 왼쪽에서 오른쪽으로 읽히니까 균형 있지 못하다.
  • 양방향 RNN을 이용하여 균형있도록 처리하려고 한다.

역방향 LSTM을 추가한다. 두개의 LSTM 계층의 은닉 상태를 연결 시킨 벡터가 최종 은닉상태로 처리된다.

 

양방향으로 처리함으로써, 각 단어에 대응하는 은닉 상태 벡터에는 좌우 양쪽 방향의 정보를 집약할 수 있다.

 

1) 기존 LSTM 계층 (왼쪽→오른쪽 처리)

2) 뒤집어서 LSTM 처리 (오른쪽→왼쪽 처리)


Attention 계층의 출력(맥락 벡터)가 다음 시각 LSTM 계층에 연결 되는 경우

vs

Attention 계층의 맥락 벡터가 Affine계층으로 들어가는 경우 [기존]

 


skip 연결(skip connection)

= 잔차 연결(residual connection)

= 숏컷 (short-cut)

: 계층을 넘어 선을 연결하는 기법

:: skip 연결 시 덧셈(원소별 덧셈)으로 연결된다. = 역전파시 영향X


1. 구글 신경망 기계 번역 (GNMT)

2. 트랜스포머

-> RNN을 제거한 Attention을 사용하여 처리한다.

3. 뉴럴 튜링 머신(NTM) 


정리

 

반응형