수학

MATH / 중급

어텐션 식 한 줄에 들어 있는 수학 전부: 이 커리큘럼의 지도

softmax(QKᵀ/√dₖ)V를 왼쪽부터 오른쪽까지 기호 단위로 쪼개고, 각 자리를 읽는 데 필요한 수학이 무엇인지 하나씩 대응시킵니다.

PALDYN Team22 MIN READ

논문 PDF를 열어 3페이지쯤 내려가면 Scaled Dot-Product Attention 절이 나오고, 거기에 식이 딱 한 줄 있습니다.

Attention(Q,K,V)=softmax ⁣(QKdk)V\mathrm{Attention}(Q, K, V) = \mathrm{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V

이 식이 안 읽히는 이유는 어텐션이 무엇인지 몰라서가 아닙니다. 어텐션이 왜 필요한지, Q와 K와 V가 각각 무슨 역할인지는 Transformer를 이해하는 가장 짧은 길에서 이미 답이 나와 있습니다. 그 글을 읽고 나면 "질의와 키의 관련도를 재서 값을 섞는다"는 문장은 완벽하게 이해됩니다. 그런데도 식으로 돌아오면 다시 안 읽힙니다.

이유는 이 한 줄이 서로 다른 다섯 개의 수학을 이어 붙여 만든 문장이기 때문입니다. QKQK^\top는 선형대수고, dk\sqrt{d_k}로 나누는 자리는 확률의 분산이고, softmax는 지수함수와 확률분포이고, 마지막 VV를 곱하는 자리는 다시 선형대수입니다. 여기에 식에는 아예 안 보이는 마스킹과 미분이 따라붙습니다. 한 문장 안에서 언어가 다섯 번 바뀌니 사전 하나로는 안 읽히는 게 당연합니다.

그래서 이 글은 식을 계산하지 않습니다. 대신 이 식을 읽으려면 무엇이 필요한가만 답합니다. 기호를 왼쪽부터 오른쪽까지 다섯 자리로 쪼개고, 자리마다 어떤 수학이 들어 있으며 그것이 이 커리큘럼의 몇 번째 글인지 대응시킵니다. 식 자체의 계산과 유도 — √dₖ가 왜 하필 제곱근인지, softmax의 야코비안이 어떻게 생겼는지 — 는 40번부터 43번 글에서 끝냅니다. 여기서는 지도만 그립니다.

어텐션 한 줄을 기호 단위로 쪼갠 지도

왼쪽부터 오른쪽으로 소리 내어 읽기

수식을 읽는 첫 단계는 소리 내어 읽는 것입니다. 기호를 눈으로 훑으면 덩어리로 뭉개지지만, 말로 옮기면 어디서 막히는지가 드러납니다. 위 식을 한국어로 그대로 읽으면 이렇습니다.

"큐, 케이, 브이를 받는 어텐션은, 큐와 케이 전치의 곱을 디케이의 제곱근으로 나눈 것에 소프트맥스를 씌우고, 거기에 브이를 곱한 것이다."

읽어 보면 막히는 자리가 정확히 다섯 군데입니다.

  1. Q, K, V가 무엇인가 — 숫자인가 벡터인가 행렬인가
  2. KK^\top의 전치와 곱셈이 무엇을 만드는가 — 곱한 결과가 무슨 모양이 되는가
  3. dk\sqrt{d_k}로 나누는가 — 그냥 상수로 나누는 것과 무엇이 다른가
  4. softmax가 무엇을 하는가 — 왜 하필 지수함수인가
  5. 마지막 VV가 왜 오른쪽에 붙는가 — 왼쪽에 붙이면 안 되는가

다섯 자리를 하나씩 봅니다.

첫째 자리 — Q, K, V

QQ, KK, VV는 대문자입니다. 이 커리큘럼과 대부분의 논문에서 대문자 정자체는 행렬을 뜻합니다. 즉 Q 하나가 벡터 하나가 아니라, 벡터 여러 개를 행으로 쌓아 놓은 표입니다. 토큰이 nn개라면 QQnn개의 행을 가집니다.

QRn×dk,KRn×dk,VRn×dvQ \in \mathbb{R}^{n \times d_k}, \quad K \in \mathbb{R}^{n \times d_k}, \quad V \in \mathbb{R}^{n \times d_v}

Rn×dk\mathbb{R}^{n \times d_k}는 "실수를 원소로 하는 nndkd_k열짜리 행렬 전체의 모임"이고, \in은 "그 모임에 속한다"는 뜻입니다. 이 한 줄을 코드로 옮기면 Q.shape == (n, d_k)입니다.

여기서 필요한 수학은 둘입니다. 하나는 표기 규약 — 왜 대문자가 행렬이고 왜 열이 아니라 행에 토큰을 쌓는지. 다른 하나는 벡터와 행렬이라는 대상 자체 — 임베딩 한 줄이 그냥 float 배열이 아니라 벡터라는 것이 무엇을 보장하는지입니다. 앞의 것은 바로 다음 글인 논문 수식 표기 규약이 맡고, 뒤의 것은 2단원(벡터)과 3단원(행렬)이 맡습니다.

둘째 자리 — QKᵀ

KK^\top\top는 전치입니다. KKn×dkn \times d_k였으니 KK^\topdk×nd_k \times n이 되고, 그러면 곱셈의 모양이 맞습니다.

Qn×dkKdk×n=QKn×n\underbrace{Q}_{n \times d_k} \cdot \underbrace{K^\top}_{d_k \times n} = \underbrace{QK^\top}_{n \times n}

결과가 n×nn \times n이라는 것이 이 자리의 전부입니다. 토큰 nn개에 대해 모든 쌍의 점수가 나왔다는 뜻이고, 이 행렬의 (i,j)(i, j)번째 칸은 ii번 토큰의 질의 벡터와 jj번 토큰의 키 벡터의 내적입니다.

(QK)ij=t=1dkQitKjt=qikj(QK^\top)_{ij} = \sum_{t=1}^{d_k} Q_{it} K_{jt} = q_i \cdot k_j

여기 두 가지 수학이 겹쳐 있습니다. 행렬곱은 모양이 어떻게 맞아떨어지는가의 규칙이고(10번 글), 내적은 그 결과 숫자 하나가 왜 "관련도"로 읽히는가의 의미입니다(6번 글). 둘은 다른 질문입니다. 행렬곱만 알면 셰이프는 맞출 수 있지만 왜 이게 유사도인지는 모릅니다. 내적이 abcosθ\|a\|\|b\|\cos\theta와 같다는 것을 알아야 "방향이 비슷하면 커진다"는 해석이 붙습니다.

그리고 위 식의 \sum 기호와 첨자 ii, jj, tt를 자유롭게 다루는 능력은 그 자체로 따로 배워야 하는 기술입니다. 어떤 첨자가 결과에 남고 어떤 첨자가 합쳐져 사라지는지 — 3번 글이 그것만 다룹니다.

셋째 자리 — √dₖ로 나누기

QKdk\frac{QK^\top}{\sqrt{d_k}}에서 분모는 상수입니다. 행렬의 모든 칸을 같은 숫자로 나눕니다. 여기서 막히는 지점은 계산이 아니라 왜 하필 dk\sqrt{d_k}인가입니다.

답의 출발점은 확률입니다. qiq_ikjk_j의 각 성분이 평균 0, 분산 1이고 서로 독립이라고 두면, 둘의 내적은 dkd_k개 항의 합이므로 분산이 dkd_k가 됩니다. 표준편차는 그 제곱근인 dk\sqrt{d_k}이고, 그것으로 나누면 점수의 표준편차가 다시 1로 돌아옵니다.

이 문장을 읽으려면 분산이 무엇이고 독립인 확률변수의 합에서 분산이 어떻게 더해지는가를 알아야 합니다. 21번 글(분산과 표본오차)이 그 도구를 만들고, 40번 글이 그 도구로 이 자리를 완전히 유도합니다. 지금은 "여기는 확률의 자리다"만 표시해 두면 충분합니다.

넷째 자리 — softmax

softmax는 실수 벡터를 확률분포로 바꾸는 함수입니다. 행렬에 씌울 때는 행마다 따로 적용합니다.

softmax(z)j=ezjtezt\mathrm{softmax}(z)_j = \frac{e^{z_j}}{\sum_{t} e^{z_t}}

결과는 모든 원소가 0보다 크고 한 행의 합이 정확히 1입니다. 즉 n×nn \times n 점수 행렬의 각 행이 "이 토큰이 다른 토큰들에 나눠 줄 주의의 배분"이 됩니다.

이 자리를 읽으려면 세 가지가 필요합니다. 지수함수와 로그의 성질(18번) — 왜 exe^x인가, 왜 상수를 빼도 값이 안 변하는가. 확률분포가 무엇인가(4단원) — 합이 1인 음이 아닌 벡터가 왜 분포인가. 그리고 softmax를 어디서 끌어냈는가(25번) — 이 함수가 하늘에서 떨어진 게 아니라 특정 조건에서 유일하게 나오는 형태라는 것.

다섯째 자리 — 오른쪽의 V

마지막으로 n×nn \times n 가중치 행렬에 VV(n×dvn \times d_v)를 곱합니다.

An×nVn×dv=AVn×dv\underbrace{A}_{n \times n} \cdot \underbrace{V}_{n \times d_v} = \underbrace{AV}_{n \times d_v}

결과의 ii번째 행은 이렇게 생겼습니다.

(AV)i=j=1nAijvj(AV)_i = \sum_{j=1}^{n} A_{ij}\, v_j

계수 AijA_{ij}를 붙여 벡터 vjv_j들을 더한 것 — 이것이 선형결합의 정의 그대로입니다. 그래서 어텐션의 출력은 언제나 값 벡터들이 만드는 공간 안에 머뭅니다. 새로운 방향이 생기지 않습니다. 이 사실은 4번 글(벡터와 선형결합)에서 정의되고 9번 글(행렬은 선형사상이다)에서 일반화됩니다.

VV가 왼쪽이 아니라 오른쪽에 붙는 이유도 여기 있습니다. 토큰을 행에 쌓는 관례를 택했으므로, "각 행을 섞는" 연산은 왼쪽에서 곱하는 가중치 행렬이 맡고 결과는 오른쪽 피연산자의 열 구조를 물려받습니다. 관례를 반대로 잡은 논문은 식도 전치된 모양으로 씁니다. 같은 계산인데 식이 달라 보이는 흔한 원인이고, 다음 글이 이 문제만 따로 다룹니다.

식에 안 보이지만 반드시 따라오는 둘

여기까지가 종이에 인쇄된 기호 전부입니다. 그런데 실제 구현을 열어 보면 식에 없는 것이 두 개 더 있습니다.

마스킹. 언어 모델은 뒤에 올 토큰을 미리 보면 안 됩니다. 그래서 softmax를 씌우기 전에 볼 수 없는 자리의 점수를 -\infty로 바꿉니다. 그러면 e=0e^{-\infty} = 0이라 그 자리의 가중치가 정확히 0이 되고, 나머지 자리의 합은 여전히 1입니다. 이것은 트릭이 아니라 지수함수의 끝값이 만드는 성질입니다(18번). 실제 코드에서는 -\infty 대신 -1e9 같은 큰 음수를 쓰는데, 왜 그래도 되는지 그리고 언제 그것이 깨지는지는 부동소수점의 문제라 12단원(유한한 기계의 수학)이 맡습니다.

미분. 학습할 때는 이 식을 계산하는 게 아니라 미분합니다. 손실이 QQ, KK, VV를 만들어 낸 가중치들에 대해 어떻게 변하는지 알아야 하니까요. 그러려면 softmax를 미분해야 하는데, 입력이 벡터고 출력도 벡터라서 미분의 결과가 숫자가 아니라 행렬(야코비안)이 됩니다. 6단원 전체가 이 도구를 만들고, 41번 글이 어텐션의 그래디언트를 끝까지 유도합니다.

지도 — 기호와 글의 대응표

지금까지의 대응을 한 표로 모읍니다. 어떤 자리에서 막혔을 때 어디로 가야 하는지가 이 표에 있습니다.

식에서의 자리 막히는 질문 필요한 수학 커리큘럼 위치
Q,K,VQ, K, V 대문자 표기 이게 벡터인가 행렬인가 스칼라·벡터·행렬·텐서 표기 규약 2번
Rn×dk\mathbb{R}^{n \times d_k} 이 기호가 셰이프인가 정의역·공역, 원소와 슬라이스 표기 2번
tQitKjt\sum_t Q_{it}K_{jt} 어떤 첨자가 사라지는가 시그마와 첨자, einsum 3번
임베딩 한 행 왜 배열이 아니라 벡터인가 벡터공간, 선형결합 4번
q\lVert q \rVert 가 나오는 자리 크기를 어떻게 재는가 노름과 거리 5번
qikjq_i \cdot k_j 왜 이게 관련도인가 내적, 코사인, 코시-슈바르츠 6번
KK^\top 전치가 무엇을 바꾸는가 행렬곱과 셰이프 산술 10번
AVAV 출력이 어디에 갇히는가 행렬은 선형사상이다 9번
dk\sqrt{d_k} 왜 하필 제곱근인가 분산, 독립합의 분산 21번 → 40번
ezje^{z_j} 왜 지수함수인가 지수와 로그 18번
softmax 결과 왜 이것이 분포인가 확률분포, softmax의 유도 20번 → 25번
마스킹 -\infty 왜 0이 되는가 지수함수의 끝값, 수치 안정성 18번 → 58번대
L/Q\partial L / \partial Q 미분 결과가 왜 행렬인가 연쇄법칙, 야코비안 33번 → 34번 → 41번

표를 세로로 훑어보면 한 가지가 보입니다. 어텐션 한 줄을 완전히 읽는 데 필요한 글이 커리큘럼 전반부에 고르게 흩어져 있다는 것입니다. 선형대수만 알아도 안 되고 확률만 알아도 안 됩니다. 그래서 이 커리큘럼의 순서는 수학 교과서의 논리 전개가 아니라 이 식의 데이터 흐름을 따릅니다. 벡터 → 행렬 → 확률 → 정보 → 미분 순서로 가면 43번째 글에서 이 한 줄이 통째로 닫힙니다.

어디까지 읽으면 무엇이 닫히는가

손으로 해 보기 — 다른 식을 같은 방법으로 쪼개기

지도를 그리는 방법 자체가 이 글의 결과물입니다. 그러니 다른 식으로 한 번 연습해 봅니다. 사전학습에서 쓰는 교차 엔트로피 손실입니다.

L=1Ni=1Nlogpθ(xix<i)L = -\frac{1}{N}\sum_{i=1}^{N} \log p_\theta(x_i \mid x_{<i})

먼저 소리 내어 읽습니다. "손실은, 엔부터 시작해서, 각 토큰의 조건부 확률에 로그를 씌운 것을 전부 더하고, 엔으로 나눈 다음, 마이너스를 붙인 것이다."

이제 자리마다 질문을 답니다.

자리 막히는 질문 필요한 수학
i=1N\sum_{i=1}^{N} 무엇을 무엇에 대해 더하는가 시그마와 첨자 (3번)
1N\frac{1}{N}\sum 이게 왜 평균이자 기댓값인가 확률변수와 기댓값 (20번)
pθ(xix<i)p_\theta(x_i \mid x_{<i}) 조건부 확률의 곱이 왜 문장 확률인가 확률의 연쇄법칙 (19번)
log\log 왜 로그를 씌우는가 지수와 로그 (18번), 최대가능도 (28번)
앞의 마이너스 왜 부호를 뒤집는가 엔트로피와 교차 엔트로피 (27번, 29번)

다섯 자리가 나왔고, 그중 셋이 어텐션 식의 지도에도 있던 자리입니다. 지수와 로그, 시그마와 첨자, 확률분포 — 이 셋은 어느 식을 쪼개도 나옵니다. 그래서 커리큘럼 앞쪽에 두었습니다.

여기서 한 가지 더 확인할 수 있습니다. 두 식의 지도를 겹쳐 보면 겹치지 않는 자리가 각각의 고유한 어려움입니다. 어텐션 쪽의 고유한 자리는 전치와 행렬곱과 dk\sqrt{d_k}이고, 손실 쪽의 고유한 자리는 조건부 확률과 최대가능도입니다. 어떤 논문에서 막혔을 때 "무엇을 모르는지"를 이 정도 해상도로 말할 수 있으면, 검색어가 정확해지고 필요한 것만 골라 읽게 됩니다.

지도를 쓰는 두 가지 방법

이 커리큘럼에는 두 가지 읽는 방법이 있습니다.

처음부터 순서대로. 앞 글이 뒤 글의 도구를 먼저 정의하도록 순서를 짰기 때문에, 1번부터 차례로 가면 선행 지식 없이 계속 갈 수 있습니다. 중간에 멈춰도 손해가 적도록 단원 경계마다 완결된 묶음이 남습니다. 8번까지면 임베딩 검색에서 "가깝다"가 무엇인지 계산으로 답할 수 있고, 31번까지면 사전학습 손실 한 줄을 스스로 유도할 수 있습니다.

막힌 자리만 골라서. 지금 읽고 있는 논문의 어떤 기호에서 막혔다면 위 표에서 그 자리를 찾아 해당 글만 꺼내 읽으면 됩니다. 각 글은 자기 개념 하나를 AI의 구체적인 장면 하나로 열고 닫도록 썼기 때문에, 한 편만 읽어도 그 자리는 채워집니다.

어느 쪽이든 기준은 하나입니다. 이 개념이 AI의 무엇을 설명하는가를 한 줄로 못 쓰면 그 내용은 이 커리큘럼에 없습니다. 순수 수학 교과서가 다루는 것 중 상당수가 그래서 빠져 있습니다. 가우스 소거법도, 삼각함수 항등식도, 엡실론-델타 극한도 없습니다. 대신 논문에서 실제로 마주치는 것 — 야코비안, KL 발산, 재매개변수화, 라그랑주 승수 — 이 들어 있습니다.

다시 그 페이지로

처음의 논문 3페이지로 돌아갑니다.

Attention(Q,K,V)=softmax ⁣(QKdk)V\mathrm{Attention}(Q, K, V) = \mathrm{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V

이제 이 줄은 하나의 벽이 아니라 다섯 개의 자리입니다. 각 자리에 어떤 질문이 걸려 있고 그 질문의 답이 어디에 있는지 압니다. 여전히 dk\sqrt{d_k}가 왜 제곱근인지는 모르지만, 모르는 것이 "어텐션"이 아니라 "독립인 확률변수 합의 분산"이라는 것은 압니다. 모르는 것의 이름을 정확히 부를 수 있게 되는 것 — 수식을 읽는다는 말의 첫 번째 의미가 그것입니다.

다음 글은 이 지도의 첫 칸입니다. 대문자와 소문자, 굵은 글씨와 정자체, 위 첨자와 아래 첨자가 각각 무엇을 뜻하는지 — 논문 첫 페이지의 Notation 절을 사전 없이 읽고, 거기 적힌 기호가 코드의 어떤 텐서 축에 대응하는지 맞춰 보는 것이 목표입니다.


다음 글: 논문 수식 표기 규약: 스칼라·벡터·행렬·텐서를 구별해서 읽기


읽어주셔서 감사합니다. 😊

KEEP READING

이어 읽기

수학2026.08.05

노름과 거리: L1·L2·L∞와 단위구의 모양

노름의 세 공리에서 출발해 L1·L2·L∞의 단위구를 그려 비교하고, 그래디언트 클리핑과 가중치 감쇠와 L1 희소성이 각각 어떤 성질에서 나오는지 연결합니다.

중급22 MIN
PALDYN / AI LAB

AI를 이해하고 배우는 데 필요한 개념, 수학, 논문과 실험을 연결해 기록합니다.

OfficialTech Blog© 2026 PALDYN