이 글은 Joshua Starmer의 Attention for Neural Networks, Clearly Explained!!! 를 정리한 것임을 밝힙니다.
Encoder-Decoder 모델은 긴 input에 대해 취약하다. → context vector로 압축하는 데에는 한계가 있다.
RNN의 Long term 메모리 문제를 LSTM이 해결해준 것 아닌가? 하는 의문이 들 수 있겠지만, 아무리 Long term 을 저장한다고 해도, input이 너무 길어지면 과거의 정보가 잊혀질 수 있다.
Attention
Attention의 핵심 아이디어는 Encoder에서 Decoder로 새로운 경로들을 추가하는 것이다.
즉, 입력 값마다 하나씩 경로를 만들어서, Decoder의 각 단계가 입력 값을 직접 접근할 수 있도록 하는 것이다.

Steps for Attention

1. Decoder의 Output과 Encoder의 Output이 얼마나 유사한지 확인한다. → dot product로 유사도 점수 계산

2. 구한 유사도 점수들 끼리 softmax 함수를 적용한다.
3. encoder output 값에 softmax 값을 곱하여 스케일링을 해주고 모든 값을 더하여 최종 값을 도출한다.

4. Attention value와 원래 Decoder output을 Fully connected layer에 연결하여 최종 결과를 도출한다.
5. <EOS>가 나올 때까지 output을 찍어낸다.
근데... 이렇게 일일이 Decoding 할 때 Attention 할 거면, Seq2Seq 구조를 꼭 써야할까..?
→ 아니다! 그래서 등장한 게 Attention Is All You Need (Transformer) 논문이다.
'Deep Learning' 카테고리의 다른 글
| Sequence-to-Sequence(Seq2Seq) (0) | 2024.11.19 |
|---|---|
| Transformer (0) | 2024.04.28 |
| [신경망] Neural Network와 Back propagation (1) | 2023.12.03 |
| LSTM 쉽게 이해하기 (0) | 2023.09.14 |
| RNN 쉽게 이해하기 (2) | 2023.09.14 |