본문 바로가기
인공지능/신경망

트랜스포머(Transformer)

by 베니스스토리 2023. 7. 20.

트랜스포머(Transformer)는 딥러닝에서 주로 자연어 처리(Natural Language Processing, NLP) 작업에 사용되는 인공 신경망 모델입니다. "Attention Is All You Need"라는 논문에서 처음 소개되었으며, 기존의 순차적인 아키텍처 대비하여 병렬 처리를 가능하게 하여 효율적으로 학습할 수 있는 장점이 있습니다. 이러한 특성으로 인해 트랜스포머는 대규모 자연어 처리 작업에 뛰어난 성능을 보입니다. 

 

 

어텐션(Attention)

트랜스포머의 핵심 기술인 어텐션(Attention)은 입력 시퀀스의 다른 위치 간의 상호 의존성을 모델링하는 메커니즘입니다. 어텐션 메커니즘을 통해 트랜스포머는 입력 시퀀스의 모든 요소를 동시에 처리하며, 각 요소가 다른 요소들과 얼마나 관련이 있는지를 파악하여 가중치를 부여합니다. 이를 통해 특정 요소에 주목하거나 그 중요도를 조절할 수 있습니다.

 

트랜스포머에서 사용되는 어텐션은 다음과 같은 세 가지 종류로 구분됩니다.

 

세 개의 입력벡터 : 

쿼리(Query) 벡터 : 현재 위치에서 다른 모든 위치와 얼마나 관련이 있는지를 측정하고자 하는 벡터입니다.

키(Key) 벡터 : 다른 모든 위치의 정보를 요약한 벡터로, 쿼리 벡터와의 유사도를 계산하는 데 사용됩니다.

값(Value) 벡터 : 키 벡터와 관련하여 각 위치의 정보를 요약한 벡터입니다. 최종적으로 쿼리와 유사도에 따라 가중합하여 출력에 반영됩니다.

 

어텐션 스코어(Attention Score) :

쿼리 벡터와 키 벡터 사이의 유사도를 계산하는 방법으로, 일반적으로 내적(dot product)이나 어텐션 스코어 함수를 사용합니다. 어텐션 스코어는 쿼리와 각 키 벡터 사이의 관련성을 나타내는 값으로, 높을수록 해당 위치의 정보에 더 많은 가중치를 부여됩니다.

 

어텐션 가중치(Attention Weights) : 

어텐션 스코어를 확률 분포로 변환하여 어텐션 가중치를 계산합니다. 어텐션 가중치는 입력 시퀀스의 각 위치에 대해 쿼리 벡터와의 관련성을 표현하며, 높은 가중치는 해당 위치의 정보를 더 많이 반영하게 됩니다.

 

트랜스포머에서는 어텐션을 여러 개의 "헤드(head)"로 나누어 병렬적으로 처리하는 멀티헤드 어텐션(Multi-Head Attention)을 사용합니다. 이는 모델이 다양한 시각에서 정보를 학습할 수 있도록 도와주며, 각 헤드의 어텐션 가중치를 조합하여 최종 어텐션 값을 계산합니다.

트랜스포머의 기본 구조

인코더(Encoder) : 입력 문장을 임베딩아혀 모델이 이해할 수 있는 형태로 변환합니다. 인코더는 여러 개의 층으로 구성되며, 각 층은 다수의 어텐션과 피드포워드(feed-forward) 신경망 레이어로 구성됩니다. 인코더의 각 층은 입력 정보를 보존하면서 점차적으로 추상화된 표현으로 변환하여 다음 층으로 전달합니다.

 

디코더(Decoder) : 인코더로부터 얻은 정보를 활용하여 출력 문장을 생성합니다. 디코더도 인코더와 유사한 구조를 가지지만 다음 출력 단어를 예측하도록 설계되었습니다. 디코더의 각 층은 입력 문장의 정보와 이전 단계에서 생성한 출력 문장의 정보를 활용하여 다음 단어를 예측합니다.

 

트랜스포머에서는 학습할 때 사용하는 손실 함수로 주로 "크로스 엔트로피 손실(Cross-Entropy Loss)"를 사용합니다. 이 손실 함수를 최소화하는 방향으로 모델 파라미터가 업데이트되며, 모델은 입력 문장과 대응되는 정확한 출력 문장을 생성하도록 학습됩니다.

 

트랜스포머는 기존의 순환 신경망(RNN) 기반 모델보다 훨씬 더 멀리 있는 문맥을 파악하고, 더 빠르게 학습하며, 더 정확한 결과를 얻을 수 있는 강력한 아키텍처로 인해 자연어 처리 작업에서 주요 기술로 사용되고 있습니다.

 

 

 

 

'인공지능 > 신경망' 카테고리의 다른 글

생성망(Generative Model)  (0) 2023.07.22
역전파(Backpropagation)  (0) 2023.07.21
전이학습(Transfer Learning)  (0) 2023.07.19
활성화 함수 2  (0) 2023.07.18
활성화 함수1  (0) 2023.07.17