-
Self Attention Mechanism카테고리 없음 2024. 12. 6. 14:25
Self-Attention 알고리즘의 입력 처리
- 입력 시퀀스의 각 단어를 임베딩 벡터로 변환한다.
Self-Attention 알고리즘의 Query, Key, Value 생성
- 각 입력 벡터: \( X \)에 대해 다음과 같이 생성된다.
- \( Q = X \cdot W_Q \)
- \( K = X \cdot W_K \)
- \( V = X \cdot W_V \)
- \( W_Q \), \( W_K \), \( W_V \)는 학습 가능한 가중치 행렬이다.
입력 벡터 X의 정의
- 입력 데이터의 표현이다.
입력 벡터 X의 예시
- 문장에서 각 단어를 수치화한 임베딩 벡터이다.
입력 벡터 X의 차원의 표현
- \( d_{input} \)
입력 벡터 X의 크기
- 문장에서 단어 개수 \( N \)에 따라 \( N \times d_{input} \) 크기의 행렬이다.
Query, Key, Value를 만드는 이유
- Self-Attention에서 입력 \( X \)의 각 요소(단어)가 다른 요소들과 얼마나 관련이 있는지를 계산하기 위해서이다.
Query \( Q \)의 역할
- 관계를 질문하는 것이다.
Key \( K \)의 역할
- 관계를 판단하는 열쇠 역할이다.
Value \( V \)의 역할
- 계산된 관계에 따라 최종적으로 전달할 정보를 나타내는 것이다.
Self-Attention 알고리즘의 정의
- Query(Q), Key(K), Value(V)는 입력 데이터를 기반으로 계산되는 중요한 요소들이다.
입력 벡터 (X)의 정의
- 입력 데이터의 표현이다.
입력 벡터 (X)의 예시
- 문장에서 각 단어를 수치화한 임베딩 벡터이다.
입력 벡터 (X)의 차원
- (d_{\text{input}})이다.
입력 벡터 (X)의 크기
- 문장에서 (N)개의 단어가 있는 경우, (N \times d_{\text{input}}) 크기의 행렬이다.
Query(Q)의 역할
- 관계를 질문하는 것이다.
Key(K)의 역할
- 관계를 판단하는 열쇠 역할이다.
Value(V)의 역할
- 계산된 관계에 따라 최종적으로 전달할 정보이다.
Self-Attention 알고리즘의 정의
- Query(Q), Key(K), Value(V)는 입력 데이터를 기반으로 계산되는 중요한 요소들이다.
입력 벡터 (X)의 정의
- 입력 데이터의 표현이다.
입력 벡터 (X)의 예시
- 문장에서 각 단어를 수치화한 임베딩 벡터이다.
입력 벡터 (X)의 차원
- (d_{\text{input}})이다.
입력 벡터 (X)의 크기
- 문장에서 (N)개의 단어가 있는 경우, (N \times d_{\text{input}}) 크기의 행렬이다.
Query(Q)의 역할
- 관계를 질문하는 것이다.
Key(K)의 역할
- 관계를 판단하는 열쇠 역할이다.
Value(V)의 역할
- 계산된 관계에 따라 최종적으로 전달할 정보이다.
Query \( Q \)의 생성 과정
- 입력 \( X \)에 가중치 \( W_Q \)를 곱하는 것이다.
Key \( K \)의 생성 과정
- 입력 \( X \)에 가중치 \( W_K \)를 곱하는 것이다.
Value \( V \)의 생성 과정
- 입력 \( X \)에 가중치 \( W_V \)를 곱하는 것이다.
가중치 \( W_Q \), \( W_K \), \( W_V \)의 정의
- 각각 Query, Key, Value를 생성하기 위한 학습 가능한 가중치 행렬이다.
가중치 \( W_Q \), \( W_K \), \( W_V \)의 크기
- \( d_{input} \times d_{model} \)이다.
Query \( Q \)의 목적
- 입력 데이터를 질문 형태로 변환하는 것이다.
Key \( K \)의 목적
- 입력 데이터를 판단의 기준이 되는 형태로 변환하는 것이다.
Value \( V \)의 목적
- 입력 데이터를 전달할 정보로 변환하는 것이다.
가중치 행렬 \( W_Q \), \( W_K \), \( W_V \)의 역할
- 입력 \( X \)의 특징을 강조하거나 축소하여 특정 패턴을 뽑아내기 위해 곱셈 연산을 사용한다.
Self-Attention에서 Query \( Q \)와 Key \( K \)의 역할
- 각 단어 간의 유사도(관계)를 계산하는 데 사용된다.
Self-Attention에서 Value \( V \)의 역할
- 계산된 유사도를 바탕으로 Value \( V \)에서 필요한 정보를 추출해 새롭게 조합한다.
Self-Attention 알고리즘의 Attention Score 계산
- Query와 Key의 내적을 통해 \( \text{Attention Score} = \frac{QK^T}{\sqrt{d_k}} \)로 계산된다.
- \( d_k \)는 Key 벡터의 차원이다.
Self-Attention 알고리즘의 Scaling
- Attention Score를 \( \sqrt{d_k} \)로 나누어 스케일링한다.
Self-Attention 알고리즘의 Softmax 적용
- 스케일링된 Attention Score에 Softmax 함수를 적용하여 가중치를 정규화한다.
Self-Attention 알고리즘의 최종 출력 계산
- 정규화된 가중치와 Value를 곱하여 \( \text{Output} = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \)로 최종 출력을 계산한다.
Self-Attention 알고리즘의 Multi-Head Attention
- 여러 개의 Self-Attention을 병렬로 수행하여 다양한 관점에서 입력을 분석한다.
Self-Attention 알고리즘의 기능
- 입력 시퀀스 내의 각 요소가 다른 모든 요소와 어떻게 관련되어 있는지를 학습한다.
Self-Attention 알고리즘의 장점
- 문맥을 이해하고 장거리 의존성을 포착하는 데 효과적이다.
반응형