딥러닝에서 번역, 요약, 챗봇을 공부하다 보면 꼭 등장하는 개념이 있습니다.
👉 바로 Attention Mechanism
처음 보면 수식이 많아서 어렵지만, 핵심은 하나입니다.
👉 “지금 필요한 정보에만 집중하자”
이 글에서는 Attention Score부터 최종 출력까지 한 흐름으로 쉽게 설명합니다.
📌 전체 흐름 한 줄 요약
Score → Softmax → Weighted Sum → Concatenate → 가공 → 출력
👉 이 6단계만 이해하면 끝입니다.
1️⃣ Attention Score (중요도 점수 계산)
✔️ 개념
👉 “지금 상태(sₜ)와 입력(hₙ)이 얼마나 비슷한가?”
✔️ 등장 변수
- h₁, h₂, ..., hₙ → 입력 문장 정보 (인코더)
- sₜ → 현재 상태 (디코더)
✔️ 계산
score(s_t, h_i) = s_t^T h_i
👉 두 벡터를 곱해서 “유사도” 계산
✔️ 쉽게 이해
나는 / 밥을 / 먹었다
- sₜ = “먹었다”를 만들고 있는 상태
👉 비교 결과:
- 나는 → 낮음
- 밥을 → 중간
- 먹었다 → 높음 ⭐
👉 이게 Attention Score
2️⃣ Attention Distribution (Softmax)
✔️ 개념
👉 점수를 “확률”로 바꾸기
✔️ 계산
\alpha_t = softmax(e_t)
✔️ 결과
[0.1, 0.2, 0.7]
👉 의미:
- 먹었다 → 70% 집중
✔️ 핵심
👉 “어디에 얼마나 집중할지 결정”
3️⃣ Attention Value (가중합)
✔️ 개념
👉 중요한 정보만 모아서 하나로 만들기
✔️ 계산
a_t = \sum_{i=1}^{N} \alpha_{ti} h_i
✔️ 쉽게 이해
(나는 × 0.1) +
(밥을 × 0.2) +
(먹었다 × 0.7)
👉 결과 = aₜ (Attention Value)
✔️ 의미
👉 “지금 필요한 정보만 모은 요약 벡터”
👉 그래서 이걸 Context Vector라고도 부름
4️⃣ aₜ + sₜ 결합 (Concatenate)
✔️ 개념
👉 입력 정보 + 현재 상태 합치기
[aₜ ; sₜ]
✔️ 의미
- aₜ → 입력에서 중요한 정보
- sₜ → 지금까지 생성된 문장
👉 둘을 합치면?
👉 “완전한 문맥 정보”
5️⃣ 한 번 더 가공 (중요🔥)
✔️ 계산
\tilde{s}_t = \tanh(W_c [a_t ; s_t] + b_c)
✔️ 쉽게 설명
👉 합친 정보를 한 번 더 정리
- Wc → 정보 섞기
- tanh → 값 정리
👉 결과:
👉 ṡₜ (출력용 최종 벡터)
6️⃣ 최종 출력 (단어 예측)
✔️ 계산
\hat{y}_t = Softmax(W_y \tilde{s}_t + b_y)
✔️ 의미
👉 다음 단어 확률 계산
rice → 0.7
food → 0.2
meal → 0.1
👉 가장 높은 단어 선택
🔥 기존 seq2seq vs Attention
❌ 기존 seq2seq
출력 = sₜ
👉 입력 정보를 잘 못씀
✅ Attention
출력 = aₜ + sₜ
👉 입력 + 현재 상태 둘 다 활용
👉 성능 훨씬 좋아짐
🎯 핵심 비유 (완벽 이해)
👉 시험 문제 푸는 상황
- sₜ → 내가 풀고 있는 문제 상태
- aₜ → 교과서에서 찾은 핵심 내용
👉 둘 합쳐서 답 작성 = ṡₜ
💡 최종 한 줄 정리
👉 Attention = 입력을 계속 참고하면서 단어를 생성하는 기술
🚀 마무리
Attention은 단순히 복잡한 수식이 아니라,
👉 “중요한 정보만 골라서 쓰는 똑똑한 방법”
입니다.
'AI > ML' 카테고리의 다른 글
| Transformer 포지셔널 인코딩 (1) | 2026.04.21 |
|---|---|
| 트랜스포머(Transformer) — Attention Is All You Need (0) | 2026.04.20 |
| Attention Mechanism (0) | 2026.04.19 |
| 인코더 디코더 Seq2Seq (0) | 2026.04.18 |
| Word2Vec (1) | 2026.04.17 |