본문 바로가기
딥러닝 with Python

[딥러닝 with Python] 어텐션 (Attention Mechanism)

by CodeCrafter 2024. 11. 4.
반응형

 

 이번에는 지난 시간에 알아본 Seq2Seq 모델의 단점 중 하나인 Encoder를 통해 Bottleneck을 활용해 압축된 정보를 Decoder를 통해 내보내는 것은 long sentences에서는 성능 약화의 요인이 되는 점을 극복하기 위해 활용하고 있는

 

Attention Mecahnism에 대해서 알아보겠습니다.

 

[딥러닝 with Python] 순환 신경망(Recurrent Neural Network)

 

1. Attention Mechanism이란?

- 앞서 언급했듯 Attention은 Seq2Seq에서 Long sentences에서 발생하는 정보 손실 문제로 인해 나오게 되었습니다.

- Attention 이란, 기계어 번역에서 큰 성능 향상을 가져온 방법으로, 이는 모델이 Output을 만들때 Input sequences에서 연관된 부분에 주목해서 만드는 방법을 말합니다.

 

- Attention은 인코딩 단계에서 마지막 hidden state를 통과하게 하는 대신에, 인코더의 hidden state 정보 모두가 decoder에 전달되게 하는 것입니다.

 

- 아래 그림처럼, 인코더에서 RNN을 통해 각 sequence 별 hidden state가 나오게 되는데 이를 attention score로 하고, 이 score들을 softmax에 넣어서 attention distribution을 만듭니다. 

 이제 이렇게 나온 정보들을 바탕으로, 디코더의 hidden state와 attention output을 concatenate 하여 예측값을 만들고 이를 통해 단어를 생성하게 됩니다.

 

 

 

- 이를 Seq2Seq 모델과 연계하여 모델을 구성하는 다음과 같이 만들어 볼 수 있습니다. 이때는 LSTM을 기본으로 해서 sequential data를 처리하였습니다.

 

 

 

 

반응형

댓글