Skip to content
Published on

AI/ML 논문 읽기에 필요한 수학 + LaTeX/KaTeX 총정리

Authors
  • Name
    Twitter

들어가며

AI/ML 논문을 처음 펼치면 가장 먼저 벽처럼 느껴지는 것이 수식이다. 코드를 읽고 쓸 줄 아는 개발자라면 논문의 알고리즘 자체는 이해할 수 있는 경우가 많지만, 수식 표기법을 모르면 첫 페이지부터 막힌다.

이 글은 **"논문을 읽기 위해 최소한으로 필요한 수학"**과 **"그 수학을 표현하는 LaTeX/KaTeX 문법"**을 한 번에 정리한다. 교과서를 처음부터 끝까지 공부하라는 것이 아니라, 실제 논문에서 반복적으로 등장하는 패턴을 빠르게 습득하는 것이 목표다.


1. 논문 수학 로드맵

1.1 선형대수 (Linear Algebra)

벡터와 행렬

논문에서 데이터는 거의 항상 벡터 또는 행렬로 표현된다.

  • 스칼라: xRx \in \mathbb{R} — 단일 실수값
  • 벡터: xRn\mathbf{x} \in \mathbb{R}^nnn차원 열벡터
  • 행렬: WRm×n\mathbf{W} \in \mathbb{R}^{m \times n}mmnn
% 벡터 (볼드체)
\mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}

% 행렬
\mathbf{W} = \begin{bmatrix}
  w_{11} & w_{12} & \cdots & w_{1n} \\
  w_{21} & w_{22} & \cdots & w_{2n} \\
  \vdots & \vdots & \ddots & \vdots \\
  w_{m1} & w_{m2} & \cdots & w_{mn}
\end{bmatrix}

핵심 연산:

y=Wx+b\mathbf{y} = \mathbf{W}\mathbf{x} + \mathbf{b}

이 한 줄이 신경망의 한 레이어다. W\mathbf{W}는 가중치, b\mathbf{b}는 편향.

내적 (Dot Product)

두 벡터의 유사도를 측정하는 가장 기본적인 연산이다.

ab=ab=i=1naibi\mathbf{a} \cdot \mathbf{b} = \mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i
\mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i

고유값 분해 (Eigendecomposition)

행렬 A\mathbf{A}에 대해 Av=λv\mathbf{A}\mathbf{v} = \lambda \mathbf{v}를 만족하는 λ\lambda(고유값)와 v\mathbf{v}(고유벡터)를 찾는 것이다. PCA, 스펙트럴 클러스터링 등에서 핵심적으로 등장한다.

특이값 분해 (SVD)

임의의 행렬 ARm×n\mathbf{A} \in \mathbb{R}^{m \times n}를 세 행렬의 곱으로 분해한다.

A=UΣV\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top
  • URm×m\mathbf{U} \in \mathbb{R}^{m \times m}: 좌특이벡터 (직교행렬)
  • ΣRm×n\boldsymbol{\Sigma} \in \mathbb{R}^{m \times n}: 특이값 대각행렬
  • VRn×n\mathbf{V} \in \mathbb{R}^{n \times n}: 우특이벡터 (직교행렬)

차원 축소, 추천 시스템, LoRA 등에서 빈번하게 등장한다.

\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top

노름 (Norm)

벡터의 "크기"를 측정한다.

노름수식의미논문에서의 용도
L1L_1x1=ixi\lVert \mathbf{x} \rVert_1 = \sum_i \lvert x_i \rvert절대값 합Lasso 정규화, 희소성
L2L_2x2=ixi2\lVert \mathbf{x} \rVert_2 = \sqrt{\sum_i x_i^2}유클리드 거리Ridge 정규화, weight decay
LL_\inftyx=maxixi\lVert \mathbf{x} \rVert_\infty = \max_i \lvert x_i \rvert최대 절대값adversarial attack bound
FrobeniusAF=i,jaij2\lVert \mathbf{A} \rVert_F = \sqrt{\sum_{i,j} a_{ij}^2}행렬 원소 제곱합의 루트행렬 근사 오차

1.2 미적분 (Calculus)

편미분 (Partial Derivative)

다변수 함수에서 하나의 변수에 대해서만 미분한다.

fxi\frac{\partial f}{\partial x_i}

신경망의 각 파라미터가 손실에 미치는 영향을 알려준다.

Gradient (기울기 벡터)

모든 편미분을 벡터로 모은 것이다.

θL=[Lθ1Lθ2Lθn]\nabla_{\boldsymbol{\theta}} \mathcal{L} = \begin{bmatrix} \frac{\partial \mathcal{L}}{\partial \theta_1} \\ \frac{\partial \mathcal{L}}{\partial \theta_2} \\ \vdots \\ \frac{\partial \mathcal{L}}{\partial \theta_n} \end{bmatrix}
\nabla_{\boldsymbol{\theta}} \mathcal{L} = \begin{bmatrix}
  \frac{\partial \mathcal{L}}{\partial \theta_1} \\
  \frac{\partial \mathcal{L}}{\partial \theta_2} \\
  \vdots \\
  \frac{\partial \mathcal{L}}{\partial \theta_n}
\end{bmatrix}

체인룰 (Chain Rule)

합성 함수의 미분법이며, **역전파(backpropagation)**의 수학적 기반이다.

Lx=Lyyx\frac{\partial \mathcal{L}}{\partial \mathbf{x}} = \frac{\partial \mathcal{L}}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial \mathbf{x}}

3층 네트워크 예시:

LW1=Ly^y^h2h2h1h1W1\frac{\partial \mathcal{L}}{\partial \mathbf{W}_1} = \frac{\partial \mathcal{L}}{\partial \hat{\mathbf{y}}} \cdot \frac{\partial \hat{\mathbf{y}}}{\partial \mathbf{h}_2} \cdot \frac{\partial \mathbf{h}_2}{\partial \mathbf{h}_1} \cdot \frac{\partial \mathbf{h}_1}{\partial \mathbf{W}_1}

Jacobian과 Hessian

  • Jacobian JRm×n\mathbf{J} \in \mathbb{R}^{m \times n}: 벡터 함수의 1차 미분 행렬. Jij=fixjJ_{ij} = \frac{\partial f_i}{\partial x_j}
  • Hessian HRn×n\mathbf{H} \in \mathbb{R}^{n \times n}: 스칼라 함수의 2차 미분 행렬. Hij=2fxixjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}

Hessian은 곡률 정보를 담고 있어 2차 최적화(Newton's method)에서 사용된다.

\mathbf{J} = \begin{bmatrix}
  \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\
  \vdots & \ddots & \vdots \\
  \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n}
\end{bmatrix}

1.3 확률·통계 (Probability & Statistics)

확률 분포

분포수식논문에서의 용도
베르누이P(x)=px(1p)1xP(x) = p^x (1-p)^{1-x}이진 분류
카테고리컬P(x=k)=πkP(x=k) = \pi_k다중 분류
가우시안N(xμ,σ2)=12πσ2exp ⁣((xμ)22σ2)\mathcal{N}(x \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)VAE 잠재 공간, 노이즈 모델링
다변량 가우시안N(xμ,Σ)\mathcal{N}(\mathbf{x} \mid \boldsymbol{\mu}, \boldsymbol{\Sigma})연속 잠재 변수

기대값과 분산

E[X]=xxP(x)(이산),E[X]=xp(x)dx(연속)\mathbb{E}[X] = \sum_x x \, P(x) \quad \text{(이산)}, \qquad \mathbb{E}[X] = \int x \, p(x) \, dx \quad \text{(연속)} Var(X)=E[(XE[X])2]=E[X2](E[X])2\text{Var}(X) = \mathbb{E}[(X - \mathbb{E}[X])^2] = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
\mathbb{E}[X] = \sum_x x \, P(x)
\text{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2

조건부 확률과 베이즈 정리

P(AB)=P(BA)P(A)P(B)P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)}
  • P(A)P(A): 사전 확률 (prior)
  • P(BA)P(B \mid A): 우도 (likelihood)
  • P(AB)P(A \mid B): 사후 확률 (posterior)
  • P(B)P(B): 증거 (evidence/marginal likelihood)

MLE와 MAP

Maximum Likelihood Estimation (MLE):

θ^MLE=argmaxθi=1Np(xiθ)=argmaxθi=1Nlogp(xiθ)\hat{\boldsymbol{\theta}}_{\text{MLE}} = \arg\max_{\boldsymbol{\theta}} \prod_{i=1}^{N} p(\mathbf{x}_i \mid \boldsymbol{\theta}) = \arg\max_{\boldsymbol{\theta}} \sum_{i=1}^{N} \log p(\mathbf{x}_i \mid \boldsymbol{\theta})

Maximum A Posteriori (MAP):

θ^MAP=argmaxθ[i=1Nlogp(xiθ)+logp(θ)]\hat{\boldsymbol{\theta}}_{\text{MAP}} = \arg\max_{\boldsymbol{\theta}} \left[ \sum_{i=1}^{N} \log p(\mathbf{x}_i \mid \boldsymbol{\theta}) + \log p(\boldsymbol{\theta}) \right]

MAP는 MLE에 사전 분포(prior) p(θ)p(\boldsymbol{\theta})를 추가한 것이다. L2 정규화는 가우시안 사전 분포를 가정한 MAP와 동치다.


1.4 최적화 (Optimization)

경사 하강법 (Gradient Descent)

θt+1=θtηθL(θt)\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta \nabla_{\boldsymbol{\theta}} \mathcal{L}(\boldsymbol{\theta}_t)

η\eta는 학습률(learning rate)이다. 미니배치를 사용하면 SGD가 된다.

Adam Optimizer

가장 널리 쓰이는 옵티마이저다. 1차 모멘트(평균)와 2차 모멘트(분산)의 이동 평균을 사용한다.

mt=β1mt1+(1β1)gtvt=β2vt1+(1β2)gt2m^t=mt1β1t,v^t=vt1β2tθt+1=θtηv^t+ϵm^t\begin{aligned} m_t &= \beta_1 m_{t-1} + (1-\beta_1) g_t \\ v_t &= \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \\ \hat{m}_t &= \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t} \\ \boldsymbol{\theta}_{t+1} &= \boldsymbol{\theta}_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t \end{aligned}
\begin{aligned}
m_t &= \beta_1 m_{t-1} + (1-\beta_1) g_t \\
v_t &= \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \\
\hat{m}_t &= \frac{m_t}{1-\beta_1^t}, \quad
\hat{v}_t &= \frac{v_t}{1-\beta_2^t} \\
\theta_{t+1} &= \theta_t
  - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t
\end{aligned}

정규화 (Regularization)

과적합 방지를 위해 손실 함수에 벌칙 항을 추가한다.

Lreg=Ldata+λθ22\mathcal{L}_{\text{reg}} = \mathcal{L}_{\text{data}} + \lambda \lVert \boldsymbol{\theta} \rVert_2^2
  • λ\lambda: 정규화 강도 (하이퍼파라미터)
  • L1 정규화(θ1\lVert \boldsymbol{\theta} \rVert_1): 희소성 유도 → feature selection
  • L2 정규화(θ22\lVert \boldsymbol{\theta} \rVert_2^2): weight decay → 매개변수 크기 제한

Convex vs Non-Convex

  • 볼록(convex): 전역 최솟값 = 지역 최솟값. 로지스틱 회귀, SVM 등.
  • 비볼록(non-convex): 지역 최솟값이 여러 개. 딥러닝의 손실 함수가 대부분 여기에 해당.

논문에서 "non-convex optimization"이라고 하면, 전역 최적점 보장이 없다는 뜻이다.


2. 논문에서 자주 나오는 수식 패턴

2.1 Softmax와 Cross-Entropy

Softmax: 로짓 벡터를 확률 분포로 변환한다.

softmax(zi)=ezij=1Kezj\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}

Cross-Entropy Loss: 분류 문제의 표준 손실 함수다.

LCE=i=1Kyilog(y^i)\mathcal{L}_{\text{CE}} = -\sum_{i=1}^{K} y_i \log(\hat{y}_i)

여기서 yiy_i는 one-hot 정답, y^i\hat{y}_i는 softmax 출력이다.

\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}

\mathcal{L}_{\text{CE}} = -\sum_{i=1}^{K} y_i \log(\hat{y}_i)

2.2 Attention Score와 Scaled Dot-Product

Transformer의 핵심인 Scaled Dot-Product Attention:

Attention(Q,K,V)=softmax ⁣(QKdk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V}
  • QRn×dk\mathbf{Q} \in \mathbb{R}^{n \times d_k}: Query 행렬
  • KRm×dk\mathbf{K} \in \mathbb{R}^{m \times d_k}: Key 행렬
  • VRm×dv\mathbf{V} \in \mathbb{R}^{m \times d_v}: Value 행렬
  • dk\sqrt{d_k}: 스케일링 팩터 (내적 값이 커지는 것을 방지)

Multi-Head Attention:

MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\mathbf{W}^O where headi=Attention(QWiQ,KWiK,VWiV)\text{where } \text{head}_i = \text{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V)
\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V})
  = \text{softmax}\!\left(
    \frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}
  \right)\mathbf{V}

2.3 KL Divergence와 ELBO

KL Divergence: 두 확률 분포 사이의 "거리"(비대칭)를 측정한다.

DKL(qp)=xq(x)logq(x)p(x)=Eq ⁣[logq(x)p(x)]D_{\text{KL}}(q \,\|\, p) = \sum_x q(x) \log \frac{q(x)}{p(x)} = \mathbb{E}_{q}\!\left[\log \frac{q(x)}{p(x)}\right]

성질:

  • DKL0D_{\text{KL}} \geq 0 (항상 0 이상)
  • DKL(qp)DKL(pq)D_{\text{KL}}(q \| p) \neq D_{\text{KL}}(p \| q) (비대칭)

ELBO (Evidence Lower Bound): VAE의 핵심 목적함수다.

logp(x)Eq(zx)[logp(xz)]reconstructionDKL(q(zx)p(z))regularization=ELBO\log p(\mathbf{x}) \geq \underbrace{\mathbb{E}_{q(\mathbf{z}|\mathbf{x})}[\log p(\mathbf{x}|\mathbf{z})]}_{\text{reconstruction}} - \underbrace{D_{\text{KL}}(q(\mathbf{z}|\mathbf{x}) \,\|\, p(\mathbf{z}))}_{\text{regularization}} = \text{ELBO}
  • 첫째 항: reconstruction loss — 디코더가 입력을 얼마나 잘 복원하는지
  • 둘째 항: KL 항 — 인코더의 사후 분포가 사전 분포와 얼마나 가까운지
\log p(\mathbf{x}) \geq
  \underbrace{\mathbb{E}_{q(\mathbf{z}|\mathbf{x})}
  [\log p(\mathbf{x}|\mathbf{z})]}_{\text{reconstruction}}
  - \underbrace{D_{\text{KL}}(q(\mathbf{z}|\mathbf{x})
  \,\|\, p(\mathbf{z}))}_{\text{regularization}}

2.4 Normalization과 Loss 표기

Layer Normalization:

LayerNorm(x)=xμσ2+ϵγ+β\text{LayerNorm}(\mathbf{x}) = \frac{\mathbf{x} - \mu}{\sqrt{\sigma^2 + \epsilon}} \odot \boldsymbol{\gamma} + \boldsymbol{\beta}

여기서 μ=1di=1dxi\mu = \frac{1}{d}\sum_{i=1}^d x_i, σ2=1di=1d(xiμ)2\sigma^2 = \frac{1}{d}\sum_{i=1}^d (x_i - \mu)^2이고, γ\boldsymbol{\gamma}β\boldsymbol{\beta}는 학습 가능한 파라미터, \odot는 원소별 곱(element-wise multiplication)이다.

Batch Normalization:

x^i=xiμBσB2+ϵ\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}

μB\mu_BσB2\sigma_B^2는 미니배치 단위로 계산된다.

RMSNorm (LLaMA 등에서 사용):

RMSNorm(x)=xRMS(x)γ,RMS(x)=1di=1dxi2\text{RMSNorm}(\mathbf{x}) = \frac{\mathbf{x}}{\text{RMS}(\mathbf{x})} \odot \boldsymbol{\gamma}, \quad \text{RMS}(\mathbf{x}) = \sqrt{\frac{1}{d}\sum_{i=1}^d x_i^2}

Loss 표기 관례:

  • L\mathcal{L} 또는 LL: 손실 함수 전체
  • LCE\mathcal{L}_{\text{CE}}, LMSE\mathcal{L}_{\text{MSE}}: 특정 손실의 하첨자 표기
  • ()\ell(\cdot): 샘플 단위 손실 (소문자)
  • J(θ)J(\boldsymbol{\theta}): 목적 함수 (= 손실 + 정규화)

3. LaTeX 읽기/작성 핵심

3.1 기본 수식 문법

분수, 합, 적분

% 분수
\frac{a}{b}            % → a/b
\dfrac{a}{b}           % → 큰 분수 (display style)

% 합
\sum_{i=1}^{N} x_i     % → Σ from i=1 to N
\prod_{j=1}^{M} p_j    % → Π from j=1 to M

% 적분
\int_{a}^{b} f(x)\,dx           % → 정적분
\iint_D f(x,y)\,dx\,dy          % → 이중적분
\oint_C \mathbf{F}\cdot d\mathbf{r}  % → 선적분

렌더링 결과:

ab,i=1Nxi,abf(x)dx\frac{a}{b}, \quad \sum_{i=1}^{N} x_i, \quad \int_{a}^{b} f(x)\,dx

첨자와 위첨자

x_i           % 아래 첨자
x^2           % 위 첨자 (제곱)
x_i^{(j)}    % 복합: i번째 원소의 j번째 반복
\hat{y}       % y-hat (예측값)
\bar{x}       % x-bar (평균)
\tilde{x}     % x-tilde (변환값)
\dot{x}       % 시간 미분
\mathbf{W}    % 볼드 (행렬/벡터)
\mathcal{L}   % 캘리그래피 (손실함수)
\mathbb{R}    % 블랙보드 볼드 (수 체계)

논문에서 매우 자주 보는 패턴들:

y^,xˉ,x~,x˙,W,L,Rn\hat{y}, \quad \bar{x}, \quad \tilde{x}, \quad \dot{x}, \quad \mathbf{W}, \quad \mathcal{L}, \quad \mathbb{R}^n

행렬

% 소괄호 행렬
\begin{pmatrix} a & b \\ c & d \end{pmatrix}

% 대괄호 행렬
\begin{bmatrix} a & b \\ c & d \end{bmatrix}

% 행렬식
\begin{vmatrix} a & b \\ c & d \end{vmatrix}
(abcd),[abcd],abcd\begin{pmatrix} a & b \\ c & d \end{pmatrix}, \quad \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix}

3.2 정렬 환경

aligned (여러 줄 수식 정렬)

$$
\begin{aligned}
  f(x) &= ax^2 + bx + c \\
       &= a(x - h)^2 + k \\
       &= a(x - r_1)(x - r_2)
\end{aligned}
$$
f(x)=ax2+bx+c=a(xh)2+k=a(xr1)(xr2)\begin{aligned} f(x) &= ax^2 + bx + c \\ &= a(x - h)^2 + k \\ &= a(x - r_1)(x - r_2) \end{aligned}

& 기호로 정렬 기준점을 맞추고, \\로 줄을 바꾼다.

cases (조건 분기)

$$
f(x) = \begin{cases}
  1 & \text{if } x > 0 \\
  0 & \text{if } x = 0 \\
  -1 & \text{if } x < 0
\end{cases}
$$
f(x)={1if x>00if x=01if x<0f(x) = \begin{cases} 1 & \text{if } x > 0 \\ 0 & \text{if } x = 0 \\ -1 & \text{if } x < 0 \end{cases}

ReLU 같은 활성화 함수 정의에서 자주 보인다:

ReLU(x)=max(0,x)={xif x>00otherwise\text{ReLU}(x) = \max(0, x) = \begin{cases} x & \text{if } x > 0 \\ 0 & \text{otherwise} \end{cases}

3.3 논문에서 자주 보이는 매크로 읽는 법

논문 PDF에서 직접 LaTeX 소스를 볼 일은 드물지만, arXiv 소스를 받거나 블로그를 작성할 때 자주 등장하는 매크로들이 있다.

% 흔한 사용자 정의 매크로
\newcommand{\E}{\mathbb{E}}           % 기대값
\newcommand{\R}{\mathbb{R}}           % 실수 집합
\newcommand{\KL}{D_{\text{KL}}}       % KL Divergence
\newcommand{\norm}[1]{\lVert #1 \rVert}  % 노름
\newcommand{\inner}[2]{\langle #1, #2 \rangle}  % 내적

% 사용 예
\E_{x \sim p}[f(x)]     % → 𝔼_{x~p}[f(x)]
\norm{\mathbf{x}}_2     % → ‖x‖₂
\inner{\mathbf{a}}{\mathbf{b}}  % → ⟨a, b⟩

: arXiv 논문의 소스를 보려면 URL에서 abse-prints로 바꾸거나 "Download source"를 클릭하면 .tex 파일을 받을 수 있다. \newcommand 정의를 먼저 확인하면 본문 수식 해독이 훨씬 쉬워진다.


4. KaTeX 실전

4.1 MDX 블로그에서 KaTeX 렌더링하기

이 블로그처럼 Next.js + Contentlayer + MDX 스택에서 KaTeX를 사용하려면 두 가지 플러그인이 필요하다.

npm install remark-math rehype-katex

Contentlayer 설정 예시:

// contentlayer.config.ts
import remarkMath from 'remark-math'
import rehypeKatex from 'rehype-katex'

export default makeSource({
  mdx: {
    remarkPlugins: [remarkMath],
    rehypePlugins: [rehypeKatex],
  },
})

그리고 레이아웃에 KaTeX CSS를 추가한다:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css" />

4.2 Inline vs Block 수식 사용 기준

Inline 수식 ($...$): 문장 안에 자연스럽게 녹여 쓸 때.

손실 함수 $\mathcal{L}$을 $\boldsymbol{\theta}$에 대해 미분하면...

→ 손실 함수 L\mathcal{L}θ\boldsymbol{\theta}에 대해 미분하면...

Block 수식 ($$...$$): 독립된 수식을 강조할 때.

$$
\nabla_{\boldsymbol{\theta}} \mathcal{L} = \frac{1}{N} \sum_{i=1}^{N} \nabla_{\boldsymbol{\theta}} \ell(f(\mathbf{x}_i; \boldsymbol{\theta}), y_i)
$$
θL=1Ni=1Nθ(f(xi;θ),yi)\nabla_{\boldsymbol{\theta}} \mathcal{L} = \frac{1}{N} \sum_{i=1}^{N} \nabla_{\boldsymbol{\theta}} \ell(f(\mathbf{x}_i; \boldsymbol{\theta}), y_i)

판단 기준:

  • 기호 1~2개 → inline
  • 분수, 합, 행렬 등 높이가 큰 수식 → block
  • 설명의 핵심 공식 → block
  • 참조용 변수 언급 → inline

4.3 흔한 렌더링 에러와 해결법

1) \text{} 안에서 특수문자 에러

% 에러
\text{cross-entropy}    % 하이픈이 마이너스로 해석될 수 있음

% 해결
\text{cross\text{-}entropy}
% 또는 그냥 하이픈 없이
\text{cross entropy}

2) \\ 줄바꿈이 동작하지 않음

KaTeX에서 \\aligned, cases, bmatrix 등 환경 내부에서만 동작한다. 일반 블록 수식에서 줄을 바꾸려면 별도 $$ 블록을 쓰거나 aligned로 감싼다.

% 에러: 블록 수식에서 직접 줄바꿈
$$
a = b \\
c = d
$$

% 해결: aligned 사용
$$
\begin{aligned}
a &= b \\
c &= d
\end{aligned}
$$

3) \boldsymbol vs \mathbf

  • \mathbf{x}: 로마체 볼드. 라틴 알파벳만 지원.
  • \boldsymbol{\theta}: 이탤릭 볼드. 그리스 문자에도 사용 가능.
\mathbf{W}              % 행렬 W (로마체 볼드) ✅
\mathbf{\theta}         % ❌ 그리스 문자에는 비추천
\boldsymbol{\theta}     % ✅ 그리스 문자 볼드

4) $$ 블록 앞뒤 빈 줄 필수

MDX에서 $$ 블록 수식이 렌더링되지 않는 가장 흔한 원인이다.

<!-- 에러: 빈 줄 없음 -->

이것은 수식이다:

$$
x = y
$$

다음 문장.

<!-- 해결: 앞뒤 빈 줄 추가 -->

이것은 수식이다:

$$
x = y
$$

다음 문장.

5) KaTeX 미지원 명령어

KaTeX는 LaTeX의 부분 집합만 지원한다. 자주 겪는 미지원 명령:

LaTeX 명령KaTeX 상태대안
\DeclareMathOperator미지원\operatorname{name}
\newcommand미지원수식에 직접 작성
\eqref미지원수동 번호 매기기
\substack지원-
\xleftarrow지원-

5. 실전 학습법

5.1 논문 1편 읽을 때 체크리스트

  1. Abstract → 목적 파악: 이 논문이 해결하려는 문제가 무엇인지 한 문장으로 정리
  2. 그림/표 먼저 훑기: Figure 1은 대부분 전체 아키텍처 요약
  3. 기호 표(Notation) 찾기: 보통 2~3페이지에 정리되어 있음
  4. 핵심 수식 식별: 보통 3~5개. 번호가 매겨진 수식 위주로 읽기
  5. 수식 자연어 번역: 각 수식을 "입력 → 연산 → 출력" 흐름으로 풀어 쓰기
  6. 실험 결과 확인: 표/그래프에서 baseline 대비 개선폭 확인
  7. Ablation study 해석: 어떤 컴포넌트가 성능에 기여하는지 파악
  8. 코드 확인: 공개된 GitHub 구현과 수식 대조

5.2 수식이 막힐 때 역추적 방법

기호 사전 만들기

논문을 읽을 때 모르는 기호가 나오면, 노트에 즉시 기록한다.

## 기호 사전 (Paper: Attention Is All You Need)

| 기호                                 | 의미                    | 차원                                       | 비고                   |
| ------------------------------------ | ----------------------- | ------------------------------------------ | ---------------------- |
| $d_{\text{model}}$                   | 모델 히든 차원          | 스칼라                                     | 512                    |
| $d_k$                                | Key/Query 차원          | 스칼라                                     | $d_{\text{model}} / h$ |
| $d_v$                                | Value 차원              | 스칼라                                     | $d_{\text{model}} / h$ |
| $h$                                  | 헤드 수                 | 스칼라                                     | 8                      |
| $\mathbf{Q}, \mathbf{K}, \mathbf{V}$ | Query, Key, Value       | 행렬                                       |                        |
| $\mathbf{W}^Q_i$                     | i번째 헤드의 Query 투영 | $\mathbb{R}^{d_{\text{model}} \times d_k}$ |                        |

역추적 3단계:

  1. 기호를 정의한 곳 찾기: 수식 위/아래 텍스트에서 "where"나 "여기서" 검색
  2. 차원 역추적: 행렬 곱이 성립하려면 내부 차원이 일치해야 한다. 이를 이용해 모르는 기호의 차원을 유추
  3. 코드 대조: attention_scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k) 같은 코드에서 수식의 의미를 확인

5.3 예제: Scaled Dot-Product Attention 단계별 풀이

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

Step 1: 입력 확인

  • QRn×dk\mathbf{Q} \in \mathbb{R}^{n \times d_k}: nn개 쿼리, 각각 dkd_k차원
  • KRm×dk\mathbf{K} \in \mathbb{R}^{m \times d_k}: mm개 키, 각각 dkd_k차원
  • VRm×dv\mathbf{V} \in \mathbb{R}^{m \times d_v}: mm개 값, 각각 dvd_v차원

Step 2: QK\mathbf{Q}\mathbf{K}^\top 계산

QKRn×m\mathbf{Q}\mathbf{K}^\top \in \mathbb{R}^{n \times m}

(i,j)(i, j) 원소는 ii번째 쿼리와 jj번째 키의 내적 → 유사도 점수

Step 3: dk\sqrt{d_k}로 나누기

내적 값은 dkd_k가 클수록 절대값이 커진다. 이를 dk\sqrt{d_k}로 나눠서 softmax가 포화되는 것을 방지한다. 이것이 "scaled"의 의미다.

QKdkRn×m\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}} \in \mathbb{R}^{n \times m}

Step 4: softmax 적용

각 행(쿼리)에 대해 softmax를 적용하여 어텐션 가중치(확률 분포)를 만든다.

αij=exp(sij)l=1mexp(sil),where sij=(QK)ijdk\alpha_{ij} = \frac{\exp(s_{ij})}{\sum_{l=1}^m \exp(s_{il})}, \quad \text{where } s_{ij} = \frac{(\mathbf{Q}\mathbf{K}^\top)_{ij}}{\sqrt{d_k}}

Step 5: Value에 가중합

어텐션 가중치로 Value 벡터들을 가중 합산한다.

outputi=j=1mαijvj\text{output}_i = \sum_{j=1}^{m} \alpha_{ij} \mathbf{v}_j

결과: outputRn×dv\text{output} \in \mathbb{R}^{n \times d_v}

한 줄 요약: "각 쿼리가 모든 키와의 유사도를 구하고, 그 유사도를 가중치로 사용하여 값들의 가중 평균을 출력한다."

PyTorch 대응 코드:

import torch
import torch.nn.functional as F
import math

def scaled_dot_product_attention(Q, K, V):
    d_k = Q.size(-1)
    scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)
    attn_weights = F.softmax(scores, dim=-1)
    output = torch.matmul(attn_weights, V)
    return output, attn_weights

6. 부록

6.1 기호 치트시트

기호LaTeX읽는 법의미
\nabla\nabla나블라 / 그래디언트벡터 미분 연산자
\partial\partial편미분편미분 기호
\sum\sum시그마 / 합합산
\prod\prod파이 곱 / 곱곱셈
\int\int인테그럴 / 적분적분
\lVert \cdot \rVert\lVert \cdot \rVert노름벡터/행렬의 크기
\lvert \cdot \rvert\lvert \cdot \rvert절대값스칼라 절대값 또는 집합 크기
E\mathbb{E}\mathbb{E}기대값확률 변수의 평균
Var\text{Var}\text{Var}분산확률 변수의 분산
argmax\arg\max\arg\max아그맥스최대값을 주는 인자
argmin\arg\min\arg\min아그민최소값을 주는 인자
\propto\propto비례~에 비례한다
\sim\sim틸다 / ~를 따른다xpx \sim p: xx가 분포 pp를 따름
\in\in속한다원소 관계
\subset\subset부분집합부분집합 관계
\forall\forall모든전칭 기호
\exists\exists존재한다존재 기호
\infty\infty무한무한대
\approx\approx약 같다근사적으로 같다
\triangleq\triangleq정의한다~로 정의한다 (definition)
\odot\odot아다마르 곱원소별 곱셈
\otimes\otimes크로네커 곱 / 텐서 곱텐서 곱셈
\oplus\oplus직합직접 합
,\langle \cdot, \cdot \rangle\langle \cdot, \cdot \rangle내적내적 (inner product)
O\mathcal{O}\mathcal{O}빅오시간/공간 복잡도
θ,θ\theta, \boldsymbol{\theta}\theta, \boldsymbol{\theta}세타모델 파라미터
η\eta\eta에타학습률
λ\lambda\lambda람다정규화 계수, 고유값
ϵ\epsilon\epsilon엡실론아주 작은 값, 노이즈
σ\sigma\sigma시그마표준편차, sigmoid 함수
ϕ,φ\phi, \varphi\phi, \varphi파이모델 파라미터 (보조)
ψ\psi\psi프사이파라미터, 함수
α,β,γ\alpha, \beta, \gamma\alpha, \beta, \gamma알파, 베타, 감마하이퍼파라미터
μ\mu\mu평균
Rn\mathbb{R}^n\mathbb{R}^n실수 n차원n차원 실수 공간
Z\mathbb{Z}\mathbb{Z}정수정수 집합
\top\top전치행렬 전치 (transpose)

6.2 추천 참고자료

교과서

  1. Mathematics for Machine Learning (Deisenroth et al.) — 무료 PDF 제공. ML에 필요한 수학만 집중 정리
  2. Deep Learning (Goodfellow, Bengio, Courville) — Part I이 수학 기초. deeplearningbook.org에서 무료 열람
  3. Pattern Recognition and Machine Learning (Bishop) — 확률 그래프 모델까지 포괄. 베이지안 관점의 교과서
  4. Linear Algebra Done Right (Axler) — 선형대수 이론 중심. 증명 기반으로 깊이 있는 이해에 적합

온라인 강의

  1. 3Blue1Brown — Essence of Linear Algebra (YouTube) — 시각화 중심의 선형대수 직관 시리즈
  2. 3Blue1Brown — Essence of Calculus (YouTube) — 미적분 핵심 개념의 시각적 이해
  3. Stanford CS229 — Machine Learning — Andrew Ng의 ML 강의. 수학적 기반이 탄탄
  4. MIT 18.06 — Linear Algebra (Gilbert Strang) — 공학 관점의 선형대수 명강의

도구 및 레퍼런스

  1. KaTeX 공식 문서 (katex.org) — 지원 함수/기호 전체 목록
  2. Detexify (detexify.kirelabs.org) — 손으로 기호를 그리면 LaTeX 명령어를 찾아주는 도구
  3. Mathpix Snip — 수식 이미지를 촬영하면 LaTeX 코드로 변환해주는 OCR 도구
  4. Overleaf (overleaf.com) — 온라인 LaTeX 에디터. 실시간 프리뷰 가능
  5. arXiv Vanity — arXiv 논문을 웹 페이지로 변환하여 수식을 편하게 읽을 수 있음
  6. Papers with Code (paperswithcode.com) — 논문과 구현 코드를 함께 확인. 수식과 코드 대조에 최적

마무리

논문의 수식은 결국 **"데이터가 어떻게 변환되는지"**를 압축해서 표현한 것이다. 처음에는 기호 하나하나가 낯설겠지만, 위에서 정리한 패턴들이 전체 논문 수식의 80% 이상을 커버한다.

가장 효과적인 학습 순서는:

  1. 이 글의 기호 치트시트를 옆에 두고
  2. 관심 있는 논문 1편을 골라
  3. 핵심 수식 3~5개만 자연어로 풀어 쓰고
  4. 대응하는 코드(PyTorch/JAX)와 대조하는 것이다

수식을 코드로, 코드를 수식으로 양방향 번역할 수 있게 되면, 논문 읽기 속도가 비약적으로 빨라진다.