본문 바로가기
Learning-driven Methodology/DL (Deep Learning)

[Deep Learning] Attention Mechanism

by goatlab 2023. 12. 28.
728x90
반응형
SMALL

Attention

 

Seq2Seq는 인코더 마지막 히든 스테이트 (hidden state)에 모든 인코더 정보를 우겨넣게 된다. 그리고 LSTM을 통해 Long-term dependency 문제를 해결했지만, 뒤 타임 스텝에서 앞쪽의 정보를 잘 저장하지 못하는 현상이 발생하기도 했다. 이 문제를 보완하기 위해 attention이 등장하게 된다.

 

동작 원리

 

 

어텐션이란, 디코더 (Decoder)가 각 타임 스텝 (time step)에서 결과를 생성할 때에 인코더 (Encoder)의 몇번째 타임 스텝을 더 집중 (Attention)해야하는 지를 스코어 형태로 나타내는 것이다. 각 디코더의 타임 스텝마다 인코더의 히든 스테이트 백터 (hidden state vector)와의 유사도를 계산함으로써, 인코더의 몇번째 타임스텝의 히든 스테이트 백터가 더 필요한 지 적절히 고려할 수 있게 된다. 디코더에서 예측시 인코더에서 집중할 정보를 더 고려하여 예측한다.

 

 

RNN기반 Seq2Seq 구조의 경우, 이전 스텝의 히든 스테이트 (hidden state)와 현재 스텝의 디코더 입력값을 통해, 디코더 히든 스테이트를 구해줬다. 어텐션 구조가 추가된 형태에서는 현재 스텝의 디코더 히든 스테이트와 각각의 인코더 타임 스텝의 히든 스테이트들을 내적해서 어텐션 스코어 (Attention scores)를 구해준다. 구해진 스코어를 인코더 히든스테이트 벡터들의 가중치로 사용하여 가중 평균인 Attention output, 즉 하나의 백터를 구해줄 수 있다. 마지막 아웃풋 레이어에는 디코더 타임 스텝의 히든 스테이트 백터와 어텐션 아웃풋 (attention output)을 concat해서 입력하게 된다.

 

Teacher forcing

 

 

티쳐 포싱이란, 디코더의 다음 타임 스텝에 입력값으로 이전 타임 스텝의 결과값이 아닌 정답값을 넣어 학습하는 형태를 말한다. 예를 들어, 그림에서 <START> 토큰이 디코더 첫번째 입력값으로 들어가고, 두번째 입력값은 the가 들어가고 세번째는 poor가 들어가야 한다. 여기서, <START>입력값에 대한 예측값이 the가 아닌 poor가 나온다면, 그 이후로 모든 타임 스텝은 꼬이게될 것이다. 이를 방지하기 위해 이전 타임 스텝의 예측값이 아닌 정답값을 넣어주는 것이 티처 포싱이다.

 

장점 디코더에서 추론 (inference)할 때, 틀린값이 입력값으로 들어가지 않으므로 학습이 빨라진다.
단점 주어진 데이터를 가지고 학습할 때와 실제 환경에서 테스트할 때의 환경이 달라진다.

 

단점을 해결하고 장점을 살리기 위해, 보통 적용할때 초기에만 동작하게 하고 모델이 어느정도 정확도가 높아지면 기존방식대로, 디코더 전 타임 스텝의 예측값을 다음 타임스텝의 입력으로 넣어준다.

 

Attention Mechanism

 

 

Luong - dot 간단한 내적을 통한 유사도 (어텐션) 측정하는 기법으로, 학습가능한 파라미터가 존재하지는 않는다.
Luong - general 유사도를 구하고자 하는 두 벡터 사이에 학습가능한 파라미터로 구성된 행렬을 사용한다.
Luong - concat 유사도를 구하고자 하는 두 벡터를 concat하여 선형변환(비선형성(선형변환(x)))으로 감싸서 계산을 진행한다.

 

Attention 장점

 

  • 처음 시도했던 분야인 기계번역 (NMT)에서 성능 향상을 이뤘다. 성능 향상 이유는 각 디코더 스텝마다 인코더의 어떤 스텝에 더 집중해야할 지 알려줬기 때문이라고 할 수 있다.
  • 기존 Seq2Seq구조에서는 인코더에서 디코더로 정보를 넘길 때에는 인코더의 마지막 타임스텝의 hidden state vector를 통해서 넘길 때, 병목 현상(bottleneck problem)이 발생한다. 어텐션은 한번에 정보를 전달하는 것이 아니기 때문에 이 문제를 해결해준다.
  • RNN의 한계로 지적됐던 오차역전파 과정에서의 그레디언트 베니싱 (gradient vanishing)문제를 해결해준다. 역전파 과정에서 서로 멀리 있어도 여러 스텝을 거쳐 역전파되지 않고, 어텐션 구조를 통해  한번에 역전파될 수 있기 때문이다.
    (역전파는 가중치를 업데이트하는 것을 말함)

 

728x90
반응형
LIST