일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Deep Learning
- Computer Vision
- NeRF paper
- 2022
- docker
- panoptic nerf
- linux
- 경희대
- 논문리뷰
- Neural Radiance Field
- NERF
- CVPR2023
- paper review
- Vae
- pytorch
- ICCV
- ICCV 2021
- Python
- panoptic segmentation
- 논문
- 논문 리뷰
- 융합연구
- 딥러닝
- IROS
- GAN
- Semantic Segmentation
- 리눅스
- 파이토치
- CVPR
- Paper
- Today
- Total
윤제로의 제로베이스
어텐션 이해하기... 2편 본문
어텐션(Attention) 메커니즘 등장 배경
seq2seq 모델은 인코더에서 입력 시퀀스를 컨텍스트 벡터라는 하나의 고정된 크기의 벡터 표현으로 압축한다. 근데 이때의 문제점이 바로 정보손실과 Vanishing Gradient이다.
NLP의 특성상 입력 문장이 길면 성능이 떨어지고, 이 문제를 해결하기 위해 Decoder에서 전달하는 Attention 기법이 탄생하게 된것이다.
어텐션(Attention) 작용방법
어텐션은 기본적으로 Decoder에서 출력 단어를 예측하는 매 시점마다 Incoder에서의 전체 입력 문장을 다시 한 번 참고한다는 것이다.
이때 동일한 비율로 참고하는 것이 아니라 해당 시점에서 예측해야할 단어와 연관이 있는 입력 단어 부분을 집중한다.
1. Encoder의 hidden state를 step별로 구한다.
2. 각각의 step의 hidden state에 이전 step 디코더의 hidden state를 dot-product하거나 다른 score함수를 사용해서 점수를 부여한다. 이게 attention score이다.
3. 점수를 softmax
4. Softmax된 점수에 해당하는 hidden state를 곱해준다.
5. 점수에 곱해진 Vector들을 sum up 해준다. --> context vector
사실 이렇게 봐도 이해가 잘 안되는 건 매한가지
그래서 Attention Is All You Need를 좀 보면 아이디어가 떠오를까 싶어서 살짝 찍먹을 했다.
Attention Is All You Need
https://arxiv.org/abs/1706.03762
Attention Is All You Need
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new
arxiv.org
Attention은 input 또는 output의 sequence에 무관하게 서로간의 dependencies를 모델링한다.
Transformer는 이 Attention mechnism만 사용해서 구축한 것이다.
Architecture
Scaled Dot-Product Attention
input으로 Q, K, V를 받는다. Q는 물어보는 주체, K는 Q에 의해 물어지는 주체, V는 데이터의 값이다.
예를 들어 Q는 어떤 단어를 나타내고 K는 문장에 모든 단어들에 대한 vector라고 한다.
Q와 K를 dot product를 해줘서 relation vecotr를 만들어 내고 이를 모든 단어를 Q로 사용할 때 까지 반복한다.
(Q를 모은거랑 K를 한 번에 product를 해서 구함)
그리고 나서 scaling을 해서 0근처에 오도록 만든다. 이 이ㅠ는 softmax자체가 0 근처에서는 gradient가 높지만 large positive나 large negative에 경우 낮은 gradient를 갖기 때문에 학습이 잘 일어나지 않기 때문이라고 한다.
Softmax를 통과해서 Q가 다른 단어들과 correlation이 있는지에 대한 확률분포를 만들고 이를 V와 dot product를 해줘서 기존 vector에 Q와 K간의 correlation정보를 더한 vector값을 만든다.
Multi-Head Attention
하나의 Attention function을 사용하는 것 보단. 여러개의 attention function을 만드는 것이 더 효율적이라고 함ㅁ...
각각 모델의 output을 concat 하고 다시 linear를 통해 매핑함.
head가 여러개면 Q, K, V의 dimension이 줄어들어서 single-head attention일 때랑 computational cost는 비슷함.
'Self Paper-Seminar' 카테고리의 다른 글
CVPR 2023 paper 동향 (0) | 2023.08.31 |
---|---|
어텐션 이해하기... (0) | 2023.05.22 |
2022 IROS 내 맘대로 Paper List - 2탄 (0) | 2023.02.28 |
2022 IROS 내 맘대로 Paper List - 1탄 (0) | 2023.02.17 |
Paper Reading (0) | 2023.01.11 |