yuns
Attention is all you need - Transformer 본문
Transformer 구조 개요
Transformer는 자연어 처리(NLP) 및 다양한 인공지능(AI) 분야에서 널리 사용되는 딥러닝 모델로, Google의 연구팀이 2017년 논문 Attention is All You Need에서 처음 제안했습니다. 기존의 순환신경망(RNN)이나 CNN 기반 모델과 달리 Self-Attention 메커니즘을 활용하여 문장 내 단어 간의 관계를 효과적으로 학습할 수 있습니다.
1. Transformer의 기본 구조
Transformer는 크게 인코더(Encoder)와 디코더(Decoder) 두 부분으로 구성됩니다.
- 인코더(Encoder): 입력 문장을 받아 문맥 정보를 포함한 벡터로 변환
- 디코더(Decoder): 인코더의 출력을 받아서 최종적으로 문장을 생성
각각 여러 개의 레이어로 이루어지며, 모든 레이어는 동일한 구조를 가집니다.
Transformer 전체 구조
2. Transformer의 핵심 구성 요소
(1) Embedding Layer
입력 단어를 수치 벡터로 변환하는 과정입니다. Transformer는 RNN과 달리 순차적으로 처리하지 않기 때문에, 위치 정보(Positional Encoding) 를 추가하여 단어의 순서를 반영합니다.
- Word Embedding: 단어를 고유한 벡터로 변환
- Positional Encoding: 단어의 순서 정보를 추가하는 역할
(2) Multi-Head Self-Attention
Transformer의 핵심적인 연산으로, Self-Attention 기법을 사용하여 문장의 모든 단어가 서로의 관계를 학습할 수 있도록 합니다.
각 단어의 중요도를 계산하는 과정은 다음과 같습니다.
- 입력 벡터를 Query(Q), Key(K), Value(V) 로 변환
- Attention Score 계산: $Attention(Q, K, V)=softmax(\frac{QKTd_k}{\sqrt{d_k}})V$
- 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)로 구성되며, 각 레이어는 다음의 구조를 가집니다.
- Multi-Head Self-Attention
- Add & Layer Normalization
- Feed-Forward Network
- Add & Layer Normalization
인코더는 입력을 받아 문맥을 고려한 표현 벡터(Contextual Representation)를 생성합니다.
4. Transformer 디코더(Decoder)
디코더는 인코더와 유사하지만, 다음과 같은 차이점이 있습니다.
- Masked Multi-Head Self-Attention
- 디코더가 현재까지 생성된 단어만을 참고할 수 있도록, 미래 단어를 가리는 마스킹(Masking) 적용
- Multi-Head Attention (인코더-디코더 Attention)
- 인코더에서 얻은 정보를 활용하여 문장을 생성
- Feed-Forward Neural Network
- 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)는 입력 단어의 관계를 계산하는 데 사용되는 벡터입니다. 이를 이해하기 위해 도서관의 검색 시스템을 예시로 들어 설명하겠습니다.
📖 예시: 도서관 검색 시스템
한 도서관에서 특정 키워드를 기반으로 책을 찾는 상황을 가정해 봅시다.
- Query (Q): 내가 찾고 싶은 정보 (검색어)
- 예: "딥러닝 관련 책 추천해 주세요."
- Key (K): 도서관에 저장된 책들의 정보 (책 제목, 주제)
- 예:
- "딥러닝 이론과 실습"
- "머신러닝 입문"
- "자연어 처리 기초"
- 예:
- 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의 역할도 이와 비슷합니다.
예제 문장
이 문장에서 "학교"라는 단어가 "만났다"와 얼마나 관련이 있는지를 판단한다고 가정해 보겠습니다.
- Query(Q): "학교" (기준이 되는 단어)
- Key(K): 문장의 모든 단어들 ("나는", "학교", "에서", "친구", "를", "만났다")
- Value(V): 각 단어의 실제 의미 (문맥 정보)
Self-Attention 계산 과정
- "학교" (Query)와 문장의 모든 단어들 (Key)의 유사도를 계산
- 유사도가 높은 단어(예: "에서", "친구")에는 높은 가중치를 부여
- 최종적으로 가중치를 반영하여 Value를 합산 → 새로운 문맥 벡터 생성
📝 정리
용어 | 의미 | 예시 |
Query(Q) | 찾고 싶은 정보 | "학교" |
Key(K) | 비교 대상 (모든 단어) | "나는", "학교", "에서", "친구", "를", "만났다" |
Value(V) | 최종 반영될 정보 | 각 단어의 의미 및 문맥 |
이러한 과정이 문장 내 모든 단어에 대해 반복되면서, Transformer는 단어 간의 관계를 학습하게 됩니다.
'머신러닝' 카테고리의 다른 글
Hugging Face Transformers 라이브러리의 Auto 클래스 (0) | 2025.03.13 |
---|---|
3. 머신러닝의 주요 알고리즘(1) - 선형 회귀(Linear Regression) (0) | 2025.03.12 |
Inforamtion Retrieval 정보 검색이란 (0) | 2025.03.12 |
Locality Sensitive Hashing(LSH)이란? (0) | 2025.03.12 |
2. 머신러닝의 기본 개념(3) - 모델, 데이터셋, 학습, 검증 등 (0) | 2025.03.11 |