본문 바로가기
AI/Transformer

Transformer_4(기초부터 심화까지)

by 전주혁 2023. 6. 28.

지금까지

Self-Attention, 쿼리-키-밸류, embedding, positional encoding

에 대해서 알아보았습니다.

 

이번 시간은

Multi-Head Attention

에 대해서 알아볼까요?

 

 

Multi-Head Attention은 Transformer 모델에서 사용되는 주요 구성 요소 중 하나입니다. 

기본적으로 Self-Attention 메커니즘을 여러 개의 "헤드(head)"로 분할하여 동시에 수행하는 것입니다. 

이를 통해 모델은 다양한 표현 공간(representation space)에서 어텐션을 학습할 수 있습니다.

 

 


Multi-Head Attention은 다음과 같은 과정으로 수행됩니다.

 

 


1. 입력 시퀀스의 임베딩 벡터를 받아옵니다.


2. 각 헤드에 대해 쿼리(Query), 키(Key), 밸류(Value) 행렬을 생성합니다. 

이때, 각 헤드마다 독립적인 가중치 행렬을 사용하여 쿼리, 키, 밸류 행렬을 계산합니다.


3. 각 헤드에 대해 독립적으로 Self-Attention을 계산하고, 결과를 얻습니다.


4. 각 헤드의 어텐션 결과를 연결(concatenate)하고, 추가적인 선형 변환을 적용합니다. 

이를 통해 최종 Multi-Head Attention 결과를 얻습니다.

 


Multi-Head Attention의 장점

은 다음과 같습니다.

다양한 표현 공간에서 어텐션을 학습할 수 있어, 

모델이 다양한 관점에서 입력 시퀀스의 정보를 파악할 수 있습니다.
각 헤드가 서로 다른 가중치 행렬을 사용하므로, 

모델이 더 복잡한 패턴을 학습할 수 있습니다.


여러 헤드를 사용함으로써 모델의 용량(capacity)이 증가하며, 

이는 더 높은 성능을 달성할 수 있도록 도와줍니다.


이러한 이유로 Multi-Head Attention은 Transformer 모델에서 중요한 역할을 수행하며, 

입력 시퀀스의 다양한 관점에서 정보를 추출하는 데 도움을 줍니다.

 

 

 

 

이 전에 우리는

Transformer의 핵심 개념인 Self-Attention 에 대해서 배웠습니다.

 

Self-AttentionMulti-Head Attention은 비슷한 메커니즘이지만, 둘 사이에는 몇 가지 차이점이 있습니다.

 

 

Self-Attention:

 

 - Self-Attention은 입력 시퀀스 내의 모든 단어 간의 관계를 학습하기 위해

쿼리(Query), 키(Key), 밸류(Value) 행렬을 사용하여 어텐션을 계산합니다.

 - 이 메커니즘은 하나의 표현 공간(representation space)에서 어텐션을 수행합니다.

 - 결과적으로, Self-Attention은 입력 시퀀스의 정보를 하나의 관점에서만 학습하게 됩니다.

 

 

Multi-Head Attention:

 - Multi-Head Attention은 Self-Attention을 여러 개의 "헤드(head)"로 분할하여 동시에 수행합니다.

 - 각 헤드는 독립적인 가중치 행렬을 사용하여 쿼리(Query), 키(Key), 밸류(Value) 행렬을 계산하므로,

각 헤드는 서로 다른 표현 공간에서 어텐션을 수행합니다.

 - 이로 인해, Multi-Head Attention은 입력 시퀀스의 정보를 여러 관점에서 동시에 학습할 수 있습니다.

 

 

 

 

 

요약하면,

Self-Attention은 하나의 표현 공간에서 어텐션을 수행하는 반면,

Multi-Head Attention은 여러 헤드를 사용하여 다양한 표현 공간에서 동시에 어텐션을 수행합니다.

이 차이로 인해 Multi-Head Attention은 입력 시퀀스의 정보를 더 다양한 관점에서 학습할 수 있으며,

이는 더욱 복잡한 패턴을 인식하는 데 도움이 됩니다.

 

 

 

 

 

지금까지 배운 내용들을 유기적으로 연결 시켜 볼까요?

 

 

임베딩(Embedding): 입력 문장의 단어를 고정된 크기의 벡터로 변환합니다. 

이렇게 변환된 벡터는 Transformer의 첫 번째 레이어로 전달됩니다.

 

위치 인코딩(Positional Encoding): Transformer 모델은 순차적인 정보를 고려하지 않기 때문에, 

위치 정보를 제공해주는 위치 인코딩을 임베딩 벡터에 더합니다. 

이를 통해 모델이 단어의 순서를 인식할 수 있습니다.

 

쿼리-키-밸류(Query-Key-Value): 셀프 어텐션을 수행하기 위해 입력 벡터로부터 쿼리, 키, 밸류 행렬을 생성합니다.

 이 행렬들은 각 단어 간의 관계를 계산하는 데 사용됩니다.

 

Self-Attention: 쿼리-키-밸류 메커니즘을 이용하여 입력 시퀀스의 단어 간 관계를 계산하고,

 이를 통해 문장 내 단어들의 상호 작용을 모델링합니다.

 

Multi-Head Attention: Self-Attention 메커니즘을 여러 개의 독립적인 헤드로 나누어 병렬로 수행합니다.

 이를 통해 모델이 다양한 표현 공간에서의 관계를 동시에 학습할 수 있습니다.

 

이러한 과정들이 순차적으로 진행되면서, Transformer 모델은 입력 문장의 의미와 구조를 고려한 인코딩을 수행합니다.

 

 

 

 

다음 포스팅엔

Multi-Head Attention을

코드를 보며 이해해 봅시다!