RNN 구조의 모델을 사용할때 Encoder와 Decoder를 활용하는 경우가 있습니다.
또한 이의 성능을 높이기 위해 Attention module을 사용한다는 것을 소개 해드리며 시작하겠습니다.
사실 Attention개념까지 검색해서 들어왔다는 것은 대강 기본적인것들에 대해 알고계신다는 거 아니겠습니까?
쉽게쉽게 넘어가겠습니다.
Top-Down 방식의 이해를 먼저 시도하겠습니다.

MHA -> Multihead Attention
MMHA -> Masked Multihead Attention
FFN -> Feed Forward Network
왼쪽 부분이 Encoder이구요, 오른쪽 부분이 Decoder입니다.
둘다 연산들의 집합인 module(Encoder - 파란색통, Decoder - 초록색통)이 N개씩 존재하는 꼴입니다.
그림에 있는 빨간 선은 Residual connection입니다. encoder와 decoder 둘다에 있는 부분이 인상? 적이네요
1. Encoder
Encoder는 2개의 sub-layer로 이루어져 있습니다.
Source가 되는 Token들이 high-dimensional space에 먼저 embedded 됩니다.
그렇게 embedding된 input이 positional encoding과 함께 더해집니다 (literally sum 개념)
합쳐진 embedding이 encoder에 들어가게 됩니다!
2. Decoder
Decoder 내부의 3개의 sub-layer에는 residual connection과 normalization operation이 포함돼있는 것을 알 수 있습니다.
첫번째 sublayer는 MHA가 아닌 MMHA가 있다는 것을 기억 합시다.
Target tokens는 1만큼 offset됩니다. -> wtf? 도대체 무슨말일까요?
encoder처럼 토큰은 우선 embedded into a high-dimensional space되고,
그 embeddings들은 positional encodings과 함께 더해집니다.
합쳐진 embeddings가 decoder에 들어갑니다!
말로하면 누가 모르겠습니까? 한문장 한문장이 읽어 내려가기 고역스럽네요 설명을 추가할수 있는 방안을 간구해보도록 하겠습니다.
'Have Done > Attention' 카테고리의 다른 글
[ViTs] Going deep with Image Transformers (1/4) (0) | 2022.10.27 |
---|---|
[Attention] Evolution of Attention - Version.2 (0) | 2022.09.14 |
[Attention] Evolution of Attention - Version_0,1 (0) | 2022.09.13 |
[Attention] attention 뭐 들어도 모르겠는 제대로 공부좀 하자 (0) | 2022.07.05 |
Attention is all you need (0) | 2022.03.15 |
댓글