Attention과 Transformer 핵심 정리
이 글은 AI가 작성했습니다.
개요
Attention과 Transformer의 핵심 개념을 정리합니다.
포지셔널 인코딩, Self-Attention, Feed-Forward Network(FFN)의 원리와 구조를 설명합니다.
Attention 개념
Attention은 입력 시퀀스의 각 요소가 다른 요소들과 상호작용하여 가중 합을 계산하는 기법입니다.
기본 구성 요소는 쿼리(Query), 키(Key), 값(Value)입니다.
쿼리는 주목할 대상 정보를 나타내는 벡터입니다.
키는 입력 요소의 특성 표현입니다.
값은 최종 합산에 사용되는 정보입니다.
쿼리와 키의 유사도에 따라 값에 가중치를 부여하여 출력 벡터를 생성합니다.
Self-Attention 원리
Self-Attention은 동일한 시퀀스 내부 요소들 간의 상호작용을 계산하는 방법입니다.
각 입력 토큰은 선형 변환을 통해 Q, K, V로 매핑됩니다.
유사도 점수는 Q와 K의 내적으로 계산합니다.
점수는 sqrt(d_k)로 나누어 스케일링합니다.
소프트맥스를 통해 가중치 분포를 얻습니다.
가중치와 V의 선형 결합이 최종 출력입니다.
수식으로는 Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V 입니다.
Multi-Head Self-Attention
멀티헤드 Attention은 여러 표현 공간에서 병렬로 Attention을 수행하는 방법입니다.
입력은 여러 헤드로 분할되어 각 헤드별로 독립적인 Q, K, V를 계산합니다.
각 헤드의 출력을 이어붙여 최종 선형층으로 투영하여 최종 표현을 얻습니다.
이 방식은 서로 다른 관점의 유사도 패턴을 학습하도록 돕습니다.
Positional Encoding
Transformer는 순환 구조가 없어 토큰 순서를 명시적으로 제공해야 합니다.
Positional Encoding은 위치 정보를 임베딩에 더하는 방식입니다.
대표 방식은 사인·코사인 기반의 고정 인코딩과 학습 가능한 가중치 방식입니다.
사인·코사인 방식은 서로 다른 주파수를 사용해 각 위치에 고유한 패턴을 생성합니다.
사인·코사인 수식은 다음과 같습니다.
PE(pos, 2i) = sin(pos / 10000^(2i / d_model)) 입니다.
PE(pos, 2i+1) = cos(pos / 10000^(2i / d_model)) 입니다.
Feed-Forward Network (FFN)
각 Transformer 레이어에는 포지션별 FFN이 포함됩니다.
FFN은 위치별로 동일하게 적용되는 두 개의 선형층과 활성화 함수로 구성됩니다.
일반적인 형태는 FFN(x) = max(0, xW1 + b1)W2 + b2 입니다.
활성화 함수로는 ReLU 또는 GELU를 주로 사용합니다.
FFN은 각 위치의 표현을 비선형적으로 확장하고 변환합니다.
잔차 연결과 레이어 정규화
각 서브레이어는 잔차 연결과 레이어 정규화를 사용합니다.
일반적인 조합 방식은 LayerNorm(x + Sublayer(x)) 입니다.
이 조합은 학습 안정성과 기울기 흐름 유지에 기여합니다.
Transformer 구조 요약
Encoder 블록은 멀티헤드 Self-Attention, FFN, 잔차 연결, 레이어 정규화로 구성됩니다.
Decoder는 Encoder-Decoder Attention을 추가로 포함합니다.
Decoder의 Self-Attention은 미래 토큰을 보지 않도록 마스킹을 적용합니다.
입력 임베딩과 포지셔널 인코딩의 합이 초기 입력으로 사용됩니다.
출력은 최종 선형층과 소프트맥스를 통해 확률 분포로 변환됩니다.
계산 복잡도와 확장성
Self-Attention의 시간 및 공간 복잡도는 시퀀스 길이 n에 대해 O(n^2) 입니다.
이는 긴 시퀀스 처리에서 계산 비용과 메모리 요구가 증가함을 의미합니다.
멀티헤드 구조는 표현력을 높이지만 계산 비용을 추가합니다.
병렬화가 용이하여 GPU나 TPU에서 효율적으로 학습할 수 있습니다.
장단점 및 활용
장점은 병렬 처리와 장거리 의존성 학습이 가능한 점입니다.
단점은 시퀀스 길이에 따른 O(n^2) 비용과 메모리 요구입니다.
실무에서는 긴 시퀀스용 근사 알고리즘이나 효율화 기법을 사용합니다.
Transformer 기반 모델은 기계 번역, 요약, 언어 모델링, 음성 및 비전 태스크 등 다양한 분야에 적용됩니다.