728x90
학습 내용
- Transformer에 대해 이해하기 위해 attention을 이해해보고자 한다.
- 기본적인 attention의 개념에 대해 이해해본다
Attention
Attention의 개념을 쉽게 이야기 해보면 한 문장 데이터 안에 토큰들의 상관관계를 파악해서
이를 통해 다음 토큰을 예측할때 (나는 -> 다음단어)
유사도가 높은 단어를 선택하자는 개념이다
또, attention 하면 빠질 수 없는 개념이 Query, Key, Value의 개념인데,
- Query : 말그대로 쿼리(질문)이다. 이 단어와 다른 단어들의 상관관계를 알려줘!
- Key : 내가 질문한 값들에 대한 답을 얻기 위해 필요한 소스라 생각하면 된다
- Value : 이건 비유할만한게 없는거 같아서... 추후에 query와 key를 통해 구한 값을 비교하기 위해 사용하는 값이라고 생각한다.
결국 한 단어가 어떤 다른 단어에 "focus"를 하는지 알아보기 위해서는 attention value 값이 필요하고
이를 구하기 위한 과정은 아래와 같다.
- 주어진 Query에 대해서 모든 Key와의 유사도를 각각 구함
- 이 유사도를 Key와 Mapping 되어있는 Value에 반영
- 유사도가 반영되어있는 Value를 모두 더해서 뭉쳐준다 (Attention Value)
Transformer 에서의 Attention
$$ Attention(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) \cdot V $$
Transformer 내부의 3개의 Attention
transformer 내부에는
- encoder self-attention
- decoder masked self-attention
- encoder-decoder attention
이렇게 3개의 attention으로 구성되어있는데 이에 대해서 다음 포스트를 통해서 자세하게 다룰 예정이다
참고자료
728x90
'AIFFLE > STUDY' 카테고리의 다른 글
[DL] 사용자 정의 훈련 스탭 (fit 메서드 커스터마이즈 하기) (0) | 2024.06.02 |
---|---|
[DL] keras API (Sequential, Functional, Subclassing) 이해하기 (1) | 2024.06.02 |
평가지표 - accuracy, precision, recall, F score, PR curve, AUC-ROC (0) | 2024.05.23 |
[DL] 일반화 성능 향상시키기 (0) | 2024.05.21 |
텐서의 이해 (0) | 2024.05.21 |