작동 원리
- 쿼리(Q), 키(K), 값(V) 생성: 입력 데이터로부터 Q, K, V 행렬을 생성합니다.
- 어텐션 스코어 계산: Q와 K의 전치행렬을 곱하여 어텐션 스코어를 계산합니다.
- 스케일링: 어텐션 스코어를 키 벡터의 차원 수의 제곱근(√dk)으로 나눕니다.
- 소프트맥스 적용: 스케일링된 스코어에 소프트맥스 함수를 적용하여 어텐션 가중치를 얻습니다.
- 가중합 계산: 어텐션 가중치와 V를 곱하여 최종 출력을 생성합니다.
수식
스케일드 닷-프로덕트 어텐션의 수식은 다음과 같습니다:
$$Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$$
여기서 dk는 키 벡터의 차원 수입니다.
특징
- 계산 효율성: 내적 연산을 사용하여 빠른 계산이 가능합니다.
- 병렬 처리: 행렬 연산을 통해 효율적인 병렬 처리가 가능합니다.
- 스케일링 효과: √dk로 나누는 스케일링 과정은 그래디언트 소실 문제를 완화합니다.
장점
- 다양한 입력 시퀀스 길이를 처리할 수 있습니다.
- 학습 안정성을 향상시키고 모델의 성능을 개선합니다.
- 복잡한 문맥 관계를 효과적으로 포착할 수 있습니다.
스케일드 닷-프로덕트 어텐션은 트랜스포머 모델의 핵심 요소로, 자연어 처리 작업에서 높은 성능을 달성하는 데 중요한 역할을 합니다.
Citations:
[1] https://ko.wikipedia.org/wiki/%EC%8A%A4%EC%B9%BC%EB%9D%BC%EA%B3%B1
[2] https://velog.io/@glad415/Transformer-3.-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%93%9C-%EB%8B%B7-%ED%94%84%EB%A1%9C%EB%8D%95%ED%8A%B8-%EC%96%B4%ED%85%90%EC%85%98-by-WikiDocs
[3] https://velog.io/@cha-suyeon/%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%93%9C-%EB%8B%B7-%ED%94%84%EB%A1%9C%EB%8D%95%ED%8A%B8-%EC%96%B4%ED%85%90%EC%85%98Scaled-dot-product-Attention
[4] https://shyu0522.tistory.com/26
[5] https://ctkim.tistory.com/entry/Attention-Mechanism
[6] https://wikidocs.net/22893
[7] https://docs.unity3d.com/kr/560/Manual/UnderstandingVectorArithmetic.html
[8] https://welcome-to-dewy-world.tistory.com/108
[9] https://wikidocs.net/219431
답글 남기기