yuns

Attention is all you need - Transformer 본문

머신러닝

Attention is all you need - Transformer

yuuuun 2025. 3. 12. 23:23
반응형

Transformer 구조 개요

Transformer는 자연어 처리(NLP) 및 다양한 인공지능(AI) 분야에서 널리 사용되는 딥러닝 모델로, Google의 연구팀이 2017년 논문 Attention is All You Need에서 처음 제안했습니다. 기존의 순환신경망(RNN)이나 CNN 기반 모델과 달리 Self-Attention 메커니즘을 활용하여 문장 내 단어 간의 관계를 효과적으로 학습할 수 있습니다.


1. Transformer의 기본 구조

Transformer는 크게 인코더(Encoder)와 디코더(Decoder) 두 부분으로 구성됩니다.

  • 인코더(Encoder): 입력 문장을 받아 문맥 정보를 포함한 벡터로 변환
  • 디코더(Decoder): 인코더의 출력을 받아서 최종적으로 문장을 생성

각각 여러 개의 레이어로 이루어지며, 모든 레이어는 동일한 구조를 가집니다.

Transformer 전체 구조

[입력 문장][Embedding][인코더][디코더][출력 문장]

2. Transformer의 핵심 구성 요소

(1) Embedding Layer

입력 단어를 수치 벡터로 변환하는 과정입니다. Transformer는 RNN과 달리 순차적으로 처리하지 않기 때문에, 위치 정보(Positional Encoding) 를 추가하여 단어의 순서를 반영합니다.

  • Word Embedding: 단어를 고유한 벡터로 변환
  • Positional Encoding: 단어의 순서 정보를 추가하는 역할

(2) Multi-Head Self-Attention

Transformer의 핵심적인 연산으로, Self-Attention 기법을 사용하여 문장의 모든 단어가 서로의 관계를 학습할 수 있도록 합니다.
각 단어의 중요도를 계산하는 과정은 다음과 같습니다.

  1. 입력 벡터를 Query(Q), Key(K), Value(V) 로 변환
  2. Attention Score 계산: $Attention(Q, K, V)=softmax(\frac{QKTd_k}{\sqrt{d_k}})V$
  3. Multi-Head Self-Attention: 여러 개의 Attention을 병렬로 수행한 후, 결과를 합쳐 더 풍부한 표현 학습

이 과정을 통해 문장 내 모든 단어가 서로의 관계를 학습할 수 있습니다.

(3) Feed-Forward Neural Network (FFN)

Self-Attention을 거친 벡터는 개별적으로 Feed-Forward Neural Network(FFN) 을 통과합니다. 각 레이어는 두 개의 완전연결층(Dense Layer)으로 구성되며, 비선형 활성화 함수(ReLU)를 사용합니다.

$$FFN(x)=RELU(xW_1 + b_1)W_2 + b_2$$

(4) Add & Layer Normalization

각 서브 레이어(Self-Attention, FFN) 이후에는 잔차 연결(Residual Connection)  Layer Normalization 을 적용하여 학습 안정성을 높이고, 정보 손실을 방지합니다.

$$Output=LayerNorm(x+SubLayer(x))$$


3. Transformer 인코더(Encoder)

인코더는 여러 개의 동일한 레이어(Stack)로 구성되며, 각 레이어는 다음의 구조를 가집니다.

  1. Multi-Head Self-Attention
  2. Add & Layer Normalization
  3. Feed-Forward Network
  4. Add & Layer Normalization

인코더는 입력을 받아 문맥을 고려한 표현 벡터(Contextual Representation)를 생성합니다.


4. Transformer 디코더(Decoder)

디코더는 인코더와 유사하지만, 다음과 같은 차이점이 있습니다.

  1. Masked Multi-Head Self-Attention
    • 디코더가 현재까지 생성된 단어만을 참고할 수 있도록, 미래 단어를 가리는 마스킹(Masking) 적용
  2. Multi-Head Attention (인코더-디코더 Attention)
    • 인코더에서 얻은 정보를 활용하여 문장을 생성
  3. Feed-Forward Neural Network
  4. Add & Layer Normalization

디코더는 최종적으로 Softmax 레이어를 통해 다음 단어의 확률을 예측합니다.


5. Transformer의 장점

 병렬 연산 가능

  • RNN과 달리 순차적인 연산이 필요 없으므로 병렬 처리가 가능 → 빠른 학습 속도

 긴 문맥 정보 학습 가능

  • Self-Attention을 활용하여 장기 의존성(Long-term dependency) 문제 해결

 성능 향상

  • 기계 번역, 텍스트 요약, 질의응답 등 다양한 NLP 태스크에서 SOTA(State-of-the-Art) 성능 달성

6. Transformer 기반 모델

Transformer는 다양한 NLP 및 AI 모델의 기초가 되었습니다.

  • BERT (Bidirectional Encoder Representations from Transformers) → 문맥을 양방향으로 학습
  • GPT (Generative Pre-trained Transformer) → 텍스트 생성에 최적화
  • T5 (Text-To-Text Transfer Transformer) → 다양한 NLP 태스크 수행
  • ViT (Vision Transformer) → 이미지 처리에 Transformer 적용

참고) 예시로 이해하는 Query, Key, Value의 의미

Query, Key, Value란?

Transformer의 Self-Attention 메커니즘에서 Query(Q), Key(K), Value(V)는 입력 단어의 관계를 계산하는 데 사용되는 벡터입니다. 이를 이해하기 위해 도서관의 검색 시스템을 예시로 들어 설명하겠습니다.


📖 예시: 도서관 검색 시스템

한 도서관에서 특정 키워드를 기반으로 책을 찾는 상황을 가정해 봅시다.

  1. Query (Q): 내가 찾고 싶은 정보 (검색어)
    • 예: "딥러닝 관련 책 추천해 주세요."
  2. Key (K): 도서관에 저장된 책들의 정보 (책 제목, 주제)
    • 예:
      • "딥러닝 이론과 실습"
      • "머신러닝 입문"
      • "자연어 처리 기초"
  3. Value (V): 책의 실제 내용 (검색 결과)
    • 예:
      • "딥러닝 이론과 실습 → 심층 신경망 개념을 설명"
      • "머신러닝 입문 → 지도학습과 비지도학습 개념"
      • "자연어 처리 기초 → NLP 모델의 기초 개념"

Query, Key, Value의 관계

  • Query(Q): 사용자가 찾고 싶은 정보 (질문)
  • Key(K): 도서관이 보유한 모든 책의 제목 (데이터베이스의 검색 기준)
  • Value(V): Key에 해당하는 실제 책의 내용

검색 시스템은 Query(Q)와 Key(K)의 유사도를 비교하여 가장 관련성이 높은 책(Value)을 추천합니다.


🤖 Self-Attention에서 Query, Key, Value

Transformer의 Self-Attention에서 Query, Key, Value의 역할도 이와 비슷합니다.

예제 문장

나는 학교에서 친구를 만났다.

이 문장에서 "학교"라는 단어가 "만났다"와 얼마나 관련이 있는지를 판단한다고 가정해 보겠습니다.

  1. Query(Q): "학교" (기준이 되는 단어)
  2. Key(K): 문장의 모든 단어들 ("나는", "학교", "에서", "친구", "를", "만났다")
  3. Value(V): 각 단어의 실제 의미 (문맥 정보)

Self-Attention 계산 과정

  • "학교" (Query)와 문장의 모든 단어들 (Key)의 유사도를 계산
  • 유사도가 높은 단어(예: "에서", "친구")에는 높은 가중치를 부여
  • 최종적으로 가중치를 반영하여 Value를 합산 → 새로운 문맥 벡터 생성

📝 정리

용어 의미 예시
Query(Q) 찾고 싶은 정보 "학교"
Key(K) 비교 대상 (모든 단어) "나는", "학교", "에서", "친구", "를", "만났다"
Value(V) 최종 반영될 정보 각 단어의 의미 및 문맥

이러한 과정이 문장 내 모든 단어에 대해 반복되면서, Transformer는 단어 간의 관계를 학습하게 됩니다.

반응형
Comments