∇ Σ ∂ ∫ λ θ
기술 심층 분석

AI를 움직이는
수학

선형대수부터 트랜스포머까지: 완전한 수학적 프레임워크

벡터 공간 확률론 미적분과 최적화 신경망 수학 역전파 어텐션 메커니즘 트랜스포머 아키텍처 학습 동역학

서론

현대 AI, 특히 대규모 언어 모델, 이미지 생성기, 분류 시스템은 놀라울 만큼 간결한 수학적 토대 위에 세워져 있습니다. ChatGPT가 문장을 생성하는 일부터 Stable Diffusion이 이미지를 렌더링하는 일까지, 가장 낮은 수준에서는 모두 같은 연산으로 귀결됩니다. 바로 행렬 곱셈, 비선형 함수, 경사 하강법입니다. 정교함은 이 기본 요소들을 어떻게 조합하고 확장하느냐에 있습니다.

이 글은 기본 원리부터 수학을 전개합니다. 선형대수와 확률론으로 시작해 미적분 기반 최적화를 거쳐 신경망 형식 체계를 세우고, 역전파를 유도한 뒤, 2026년 모든 주요 언어 모델의 기반인 어텐션 메커니즘과 트랜스포머 아키텍처로 마무리합니다. 지름길은 없습니다. 모든 식을 구성 요소부터 유도하거나 설명합니다.

사전 지식: 고등학교 수준의 대수와 기초 미적분 표기법(도함수, 연쇄 법칙)에 익숙하면 됩니다. 나머지는 모두 여기서 차근차근 쌓아 갑니다.

01

선형대수

AI의 언어

1.1 벡터와 벡터 공간

벡터는 순서가 있는 숫자의 목록입니다. AI에서는 단어, 이미지 패치, 사용자 선호도, 은닉 상태 등 모든 것을 벡터로 표현합니다. n차원 실수 공간의 벡터 x는 다음과 같이 씁니다.

x = [x₁, x₂,..., xₙ]ᵀ ∈ ℝⁿ

집합 ℝⁿ은 벡터 공간입니다. 덧셈과 스칼라 곱에 대해 닫혀 있고, 영벡터를 가지며, 벡터 공간의 여덟 가지 공리를 만족합니다. 바로 이 대수적 구조 덕분에 선형대수를 머신러닝에 적용할 수 있습니다. 신경망 계층은 벡터 공간 사이의 선형 사상입니다.

1.1.1 내적과 코사인 유사도

두 벡터 x, y ∈ ℝⁿ의 내적은 다음과 같습니다.

x · y = xᵀy = Σᵢ xᵢyᵢ = ‖x‖‖y‖cos(θ)

여기서 θ는 두 벡터 사이의 각도입니다. 내적은 정렬 정도를 측정합니다. x와 y가 같은 방향을 가리킬 때(cos θ = 1) 최대가 되고, 직교할 때(cos θ = 0) 0이 되며, 반대 방향일 때(cos θ = -1) 최소가 됩니다. 이 기하학적 해석이 어텐션 메커니즘의 바탕입니다. 쿼리와 키의 내적은 둘이 서로에게 얼마나 '주의를 기울이는지(attend)'를 측정합니다.

코사인 유사도는 내적을 두 벡터 크기의 곱으로 정규화한 것입니다.

cos_sim(x, y) = (x · y) / (‖x‖ · ‖y‖) ∈ [-1, 1]

코사인 유사도는 NLP에서 단어 임베딩 간의 의미적 유사도를 측정하는 데 폭넓게 쓰입니다. 비슷한 의미의 단어를 나타내는 벡터는 임베딩 공간에서 서로 모여 있으며, 코사인 유사도가 1에 가깝습니다.

1.2 행렬과 선형 변환

행렬 W ∈ ℝᵐˣⁿ은 ℝⁿ에서 ℝᵐ으로의 선형 변환을 나타냅니다. 행렬-벡터 곱셈은 다음과 같습니다.

y = Wx, 여기서 yᵢ = Σⱼ Wᵢⱼ xⱼ

이것이 신경망 계층의 핵심 연산입니다. 각 행 Wi·는 가중치 벡터이며, 출력 yi는 i번째 행과 입력 x의 내적입니다. 행렬 W에는 계층이 학습한 내용, 즉 입력 특성의 어떤 선형 결합을 계산할지가 담겨 있습니다.

1.2.1 행렬 곱셈

행렬 A ∈ ℝᵐˣⁿ과 B ∈ ℝⁿˣᵖ에 대해, 곱 C = AB ∈ ℝᵐˣᵖ의 성분은 다음과 같습니다.

Cᵢⱼ = Σₖ Aᵢₖ Bₖⱼ = Aᵢ· · B·ⱼ

행렬 곱셈은 교환 법칙이 성립하지 않지만(일반적으로 AB ≠ BA) 결합 법칙은 성립합니다: A(BC) = (AB)C. m×n 행렬과 n×p 행렬을 곱하는 계산 비용은 O(mnp)이며, 이것이 대규모 신경망에서 가장 큰 비용입니다. 은닉 차원 d = 4096인 트랜스포머가 2048개 토큰의 시퀀스를 처리할 때, 행렬 곱셈 한 번의 비용은 O(2048 × 4096 × 4096) ≈ 340억 회 연산입니다.

1.2.2 전치 행렬과 대칭 행렬

행렬 W의 전치 Wᵀ는 행과 열을 뒤바꿉니다: (Wᵀ)ij = Wji. 주요 성질: (AB)ᵀ = BᵀAᵀ, (Wᵀ)ᵀ = W. 대칭 행렬은 W = Wᵀ를 만족합니다.

트랜스포머의 어텐션 가중치 행렬 QKᵀ/√dk는 전치를 포함하는 행렬 곱으로 계산됩니다 — 쿼리 행렬 Q ∈ ℝˢˣᵈ에 전치된 키 행렬 Kᵀ ∈ ℝᵈˣˢ를 곱해 s×s 어텐션 가중치 행렬을 만듭니다. 여기서 s는 시퀀스 길이입니다.

1.3 고윳값, 고유벡터, SVD

다음을 만족하면 벡터 v는 행렬 A의 고유벡터입니다.

Av = λv

여기서 λ는 대응하는 고윳값입니다. 고유벡터는 행렬 A가 회전시키지 않고 크기만 바꾸는 방향입니다. 모든 고윳값의 집합을 A의 스펙트럼이라 하며, 이는 행렬의 동작을 특징짓습니다. 큰 고윳값은 해당 방향을 증폭하고, 작은 고윳값은 감쇠시킵니다.

특잇값 분해(SVD)는 고윳값 분해를 정사각 행렬이 아닌 행렬로 일반화한 것입니다.

W = U Σ Vᵀ

여기서 U ∈ ℝᵐˣᵐ와 V ∈ ℝⁿˣⁿ은 직교 행렬(회전/반사)이고, Σ ∈ ℝᵐˣⁿ은 음이 아닌 성분 σ₁ ≥ σ₂ ≥... ≥ σᵣ(특잇값)을 갖는 대각 행렬입니다. SVD는 가중치 압축에 쓰입니다. 상위 k개 특잇값만 사용한 저랭크 근사 Wk = Uk Σk Vkᵀ는 프로베니우스 노름 기준으로 W에 대한 최적의 랭크-k 근사를 제공합니다 — 이것이 LoRA(Low-Rank Adaptation) 파인튜닝의 기반입니다.

1.4 노름과 정규화

벡터 x ∈ ℝⁿ의 L2 노름(유클리드 노름):

‖x‖₂ = √(Σᵢ xᵢ²) = √(xᵀx)

행렬 W ∈ ℝᵐˣⁿ의 프로베니우스 노름:

‖W‖_F = √(Σᵢ Σⱼ Wᵢⱼ²) = √(tr(WᵀW))

노름은 벡터와 행렬의 '크기'를 수치화합니다. 최적화에서 손실 함수에 노름 페널티를 더하는 것 — 즉 정규화 — 은 큰 가중치에 불이익을 주어 과적합을 막습니다. L2 정규화(가중치 감쇠)는 손실에 λ‖W‖²F를 더해 학습 중 가중치가 0을 향해 감쇠하게 만듭니다.

02

확률론과 정보 이론

2.1 확률 분포

이산 표본 공간 X 위의 확률 분포 P는 각 결과 x ∈ X에 P(x) ≥ 0을 할당하며 Σx P(x) = 1을 만족합니다. 언어 모델링이 바로 이것, 즉 토큰 시퀀스에 대한 분포를 추정하는 일입니다.

연속 변수의 경우 확률 밀도 함수(PDF) f(x)는 f(x) ≥ 0과 ∫f(x)dx = 1을 만족합니다. 구간의 확률은 P(a ≤ X ≤ b) = ∫ab f(x)dx입니다.

2.1.1 소프트맥스 분포

소프트맥스 함수는 실수 값 로짓 벡터 z ∈ ℝⁿ을 확률 분포로 변환합니다.

softmax(z)ᵢ = exp(zᵢ) / Σⱼ exp(zⱼ)

성질: 모든 출력은 양수이고 합이 1이며(유효한 확률 분포), 큰 로짓은 1에 가까운 확률로, 작은 로짓은 0에 가까운 확률로 대응됩니다. 온도 스케일링은 이를 조정합니다: softmax(z/T) — T → 0이면 argmax(원-핫)에 가까워지고, T → ∞이면 균등 분포에 가까워집니다. 언어 모델은 생성 단계마다 이 분포에서 샘플링합니다.

수치 안정성 문제: z가 크면 exp(z)가 오버플로됩니다. 표준적인 해결책은 지수를 취하기 전에 최댓값을 빼는 것입니다.

softmax(z)ᵢ = exp(zᵢ - max(z)) / Σⱼ exp(zⱼ - max(z))

2.2 정보 이론

2.2.1 섀넌 엔트로피

분포 P의 엔트로피 H(P)는 불확실성, 즉 한 결과가 담고 있는 평균 정보량을 측정합니다.

H(P) = -Σₓ P(x) log₂ P(x) [비트]

엔트로피는 P가 균등 분포일 때 최대(불확실성 최대)이고, P가 결정적일 때 최소(= 0)입니다. 공정한 동전은 H = 1비트, 6면 주사위는 H = log₂(6) ≈ 2.58비트입니다. 언어 엔트로피는 한 언어를 부호화하는 데 토큰당 몇 비트가 필요한지를 측정합니다.

2.2.2 교차 엔트로피와 KL 발산

교차 엔트로피 H(P, Q)는 실제 분포 P의 표본을 분포 Q로 부호화할 때의 기대 부호 길이를 측정합니다.

H(P, Q) = -Σₓ P(x) log Q(x)

이것이 분류와 언어 모델링의 표준 학습 손실입니다. P는 실제(원-핫) 레이블 분포이고 Q는 모델의 예측 분포입니다. 교차 엔트로피를 최소화하는 것은 모델 하에서 데이터의 로그 우도를 최대화하는 것과 같습니다.

KL 발산 DKL(P‖Q)는 Q가 P와 얼마나 다른지를 측정합니다.

D_KL(P‖Q) = Σₓ P(x) log(P(x)/Q(x)) = H(P,Q) - H(P) ≥ 0

KL 발산은 P = Q가 거의 모든 곳에서 성립할 때에만 0이고, 그 외에는 양수입니다(깁스 부등식). 대칭이 아닙니다: DKL(P‖Q) ≠ DKL(Q‖P). RLHF 학습에도 등장합니다. 파인튜닝된 모델이 기본 모델에서 너무 멀리 벗어나지 않도록 막는 KL 페널티 항이 DKL(πθ ‖ πref)입니다.

2.2.3 Perplexity

퍼플렉서티는 교차 엔트로피 손실의 지수로, 언어 모델 평가의 표준 지표입니다.

PPL(P, Q) = exp(H(P, Q)) = exp(-1/N Σₙ log Q(tₙ | t₁,...,tₙ₋₁))

직관적으로 퍼플렉서티는 모델이 각 단계에서 선택하는 실질적인 어휘 크기입니다. 퍼플렉서티 20은 모델이 평균적으로 똑같이 가능성 있는 20개 선택지 중에서 균등하게 고르는 것만큼 불확실하다는 뜻입니다. 최첨단 언어 모델은 표준 벤치마크에서 3–8의 퍼플렉서티를 달성합니다.

2.3 베이즈 정리

베이즈 정리는 확률적 머신러닝의 기초입니다.

P(θ|D) = P(D|θ) · P(θ) / P(D)

여기서 θ는 모델 파라미터, D는 관측 데이터, P(θ|D)는 사후 확률, P(D|θ)는 우도, P(θ)는 사전 확률, P(D) = ∫P(D|θ)P(θ)dθ는 주변 우도(증거)입니다. 최대 우도 추정(MLE)은 사전 확률을 무시하고 P(D|θ)를 최대화합니다. 최대 사후 확률(MAP) 추정은 P(θ|D)를 최대화하며, 이는 -log P(θ)에 비례하는 정규화를 더한 MLE와 같습니다.

현대 딥러닝은 보통 완전한 베이즈 추론 대신 MLE/MAP을 사용합니다. 수십억 개 파라미터에 대한 사후 분포를 계산하는 것은 계산적으로 불가능하기 때문입니다. LLM의 불확실성 추정은 여전히 열린 연구 과제입니다.

03

미적분과 최적화

3.1 도함수와 기울기

스칼라 함수 f: ℝ → ℝ의 점 x에서의 도함수는 순간 변화율을 측정합니다.

f'(x) = df/dx = lim_{h→0} [f(x+h) - f(x)] / h

함수 f: ℝⁿ → ℝ(손실 함수처럼)에 대해 기울기 ∇f ∈ ℝⁿ은 편도함수로 이루어진 벡터입니다.

∇f(x) = [∂f/∂x₁, ∂f/∂x₂,..., ∂f/∂xₙ]ᵀ

기울기는 가장 가파르게 증가하는 방향을 가리킵니다. 따라서 기울기의 반대 방향으로 이동하면 손실 함수가 감소하며, 이것이 경사 하강법의 기본 원리입니다.

3.1.1 야코비안과 헤시안

벡터 값 함수 f: ℝⁿ → ℝᵐ에 대해 야코비안 J ∈ ℝᵐˣⁿ은 모든 1계 편도함수를 담고 있습니다: Jij = ∂fi/∂xj. 계층 입력에 대한 출력의 야코비안은 역전파의 핵심입니다.

스칼라 함수의 헤시안 H ∈ ℝⁿˣⁿ은 모든 2계 편도함수를 담고 있습니다: Hij = ∂²f/(∂xi ∂xj). 헤시안은 손실 지형의 곡률을 나타냅니다. 헤시안이 양의 정부호이면 극소점, 음의 정부호이면 극대점, 부정부호이면 안장점입니다.

3.1.2 연쇄 법칙

연쇄 법칙은 역전파의 수학적 기초입니다. 합성 함수 g(f(x))에 대해:

d/dx g(f(x)) = g'(f(x)) · f'(x)

벡터 값 함수의 경우, 다변수 연쇄 법칙은 야코비안을 사용합니다.

∂z/∂x = (∂z/∂y) · (∂y/∂x) = J_g · J_f

신경망은 함수의 합성입니다: L(θ) = loss(fₙ(...f₂(f₁(x; W₁)); Wₙ)). 이 합성을 따라 연쇄 법칙을 재귀적으로 적용하면 모든 계층 i에 대해 ∂L/∂Wi를 계산할 수 있습니다 — 이 재귀적 적용이 바로 역전파입니다.

3.2 경사 하강법과 그 변형

3.2.1 확률적 경사 하강법

기본 경사 하강법은 파라미터 θ를 기울기의 반대 방향으로 갱신합니다.

θ_{t+1} = θ_t - η · ∇_θ L(θ_t)

여기서 η는 학습률입니다. 전체 데이터셋에 대한 실제 기울기를 계산하는 것은 비용이 큽니다 — 단계마다 O(N)번의 순방향 패스가 필요합니다. 확률적 경사 하강법(SGD)은 크기 b인 미니배치 B ⊂ D로 이를 근사합니다.

θ_{t+1} = θ_t - η · (1/b) Σ_{x∈B} ∇_θ ℓ(f(x; θ), y)

미니배치 기울기는 전체 기울기의 불편 추정량입니다: E[gB] = ∇L. 분산은 배치 크기 b가 커질수록 줄어듭니다: Var(gB) = σ²/b.

3.2.2 모멘텀

모멘텀은 지속적인 기울기 성분 방향으로 속도 벡터 v를 누적합니다.

v_{t+1} = β · v_t + (1-β) · ∇_θ L(θ_t)
θ_{t+1} = θ_t - η · v_{t+1}

β ∈ [0.9, 0.99]일 때 모멘텀은 사실상 1/(1-β) 단계에 걸친 기울기를 평균합니다. β=0.9이면 10단계, β=0.99이면 100단계입니다. 이를 통해 완만한 차원을 따라서는 수렴이 빨라지고, 가파른 차원을 따라서는 진동이 줄어듭니다.

3.2.3 Adam: 적응적 모멘트 추정

Adam(Kingma & Ba, 2015)은 기울기의 1차 모멘트(평균)와 2차 모멘트(중심화되지 않은 분산)를 모두 추적해 파라미터별 적응적 학습률을 유지합니다.

m_t = β₁ · m_{t-1} + (1-β₁) · g_t
v_t = β₂ · v_{t-1} + (1-β₂) · g_t²
m̂_t = m_t / (1-β₁ᵗ), v̂_t = v_t / (1-β₂ᵗ)
θ_{t+1} = θ_t - η · m̂_t / (√v̂_t + ε)

일반적인 하이퍼파라미터: β₁ = 0.9, β₂ = 0.999, ε = 10⁻⁸, η = 3×10⁻⁴. 파라미터별 실질 학습률은 η/√v̂_t입니다. 기울기 분산이 큰 파라미터는 실질 보폭이 작아지고, 분산이 작은 파라미터는 보폭이 커집니다.

3.2.4 학습률 스케줄링

학습률 η는 보통 고정하지 않습니다. 대표적인 스케줄로는 선형 워밍업 + 코사인 감쇠(대부분의 트랜스포머 사전 학습에 사용), 재시작이 있는 코사인 어닐링, 다항식 감쇠가 있습니다. 워밍업 단계는 대형 모델에 매우 중요합니다. 초기화 시점에는 기울기 추정치에 잡음이 많아, 처음부터 학습률이 크면 학습이 불안정해질 수 있습니다.

04

신경망 아키텍처

수학

4.1 순방향 계층

신경망 계층 하나는 선형 변환을 계산한 뒤 비선형 활성화 함수 σ를 적용합니다.

h = σ(Wx + b)

여기서 W ∈ ℝᵐˣⁿ은 가중치 행렬, b ∈ ℝᵐ은 편향 벡터, x ∈ ℝⁿ은 입력, h ∈ ℝᵐ은 은닉 상태입니다. σ가 없다면 계층을 아무리 쌓아도 하나의 선형 변환과 같습니다. 활성화 함수가 이 선형성을 깨뜨려, 깊은 신경망이 기하급수적으로 더 복잡한 함수를 표현할 수 있게 합니다.

4.2 활성화 함수

4.2.1 ReLU와 그 변형

ReLU(x) = max(0, x) = x · 𝟙[x > 0]

성질: 계산이 매우 간단하고, 기울기는 0(x < 0) 또는 1(x > 0)이며, 희소한 활성화를 만들고, 양수 값에서는 포화되지 않습니다. 문제점: '죽은 ReLU(dying ReLU)' — x < 0인 뉴런은 기울기가 0이 되어 회복하지 못합니다.

GPT와 BERT에서 사용되는 GeLU(Gaussian Error Linear Unit):

GELU(x) = x · Φ(x) = x · P(Z ≤ x), 여기서 Z ~ N(0,1)

LLaMA/PaLM에서 사용되는 SwiGLU는 게이트가 있는 변형입니다.

SwiGLU(x, W, V) = Swish(xW) ⊙ (xV)

4.2.2 시그모이드와 Tanh

σ(x) = 1/(1 + e⁻ˣ) ∈ (0,1)
tanh(x) = (eˣ - e⁻ˣ)/(eˣ + e⁻ˣ) ∈ (-1,1)

두 함수 모두 깊은 신경망에서 기울기 소실 문제를 겪습니다. |x| >> 0이면 기울기 σ'(x) = σ(x)(1-σ(x)) → 0이 되어, 역방향으로 전파될수록 기울기가 기하급수적으로 사라집니다. ReLU와 잔차 연결이 등장하기 전까지 이것이 깊은 신경망 학습의 가장 큰 걸림돌이었습니다.

4.3 다층 퍼셉트론(MLP)

L계층 MLP는 다음을 계산합니다.

h₀ = x
hₗ = σ(Wₗ hₗ₋₁ + bₗ), l = 1,...,L-1
ŷ = softmax(W_L h_{L-1} + b_L)

범용 근사 정리(Hornik, 1989)에 따르면, 충분한 너비를 가진 은닉 계층 하나짜리 MLP는 콤팩트한 정의역 위의 모든 연속 함수를 임의의 정밀도로 근사할 수 있습니다. 그러나 많은 함수 부류에서 깊은 신경망은 얕은 신경망보다 기하급수적으로 파라미터 효율이 높습니다.

4.4 역전파

역전파는 계산 그래프를 따라 역방향으로 연쇄 법칙을 적용해 신경망의 모든 가중치 행렬 W에 대한 ∂L/∂W를 계산합니다.

오차 신호(상류 기울기)를 다음과 같이 정의합니다.

δₗ = ∂L/∂zₗ, 여기서 zₗ = Wₗhₗ₋₁ + bₗ

역전파 점화식:

δ_L = ∂L/∂z_L
δₗ = (Wₗ₊₁ᵀ δₗ₊₁) ⊙ σ'(zₗ)
∂L/∂Wₗ = δₗ hₗ₋₁ᵀ
∂L/∂bₗ = δₗ
python 역전파 구현
# Forward pass
def forward(x, layers):
    activations = [x]
    pre_activations = []
    for W, b in layers:
        z = W @ activations[-1] + b
        pre_activations.append(z)
        activations.append(relu(z))
    return activations, pre_activations

# Backward pass
def backward(loss_grad, activations, pre_acts, layers):
    delta = loss_grad
    grads = []
    for l in reversed(range(len(layers))):
        W, b = layers[l]
        dW = delta @ activations[l].T  # ∂L/∂W
        db = delta.sum(axis=1)         # ∂L/∂b
        grads.insert(0, (dW, db))
        if l > 0:
            delta = (W.T @ delta) * relu_grad(pre_acts[l-1])
    return grads

역전파가 효율적인 이유

단순한 방법은 각 가중치를 ε만큼 흔들어 (L(W+εeij) - L(W))/ε를 측정하는 것입니다. 파라미터가 n개라면 순방향 패스가 n번 필요합니다. 역전파는 동적 계획법으로 중간 계산을 재사용해, 단 한 번의 역방향 패스로 n개의 기울기를 모두 계산합니다 — O(n²)이 아니라 O(n)입니다.

4.5 기울기 소실 및 폭발 문제

오차 신호 δₗ에는 L-l개의 야코비안 행렬의 곱이 포함됩니다. 스펙트럼 반지름 ρ(J) < 1이면 기울기가 기하급수적으로 소실되고, ρ(J) > 1이면 폭발합니다. 해결책으로는 잔차 연결(h = F(x) + x), 기울기 클리핑(‖g‖ > γ → 재조정), 계층 정규화, 신중한 초기화(He 초기화: W ~ N(0, 2/nin))가 있습니다.

05

정규화 계층

5.1 배치 정규화

μ_B = (1/m) Σᵢ xᵢ, σ²_B = (1/m) Σᵢ (xᵢ - μ_B)²
x̂ᵢ = (xᵢ - μ_B) / √(σ²_B + ε)
yᵢ = γ · x̂ᵢ + β

γ와 β는 학습되는 파라미터로, 최적이라면 신경망이 정규화를 되돌릴 수 있게 해 줍니다. BatchNorm은 언어 모델에 문제가 됩니다. 시퀀스 길이가 가변적이고, 배치가 작으면 배치 통계가 불안정하기 때문입니다.

5.2 계층 정규화

μₓ = (1/H) Σⱼ xⱼ, σ²ₓ = (1/H) Σⱼ (xⱼ - μₓ)²
x̂ⱼ = (xⱼ - μₓ) / √(σ²ₓ + ε), yⱼ = γⱼ x̂ⱼ + βⱼ

계층 정규화 통계는 배치 단위가 아니라 예제 단위로 계산됩니다. 따라서 배치 크기와 무관하며 학습과 추론에서 똑같이 작동합니다. 이 때문에 LayerNorm은 트랜스포머의 표준 정규화 방식이 되었습니다. Pre-LN 트랜스포머(GPT-2 이후)에서는 LayerNorm을 어텐션 및 MLP 하위 계층 앞에 적용해, 대규모에서 더 안정적인 학습 동역학을 얻습니다.

5.3 RMSNorm

RMSNorm(x) = x / RMS(x) · γ, 여기서 RMS(x) = √(1/H Σⱼ xⱼ²)

RMSNorm은 LayerNorm보다 약 10% 빠르면서도 비슷한 결과를 냅니다. LLaMA, Mistral, Gemma 아키텍처에서 사용됩니다. 직관적으로 보면, LayerNorm의 재중심화 단계는 모델 품질에 거의 영향을 주지 않으며, 주된 이점은 활성화 크기를 제어하는 재스케일링에서 나옵니다.

06

임베딩과 위치 인코딩

6.1 토큰 임베딩

토큰 임베딩 행렬 E ∈ ℝ|V|×d는 어휘 V의 각 이산 토큰을 밀집된 d차원 벡터로 매핑합니다.

e_t = E[t] ∈ ℝᵈ

최신 모델의 임베딩 차원 d는 보통 512–4096입니다. 임베딩 행렬은 모델의 나머지 부분과 함께 학습되며, 임베딩 공간에서 가까운 토큰은 문맥상 쓰임새가 비슷합니다. 임베딩 공간의 산술 연산이 의미 관계를 포착한다는 Word2Vec의 발견(king - man + woman ≈ queen)은 대규모 말뭉치로 학습할 때 나타나는 창발적 성질입니다.

가중치 공유(weight tying): 많은 모델에서 출력 투영 행렬 Wout을 Eᵀ와 공유하여, 경험적인 성능 저하 없이 파라미터를 |V|×d만큼 줄입니다.

6.2 위치 인코딩

트랜스포머에는 본질적인 순서 개념이 없습니다. 어텐션은 순열 등변성을 갖기 때문입니다. 위치 인코딩이 위치 정보를 주입합니다.

6.2.1 사인파 위치 인코딩

PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))

6.2.2 회전 위치 임베딩(RoPE)

LLaMA, Mistral, GPT-NeoX에서 사용되는 RoPE(Su et al., 2021)는 쿼리 벡터와 키 벡터를 2차원 부분 공간에서 회전시켜 위치를 인코딩합니다.

q_m = R_m q, k_n = R_n k
(R_m q)ᵀ(R_n k) = qᵀ R_{m-n}ᵀ k = f(q, k, m-n)

내적은 절대 위치가 아니라 상대 위치 m-n에만 의존합니다. 그래서 RoPE는 상대 위치 민감도 면에서 사인파 인코딩보다 확실히 우수하며, 컨텍스트 길이 외삽도 가능하게 합니다.

07

어텐션 메커니즘

7.1 스케일드 닷-프로덕트 어텐션

어텐션 메커니즘은 값(value)의 가중합을 계산하며, 가중치는 쿼리-키 유사도로 결정됩니다.

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V

여기서 Q ∈ ℝˢˣᵈᵏ(쿼리), K ∈ ℝˢˣᵈᵏ(키), V ∈ ℝˢˣᵈᵥ(값)입니다. 스케일링 계수 1/√dk는 내적 값이 너무 커지는 것을 막습니다 — 이 계수가 없으면 소프트맥스가 원-핫에 가까운 분포로 포화되어 기울기 소실이 발생합니다.

어텐션 가중치 행렬 A = softmax(QKᵀ/√dk) ∈ ℝˢˣˢ의 성분 Aij는 위치 i가 위치 j에 얼마나 주의를 기울이는지를 나타냅니다. 출력은 값의 가중합입니다: outputi = Σj Aij Vj. 이를 통해 각 위치가 시퀀스 내 다른 모든 위치의 정보를 모을 수 있으며 — 이것이 트랜스포머를 규정하는 핵심 능력입니다.

7.2 멀티헤드 어텐션

멀티헤드 어텐션은 저차원 부분 공간에서 h개의 어텐션 연산을 병렬로 수행합니다.

headᵢ = Attention(QWᵢQ, KWᵢK, VWᵢV)
MultiHead(Q,K,V) = Concat(head₁,...,headₕ) Wᴼ

헤드마다 서로 다른 어텐션 패턴을 학습합니다. 어떤 헤드는 최근 위치(지역 문맥)에, 어떤 헤드는 구문 구조에, 또 어떤 헤드는 의미 관계에 주목합니다. 헤드가 h=12개이고 d=768(BERT-base)이면 각 헤드는 64차원 부분 공간에서 작동합니다.

7.3 인과적(마스킹) 어텐션

A = softmax((QKᵀ/√dₖ) + M), M_ij = 0 (j≤i일 때), -∞ (j>i일 때)

소프트맥스 전에 마스킹할 위치에 -∞를 더하면 exp(-∞) = 0이 되어 해당 어텐션 가중치가 0이 됩니다. 그 결과 어텐션은 하삼각 형태가 됩니다. 위치 i는 위치 1,...,i에는 주의를 기울이지만 i+1,...,s에는 기울이지 않습니다.

7.4 계산 복잡도

표준 어텐션은 s×s 어텐션 행렬 때문에 시간 복잡도가 O(s²d), 메모리가 O(s²)입니다. 효율적인 변형으로는 FlashAttention(타일링으로 2-4배 속도 향상, 정확한 계산), 희소 어텐션(윈도 크기 w에 대해 O(s·w)), 선형 어텐션(O(s·d²)), Multi-Query Attention(헤드 간에 K와 V를 공유해 KV 캐시 크기를 h배 줄임)이 있습니다.

08

트랜스포머 아키텍처

8.1 트랜스포머 블록

트랜스포머 계층은 두 개의 하위 계층, 즉 멀티헤드 셀프 어텐션과 위치별 MLP로 구성되며, 각각에 잔차 연결과 계층 정규화가 적용됩니다.

x' = x + MultiHead(LN(x), LN(x), LN(x))
x'' = x' + MLP(LN(x'))

MLP 하위 계층:

MLP(x) = W₂ · GELU(W₁x + b₁) + b₂

여기서 W₁ ∈ ℝ4d×d, W₂ ∈ ℝd×4d입니다. d=4096이면 이 MLP는 계층당 약 1억 3,400만 개(134 million)의 파라미터를 가집니다.

8.2 파라미터 수

구성 요소 파라미터 비고
토큰 임베딩d × |V|출력과 가중치 공유
위치 임베딩d × s_maxRoPE 모델에는 없음
어텐션(계층당)4d²Q, K, V, O 투영
MLP(계층당)8d²SwiGLU: 12d²
LayerNorm(계층당)4d무시할 수준
합계(L개 계층)≈ 12Ld²d가 클 때

GPT-3(L=96, d=12288)의 경우: 12 × 96 × 12288² ≈ 1,750억(175 billion) 개 파라미터.

8.3 잔차 스트림

잔차 연결 패턴은 잔차 스트림을 만듭니다. 이는 네트워크 전체를 관통해 흐르는 d차원 벡터로, 각 계층이 이를 덧셈 방식으로 수정합니다.

x₀ = Embed(tokens) + PE
xₗ = xₗ₋₁ + Attn_l(xₗ₋₁) + MLP_l(...)
logits = Unembed(LN(x_L))

기계적 해석 가능성(mechanistic interpretability) 관점에서는 잔차 스트림을 통신 채널로 봅니다. 어텐션 헤드와 MLP 계층이 여기서 읽고 덧셈 방식의 갱신을 기록하므로, 정보 흐름에 대한 해석 가능성 연구가 가능해집니다.

09

대규모 학습 동역학

9.1 손실 지형

신경망의 손실 함수 L: ℝⁿ → ℝ(n ~ 10⁹–10¹²)은 고도로 비볼록합니다. 이론적으로는 다루기 어렵지만, 대규모 과매개변수화 네트워크는 비교적 쉽게 학습됩니다. 과매개변수화(대부분의 국소 최솟값이 전역 최솟값에 가까움), NTK 영역(무한 너비 네트워크는 커널 회귀처럼 수렴), 암묵적 정규화(SGD가 평탄하고 일반화가 잘 되는 최솟값을 찾음) 덕분입니다.

9.2 Chinchilla 스케일링 법칙

Hoffmann et al.(2022)은 연산 예산 C, 모델 크기 N, 데이터셋 크기 D 사이의 경험적 스케일링 법칙을 도출했습니다.

L(N, D) = E + A/Nᵅ + B/Dᵝ

여기서 E ≈ 1.69(줄일 수 없는 엔트로피), α ≈ β ≈ 0.34입니다. 핵심 발견: 고정된 연산량 C = 6ND에서 최적의 균형은 Nopt ∝ C0.5, Dopt ∝ C0.5입니다 — 모델 크기와 데이터셋 크기를 같은 비율로 늘려야 한다는 뜻입니다. 이는 GPT-3(파라미터 175B, 토큰 300B)가 상당히 학습 부족 상태였음을 시사합니다.

9.3 혼합 정밀도 학습

최신 모델은 혼합 정밀도로 학습합니다. 메모리 효율을 위해 순방향 패스는 float16으로, 수치 안정성을 위해 가중치 갱신은 float32로 수행합니다.

python 혼합 정밀도 학습(PyTorch)
# Forward pass in fp16
with torch.autocast(device_type='cuda', dtype=torch.float16):
    logits = model(input_ids)
    loss = cross_entropy(logits, targets)

# Backward pass: gradients in fp16
scaler.scale(loss).backward()

# Gradient unscaling + clipping in fp32
scaler.unscale_(optimizer)
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

# Weight update in fp32 (master weights)
scaler.step(optimizer)
scaler.update()

float16보다 BFloat16이 선호됩니다. float32와 같은 8비트 지수부(동일한 동적 범위)를 가지면서 가수부는 7비트뿐이라, 손실 스케일링 없이도 오버플로/언더플로를 피할 수 있습니다.

9.4 분산 학습

70B 모델을 학습하려면 가중치만으로도 약 140 GB의 GPU 메모리가 필요합니다. 전략으로는 데이터 병렬화(모델을 복제하고 기울기를 동기화), 텐서 병렬화(가중치 행렬을 여러 GPU에 분할), 파이프라인 병렬화(계층을 서로 다른 GPU에 배정), ZeRO(옵티마이저 상태, 기울기, 가중치를 워커들에 분할해 임의로 큰 모델을 가능하게 함)가 있습니다.

10

언어 모델링과 생성

10.1 자기회귀 목적 함수

L(θ) = -E_{x~D}[ Σₜ log P_θ(xₜ | x_{<t}) ]

각 위치 t에서 모델은 앞선 모든 토큰이 주어졌을 때 전체 어휘 V에 대한 분포를 예측합니다. 이 단순한 다음 토큰 예측 목적 함수를 거대한 규모로 적용하는 것만으로도 언어, 사실 지식, 추론에 대한 풍부한 표현을 학습할 수 있습니다.

10.2 디코딩 전략

10.2.1 온도 스케일링

P(tᵢ) = exp(zᵢ/T) / Σⱼ exp(zⱼ/T)

T < 1이면 분포가 날카로워지고(더 결정적), T > 1이면 평탄해집니다(더 무작위). T = 0이면 argmax(탐욕적 디코딩)가 됩니다.

10.2.2 Top-k 샘플링

P'(tᵢ) = P(tᵢ) / Σ_{j∈top-k} P(tⱼ) (i ∈ top-k일 때)

10.2.3 뉴클리어스(Top-p) 샘플링

V_p = {t : Σ_{v sorted} P(v) ≤ p}, P'(tᵢ) = P(tᵢ)/p

Top-p는 적응적입니다. 불확실할 때는 더 많은 토큰을, 확신할 때는 더 적은 토큰을 고려합니다. 일반적인 설정: 온도 0.7–1.0, top-p 0.9–0.95.

10.2.4 빔 서치

score(x_{1:t}) = (1/t) Σᵢ log P(xᵢ|x_{<i})

빔 서치는 확률을 직접 최대화합니다. 번역과 구조화된 출력에 적합하며, 자유로운 생성에는 샘플링이 선호됩니다.

10.3 키-값 캐시

자기회귀 추론 중 KV 캐시는 이전에 계산된 K, V 텐서를 저장해 각 생성 단계를 O(s²d) 대신 O(sd)로 만들지만, O(2Lsd)의 메모리를 소비합니다. 70B 모델의 경우 float16 기준 약 320 GB입니다. KV 캐시 압축은 긴 컨텍스트 추론에 매우 중요한 활발한 연구 분야입니다.

python KV 캐시 추론
kv_cache = {}

def generate_step(input_token, kv_cache, model):
    q, k, v = model.qkv_proj(embed(input_token))

    if layer_idx in kv_cache:
        K = torch.cat([kv_cache[layer_idx][0], k], dim=1)
        V = torch.cat([kv_cache[layer_idx][1], v], dim=1)
    else:
        K, V = k, v

    kv_cache[layer_idx] = (K, V)
    output = scaled_dot_product_attention(q, K, V)
    return output, kv_cache
11

인간 피드백 기반 강화 학습

11.1 3단계 파이프라인

RLHF는 지도 파인튜닝(SFT), 보상 모델 학습, RL 최적화의 세 단계를 거쳐 사전 학습된 언어 모델을 인간의 선호에 맞게 정렬합니다.

11.2 보상 모델

보상 모델 Rφ: (프롬프트, 완성문) → ℝ는 쌍별 인간 선호도 데이터로 학습됩니다.

L_RM(φ) = -E[ log σ(R_φ(x,y_w) - R_φ(x,y_l)) ]

11.3 PPO 최적화

언어 모델 πθ는 참조 정책에 가깝게 유지하면서 기대 보상을 최대화하도록 최적화됩니다.

max_θ E[ R_φ(x,y) ] - β · D_KL(π_θ ‖ π_ref)
L_PPO = E_t[ min(rₜ Aₜ, clip(rₜ, 1-ε, 1+ε) Aₜ) ]

KL 항은 보상 해킹, 즉 모델이 보상 모델의 약점을 악용하는 방향으로 벗어나는 것을 막습니다. PPO의 클리핑된 대리 목적 함수는 학습을 불안정하게 만드는 지나치게 큰 정책 갱신을 방지합니다.

11.4 직접 선호도 최적화(DPO)

DPO(Rafailov et al., 2023)는 보상 모델을 완전히 건너뜁니다.

L_DPO(θ) = -E[ log σ(β log π_θ(y_w|x)/π_ref(y_w|x) - β log π_θ(y_l|x)/π_ref(y_l|x)) ]

DPO는 수학적으로 RLHF와 동등하지만 더 단순하고 안정적이며 별도의 보상 모델이 필요 없습니다. 대부분의 최신 파인튜닝 파이프라인은 PPO 대신 DPO 또는 그 변형(IPO, KTO)을 사용합니다.

∞

요약: 수학적 구성 요소

개념 핵심 식 AI에서의 역할
행렬 곱셈y = Wx + b모든 선형 계층, 어텐션 투영
소프트맥스exp(z)/Σexp(z)토큰 확률, 어텐션 가중치
교차 엔트로피H(P,Q) = -Σ P log Q분류/언어 모델의 학습 손실
연쇄 법칙∂z/∂x = (∂z/∂y)(∂y/∂x)계층을 통한 역전파
Adam 갱신θ -= η·m̂/√(v̂+ε)학습 중 파라미터 갱신
닷-프로덕트 어텐션softmax(QKᵀ/√dₖ)V트랜스포머 셀프 어텐션의 핵심
계층 정규화(x-μ)/σ · γ + β샘플별로 활성화를 안정화
RoPE(Rₘq)ᵀ(Rₙk)=f(q,k,m-n)상대 위치 인코딩
KL 발산Σ P log(P/Q)RLHF 정규화, VAE 목적 함수
Perplexityexp(H(P,Q))언어 모델 평가 지표
SVDW=UΣVᵀ가중치 압축, LoRA 파인튜닝
PPO 목적 함수E[min(r·A, clip(r)·A)]RLHF 정책 최적화

참고문헌

Vaswani, A., et al. (2017). Attention is all you need. NeurIPS 2017.

He, K., et al. (2016). Deep residual learning for image recognition. CVPR 2016.

Ba, J. L., et al. (2016). Layer normalization. arXiv:1607.06450.

Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. ICLR 2015.

Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation 9(8).

Ioffe, S., & Szegedy, C. (2015). Batch normalization. ICML 2015.

Elhage, N., et al. (2021). A mathematical framework for transformer circuits. Transformer Circuits Thread.

Hoffmann, J., et al. (2022). Training compute-optimal large language models. arXiv:2203.15556.

Su, J., et al. (2021). RoFormer: Enhanced transformer with rotary position embedding. arXiv:2104.09864.

Dao, T., et al. (2022). FlashAttention: Fast and memory-efficient exact attention. NeurIPS 2022.

Rafailov, R., et al. (2023). Direct preference optimization. NeurIPS 2023.

Zhang, B., & Sennrich, R. (2019). Root mean square layer normalization. NeurIPS 2019.

Schulman, J., et al. (2017). Proximal policy optimization algorithms. arXiv:1707.06347.

Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. NeurIPS 2022.

Kirchenbauer, J., et al. (2023). A watermark for large language models. ICML 2023.

Rajbhandari, S., et al. (2020). ZeRO: Memory optimizations toward training trillion parameter models. SC 2020.

더 알아보기

유료 요금제 보기