공식 모음

연구 코드를 짜거나 논문을 읽다 보면 같은 공식을 몇 번이고 다시 찾게 된다. 이차형식의 gradient, 가우시안의 조건부분포, 두 가우시안 사이의 KL, Adam의 갱신식, 명시적 스킴의 안정 조건 같은 것들이다. 이 부록은 본문 장들에 흩어진 핵심 공식을 분야별로 모으고, 각 공식에 그것을 유도하거나 처음 쓰는 장을 링크한다.

공식은 가정과 함께 써야 맞다. 표에는 공식이 성립하는 조건을 짧게 붙였지만, 유도와 예외는 링크한 장에 있다. 기호는 부록 A. 표기법을 따른다. 벡터는 열벡터, gradient는 열벡터, Jacobian은 (출력 차원 × 입력 차원)이고, log⁡\log는 자연로그다.

학습 목표

  • 자주 쓰는 공식을 이 책의 표기 규약에 맞는 형태로 찾아 쓴다
  • 공식을 옮겨 올 때 layout·parameterization·로그 밑 같은 규약의 차이를 확인한다
  • 공식을 유도한 장으로 돌아가 가정과 적용 조건을 확인한다

선형대수

이름 공식 조건·메모 장
내적과 노름 ⟨x,y⟩=x⊤y\langle \mathbf{x}, \mathbf{y} \rangle = \mathbf{x}^\top\mathbf{y}, ∥x∥2=x⊤x\lVert \mathbf{x} \rVert_2 = \sqrt{\mathbf{x}^\top\mathbf{x}} 7.4
정규직교 기저의 좌표 v=∑iciqi\mathbf{v} = \sum_i c_i \mathbf{q}_i, ci=⟨qi,v⟩c_i = \langle \mathbf{q}_i, \mathbf{v} \rangle qi\mathbf{q}_i가 정규직교 7.4
직선 위로의 사영 p=aa⊤a⊤a b\mathbf{p} = \dfrac{\mathbf{a}\mathbf{a}^\top}{\mathbf{a}^\top\mathbf{a}}\,\mathbf{b} 7.4
최소제곱(정규방정식) A⊤Ax^=A⊤b\mathbf{A}^\top\mathbf{A}\hat{\mathbf{x}} = \mathbf{A}^\top\mathbf{b} 잔차 b−Ax^\mathbf{b} - \mathbf{A}\hat{\mathbf{x}}가 열공간과 직교. 계산은 QR·SVD로 7.4
직교행렬 Q⊤Q=I\mathbf{Q}^\top\mathbf{Q} = \mathbf{I}, ⟨Qu,Qv⟩=⟨u,v⟩\langle \mathbf{Q}\mathbf{u}, \mathbf{Q}\mathbf{v} \rangle = \langle \mathbf{u}, \mathbf{v} \rangle 길이·각도 보존 7.4
대칭행렬의 스펙트럼 분해 A=QΛQ⊤\mathbf{A} = \mathbf{Q}\boldsymbol{\Lambda}\mathbf{Q}^\top A⊤=A\mathbf{A}^\top = \mathbf{A}이면 고윳값 실수, Q\mathbf{Q} 직교 7.5
trace·det와 고윳값 tr⁡(A)=∑iλi\operatorname{tr}(\mathbf{A}) = \sum_i \lambda_i, det⁡(A)=∏iλi\det(\mathbf{A}) = \prod_i \lambda_i 정사각행렬 7.5
SVD A=UΣV⊤=∑i=1rσiuivi⊤\mathbf{A} = \mathbf{U}\boldsymbol{\Sigma}\mathbf{V}^\top = \sum_{i=1}^r \sigma_i \mathbf{u}_i\mathbf{v}_i^\top Avi=σiui\mathbf{A}\mathbf{v}_i = \sigma_i\mathbf{u}_i, r=rank⁡(A)r = \operatorname{rank}(\mathbf{A}) 7.6
pseudoinverse A+=VΣ+U⊤\mathbf{A}^{+} = \mathbf{V}\boldsymbol{\Sigma}^{+}\mathbf{U}^\top Σ+\boldsymbol{\Sigma}^{+}는 0 아닌 특잇값만 역수 7.6
최적 저랭크 근사 (Eckart–Young) min⁡rank⁡(B)≤k∥A−B∥F=σk+12+⋯+σr2\min_{\operatorname{rank}(\mathbf{B}) \le k} \lVert \mathbf{A} - \mathbf{B} \rVert_F = \sqrt{\sigma_{k+1}^2 + \cdots + \sigma_r^2} 절단 SVD Ak\mathbf{A}_k가 최적 7.6
설명 분산 비율 ∑i≤kσi2/∑iσi2\sum_{i \le k} \sigma_i^2 \big/ \sum_i \sigma_i^2 ∥A∥F2=∑iσi2\lVert \mathbf{A} \rVert_F^2 = \sum_i \sigma_i^2 7.6
PCA와 SVD C=Xc⊤XcN−1=VΣ2N−1V⊤\mathbf{C} = \dfrac{\mathbf{X}_c^\top\mathbf{X}_c}{N - 1} = \mathbf{V}\dfrac{\boldsymbol{\Sigma}^2}{N - 1}\mathbf{V}^\top Xc\mathbf{X}_c는 열 평균을 뺀 (N×D)(N \times D) 데이터 7.6
trace의 성질 tr⁡(ABC)=tr⁡(CAB)\operatorname{tr}(\mathbf{A}\mathbf{B}\mathbf{C}) = \operatorname{tr}(\mathbf{C}\mathbf{A}\mathbf{B}), tr⁡(A⊤B)=∑ijAijBij\operatorname{tr}(\mathbf{A}^\top\mathbf{B}) = \sum_{ij} A_{ij}B_{ij} shape이 맞을 때 순환 가능 8.2
Woodbury 항등식 (A+UCV)−1=A−1−A−1U(C−1+VA−1U)−1VA−1(\mathbf{A} + \mathbf{U}\mathbf{C}\mathbf{V})^{-1} = \mathbf{A}^{-1} - \mathbf{A}^{-1}\mathbf{U}(\mathbf{C}^{-1} + \mathbf{V}\mathbf{A}^{-1}\mathbf{U})^{-1}\mathbf{V}\mathbf{A}^{-1} 저랭크 갱신의 역. 공분산 형태 ↔ 정밀도 형태 변환에 쓴다 11.4

미분과 행렬 미분

이 책은 Jacobian을 numerator layout(출력 차원 × 입력 차원)으로 쓰고, 스칼라 LL을 행렬 W\mathbf{W}로 미분한 gradient는 W\mathbf{W}와 같은 shape으로 쓴다(부록 A). 미분형 dL=tr⁡(G⊤dX)dL = \operatorname{tr}(\mathbf{G}^\top d\mathbf{X})로 정리되면 ∇XL=G\nabla_{\mathbf{X}} L = \mathbf{G}로 읽는다(8.2).

이름 공식 조건·메모 장
1차 근사 f(a+h)≈f(a)+Jf(a) hf(\mathbf{a} + \mathbf{h}) \approx f(\mathbf{a}) + \mathbf{J}_f(\mathbf{a})\,\mathbf{h} Jf∈Rm×n\mathbf{J}_f \in \mathbb{R}^{m \times n} 8.1
방향미분 Duf(a)=∇f(a)⊤uD_{\mathbf{u}} f(\mathbf{a}) = \nabla f(\mathbf{a})^\top \mathbf{u} ff가 미분 가능 8.1
2차 Taylor 근사 f(x+d)≈f(x)+∇f(x)⊤d+12d⊤∇2f(x) df(\mathbf{x} + \mathbf{d}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^\top\mathbf{d} + \tfrac{1}{2}\mathbf{d}^\top\nabla^2 f(\mathbf{x})\,\mathbf{d} Newton 방법의 모델 10.5
연쇄법칙 Jf∘g(x)=Jf(g(x)) Jg(x)\mathbf{J}_{f \circ g}(\mathbf{x}) = \mathbf{J}_f(g(\mathbf{x}))\,\mathbf{J}_g(\mathbf{x}) 역전파는 이것을 출력 쪽부터 v⊤J\mathbf{v}^\top\mathbf{J}로 계산 8.1, 8.4
미분형 규칙 d(XY)=(dX)Y+X dYd(\mathbf{X}\mathbf{Y}) = (d\mathbf{X})\mathbf{Y} + \mathbf{X}\,d\mathbf{Y}, d(X⊤)=(dX)⊤d(\mathbf{X}^\top) = (d\mathbf{X})^\top 곱의 순서를 지킨다 8.2
선형 함수 ∇x a⊤x=a\nabla_{\mathbf{x}}\, \mathbf{a}^\top\mathbf{x} = \mathbf{a} 8.2
이차형식 ∇x x⊤Ax=(A+A⊤)x\nabla_{\mathbf{x}}\, \mathbf{x}^\top\mathbf{A}\mathbf{x} = (\mathbf{A} + \mathbf{A}^\top)\mathbf{x} A\mathbf{A}가 대칭이면 2Ax2\mathbf{A}\mathbf{x} 8.2
최소제곱 ∇x ∥Ax−b∥2=2A⊤(Ax−b)\nabla_{\mathbf{x}}\, \lVert \mathbf{A}\mathbf{x} - \mathbf{b} \rVert^2 = 2\mathbf{A}^\top(\mathbf{A}\mathbf{x} - \mathbf{b}) 8.2
쌍선형형식 ∇X a⊤Xb=ab⊤\nabla_{\mathbf{X}}\, \mathbf{a}^\top\mathbf{X}\mathbf{b} = \mathbf{a}\mathbf{b}^\top 8.2
trace ∇Xtr⁡(AX)=A⊤\nabla_{\mathbf{X}} \operatorname{tr}(\mathbf{A}\mathbf{X}) = \mathbf{A}^\top, ∇Xtr⁡(X⊤AX)=(A+A⊤)X\nabla_{\mathbf{X}} \operatorname{tr}(\mathbf{X}^\top\mathbf{A}\mathbf{X}) = (\mathbf{A} + \mathbf{A}^\top)\mathbf{X} 8.2
역행렬 d(X−1)=−X−1(dX) X−1d(\mathbf{X}^{-1}) = -\mathbf{X}^{-1}(d\mathbf{X})\,\mathbf{X}^{-1} ∇Xtr⁡(AX−1)=−X−⊤A⊤X−⊤\nabla_{\mathbf{X}} \operatorname{tr}(\mathbf{A}\mathbf{X}^{-1}) = -\mathbf{X}^{-\top}\mathbf{A}^\top\mathbf{X}^{-\top} 8.2
log det (Jacobi 공식) dlog⁡det⁡X=tr⁡(X−1dX)d \log\det\mathbf{X} = \operatorname{tr}(\mathbf{X}^{-1}d\mathbf{X}), ∇Xlog⁡det⁡X=X−⊤\nabla_{\mathbf{X}} \log\det\mathbf{X} = \mathbf{X}^{-\top} det⁡X>0\det\mathbf{X} > 0 8.2
선형층의 가중치 gradient L=12∥Wx−y∥2⇒∇WL=rx⊤L = \tfrac{1}{2}\lVert \mathbf{W}\mathbf{x} - \mathbf{y} \rVert^2 \Rightarrow \nabla_{\mathbf{W}} L = \mathbf{r}\mathbf{x}^\top r=Wx−y\mathbf{r} = \mathbf{W}\mathbf{x} - \mathbf{y}. 출력 쪽 gradient와 입력의 외적 8.2
softmax cross-entropy ∇zL=p−y\nabla_{\mathbf{z}} L = \mathbf{p} - \mathbf{y} pk=ezk/∑jezjp_k = e^{z_k}/\sum_j e^{z_j}, L=−∑kyklog⁡pkL = -\sum_k y_k \log p_k, y\mathbf{y} one-hot 8.2
변수변환 ∫Xf(x) dx=∫Uf(g(u)) ∣det⁡Jg(u)∣ du\int_{\mathcal{X}} f(\mathbf{x})\,d\mathbf{x} = \int_{\mathcal{U}} f(g(\mathbf{u}))\,\lvert \det \mathbf{J}_g(\mathbf{u}) \rvert\,d\mathbf{u} gg가 가역이고 연속 미분 가능 8.3
밀도의 변수변환 pX(x)=pU(g−1(x)) ∣det⁡Jg−1(x)∣p_X(\mathbf{x}) = p_U(g^{-1}(\mathbf{x}))\,\lvert \det \mathbf{J}_{g^{-1}}(\mathbf{x}) \rvert normalizing flow의 바탕 8.3
가우시안 적분 ∫Re−x2/2 dx=2π\int_{\mathbb{R}} e^{-x^2/2}\,dx = \sqrt{2\pi}, ∫Rde−12x⊤Σ−1x dx=(2π)d/2det⁡(Σ)1/2\int_{\mathbb{R}^d} e^{-\frac{1}{2}\mathbf{x}^\top\boldsymbol{\Sigma}^{-1}\mathbf{x}}\,d\mathbf{x} = (2\pi)^{d/2}\det(\boldsymbol{\Sigma})^{1/2} Σ\boldsymbol{\Sigma} 양의 정부호 8.3

확률

이름 공식 조건·메모 장
주변화 p(x)=∑yp(x,y)p(x) = \sum_y p(x, y) (연속이면 ∫p(x,y) dy\int p(x, y)\,dy) 11.3
조건부분포·곱의 법칙 p(y∣x)=p(x,y)p(x)p(y \mid x) = \dfrac{p(x, y)}{p(x)}, p(x,y)=p(y∣x) p(x)p(x, y) = p(y \mid x)\,p(x) p(x)>0p(x) > 0 11.3
Bayes 정리 p(θ∣D)=p(D∣θ) p(θ)p(D)∝p(D∣θ) p(θ)p(\theta \mid \mathcal{D}) = \dfrac{p(\mathcal{D} \mid \theta)\,p(\theta)}{p(\mathcal{D})} \propto p(\mathcal{D} \mid \theta)\,p(\theta) 11.3
독립 X⊥Y  ⟺  p(x,y)=p(x) p(y)X \perp Y \iff p(x, y) = p(x)\,p(y) 모든 x,yx, y에 대해 11.3
기댓값의 선형성 E[aX+bY+c]=a E[X]+b E[Y]+c\mathbb{E}[aX + bY + c] = a\,\mathbb{E}[X] + b\,\mathbb{E}[Y] + c 독립이 아니어도 성립 11.5
분산 Var⁡[X]=E[X2]−(E[X])2\operatorname{Var}[X] = \mathbb{E}[X^2] - (\mathbb{E}[X])^2 11.5
합의 분산 Var⁡[aX+bY]=a2Var⁡[X]+b2Var⁡[Y]+2abCov⁡[X,Y]\operatorname{Var}[aX + bY] = a^2\operatorname{Var}[X] + b^2\operatorname{Var}[Y] + 2ab\operatorname{Cov}[X, Y] 독립이면 공분산 항이 0 11.5
반복 기댓값 E[E[Y∣X]]=E[Y]\mathbb{E}\big[\mathbb{E}[Y \mid X]\big] = \mathbb{E}[Y] 11.3
전체 분산의 법칙 Var⁡[Y]=E[Var⁡[Y∣X]]+Var⁡[E[Y∣X]]\operatorname{Var}[Y] = \mathbb{E}\big[\operatorname{Var}[Y \mid X]\big] + \operatorname{Var}\big[\mathbb{E}[Y \mid X]\big] 앙상블 불확실성 분해에 쓰인다 11.5
Markov 부등식 Pr⁡(X≥a)≤E[X]/a\Pr(X \ge a) \le \mathbb{E}[X]/a X≥0X \ge 0, a>0a > 0 11.5
Chebyshev 부등식 Pr⁡(∣X−μ∣≥kσ)≤1/k2\Pr(\lvert X - \mu \rvert \ge k\sigma) \le 1/k^2 분산이 유한 11.5
Hoeffding 부등식 Pr⁡(∣Xˉn−μ∣≥t)≤2exp⁡ ⁣(−2nt2/(b−a)2)\Pr(\lvert \bar{X}_n - \mu \rvert \ge t) \le 2\exp\!\big(-2nt^2/(b - a)^2\big) 독립, 각 Xi∈[a,b]X_i \in [a, b] 11.5
중심극한정리 n (Xˉn−μ)/σ→dN(0,1)\sqrt{n}\,(\bar{X}_n - \mu)/\sigma \xrightarrow{d} \mathcal{N}(0, 1) i.i.d., 분산 유한 11.5
Monte Carlo 추정 I^N=1N∑i=1Nf(xi)\hat{I}_N = \tfrac{1}{N}\sum_{i=1}^N f(x_i), SE(I^N)=σf/N\mathrm{SE}(\hat{I}_N) = \sigma_f/\sqrt{N} xi∼px_i \sim p 독립 11.6
역변환 표집 U∼Unif⁡(0,1)⇒F−1(U)∼FU \sim \operatorname{Unif}(0, 1) \Rightarrow F^{-1}(U) \sim F 11.6
중요도 표집 Ep[f(X)]=Eq[f(X) w(X)]\mathbb{E}_p[f(X)] = \mathbb{E}_q[f(X)\,w(X)], w(x)=p(x)/q(x)w(x) = p(x)/q(x) f(x)p(x)≠0f(x)p(x) \neq 0인 곳에서 q(x)>0q(x) > 0 11.6
자기정규화 중요도 표집 I^SN=∑iwif(xi)/∑iwi\hat{I}_{\mathrm{SN}} = \sum_i w_i f(x_i) \big/ \sum_i w_i 정규화 상수를 몰라도 된다. 편향 있음 11.6
유효 표본 크기 ESS=(∑iwi)2/∑iwi2\mathrm{ESS} = \big(\sum_i w_i\big)^2 \big/ \sum_i w_i^2 가중치가 고를수록 NN에 가깝다 11.6

가우시안 항등식

DD차원 가우시안 x∼N(μ,Σ)\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})의 밀도는

p(x)=1(2π)D/2 det⁡(Σ)1/2exp⁡ ⁣(−12(x−μ)⊤Σ−1(x−μ))p(\mathbf{x}) = \frac{1}{(2\pi)^{D/2}\,\det(\boldsymbol{\Sigma})^{1/2}} \exp\!\Big(-\frac{1}{2}(\mathbf{x} - \boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{x} - \boldsymbol{\mu})\Big)

이다(11.4). 벡터를 관측하지 않은 부분 xa\mathbf{x}_a와 관측한 부분 xb\mathbf{x}_b로 나누고 평균과 공분산을 같은 블록으로 나누면

xa∣xb∼N(μa+ΣabΣbb−1(xb−μb),  Σaa−ΣabΣbb−1Σba)\mathbf{x}_a \mid \mathbf{x}_b \sim \mathcal{N}\Big(\boldsymbol{\mu}_a + \boldsymbol{\Sigma}_{ab}\boldsymbol{\Sigma}_{bb}^{-1}(\mathbf{x}_b - \boldsymbol{\mu}_b),\ \ \boldsymbol{\Sigma}_{aa} - \boldsymbol{\Sigma}_{ab}\boldsymbol{\Sigma}_{bb}^{-1}\boldsymbol{\Sigma}_{ba}\Big)

이다. 조건부 평균은 관측값에 선형이고, 조건부 공분산은 관측값 xb\mathbf{x}_b에 의존하지 않는다.

이름 공식 조건·메모 장
Mahalanobis 거리 dM(x)2=(x−μ)⊤Σ−1(x−μ)d_M(\mathbf{x})^2 = (\mathbf{x} - \boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{x} - \boldsymbol{\mu}) 밀도의 등고면 11.4
선형변환 Ax+b∼N(Aμ+b, AΣA⊤)\mathbf{A}\mathbf{x} + \mathbf{b} \sim \mathcal{N}(\mathbf{A}\boldsymbol{\mu} + \mathbf{b},\ \mathbf{A}\boldsymbol{\Sigma}\mathbf{A}^\top) 11.4
표집 x=μ+Lz\mathbf{x} = \boldsymbol{\mu} + \mathbf{L}\mathbf{z}, z∼N(0,I)\mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) Σ=LL⊤\boldsymbol{\Sigma} = \mathbf{L}\mathbf{L}^\top (Cholesky) 11.4
주변분포 xa∼N(μa,Σaa)\mathbf{x}_a \sim \mathcal{N}(\boldsymbol{\mu}_a, \boldsymbol{\Sigma}_{aa}) 해당 블록만 읽는다 11.4
조건부분포(정밀도 형태) xa∣xb∼N(μa−Λaa−1Λab(xb−μb), Λaa−1)\mathbf{x}_a \mid \mathbf{x}_b \sim \mathcal{N}\big(\boldsymbol{\mu}_a - \boldsymbol{\Lambda}_{aa}^{-1}\boldsymbol{\Lambda}_{ab}(\mathbf{x}_b - \boldsymbol{\mu}_b),\ \boldsymbol{\Lambda}_{aa}^{-1}\big) Λ=Σ−1\boldsymbol{\Lambda} = \boldsymbol{\Sigma}^{-1} 11.4
조건부 독립과 정밀도 Λij=0  ⟺  xi⊥xj∣x∖ij\Lambda_{ij} = 0 \iff x_i \perp x_j \mid \mathbf{x}_{\setminus ij} Gaussian graphical model 11.4
선형 가우시안 모델의 사후분포 S=AP0A⊤+R\mathbf{S} = \mathbf{A}\mathbf{P}_0\mathbf{A}^\top + \mathbf{R}, K=P0A⊤S−1\mathbf{K} = \mathbf{P}_0\mathbf{A}^\top\mathbf{S}^{-1}, x∣y∼N(m0+K(y−Am0), P0−KAP0)\mathbf{x} \mid \mathbf{y} \sim \mathcal{N}\big(\mathbf{m}_0 + \mathbf{K}(\mathbf{y} - \mathbf{A}\mathbf{m}_0),\ \mathbf{P}_0 - \mathbf{K}\mathbf{A}\mathbf{P}_0\big) x∼N(m0,P0)\mathbf{x} \sim \mathcal{N}(\mathbf{m}_0, \mathbf{P}_0), y=Ax+ε\mathbf{y} = \mathbf{A}\mathbf{x} + \boldsymbol{\varepsilon}, ε∼N(0,R)\boldsymbol{\varepsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{R}). Kalman 갱신과 같다 11.4
같은 사후분포(정밀도 형태) P−1=P0−1+A⊤R−1A\mathbf{P}^{-1} = \mathbf{P}_0^{-1} + \mathbf{A}^\top\mathbf{R}^{-1}\mathbf{A}, m=P(P0−1m0+A⊤R−1y)\mathbf{m} = \mathbf{P}\big(\mathbf{P}_0^{-1}\mathbf{m}_0 + \mathbf{A}^\top\mathbf{R}^{-1}\mathbf{y}\big) Woodbury로 위 식과 오간다 11.4
관측의 주변분포 y∼N(Am0, AP0A⊤+R)\mathbf{y} \sim \mathcal{N}(\mathbf{A}\mathbf{m}_0,\ \mathbf{A}\mathbf{P}_0\mathbf{A}^\top + \mathbf{R}) evidence. 모델 비교에 쓴다 11.4

분포 표

이산 분포(11.2). scipy.stats 열은 집필 시점(SciPy 1.14) 예시이며, 쓰는 버전의 문서에서 인자 이름을 확인한다.

분포 값 PMF p(k)p(k) 평균 분산 scipy.stats
Bernoulli(π\pi) {0,1}\{0, 1\} πk(1−π)1−k\pi^k(1-\pi)^{1-k} π\pi π(1−π)\pi(1-\pi) bernoulli(pi)
binomial(n,πn, \pi) {0,…,n}\{0, \dots, n\} (nk)πk(1−π)n−k\binom{n}{k}\pi^k(1-\pi)^{n-k} nπn\pi nπ(1−π)n\pi(1-\pi) binom(n, pi)
categorical(π\boldsymbol{\pi}) {1,…,K}\{1, \dots, K\} πk\pi_k — — (multinomial(1, pi))
Poisson(λ\lambda) {0,1,2,… }\{0, 1, 2, \dots\} e−λλk/k!e^{-\lambda}\lambda^k/k! λ\lambda λ\lambda poisson(lam)
geometric(π\pi) {1,2,… }\{1, 2, \dots\} (1−π)k−1π(1-\pi)^{k-1}\pi 1/π1/\pi (1−π)/π2(1-\pi)/\pi^2 geom(pi)

연속 분포(11.2). 밀도는 정규화 상수를 생략했다. 지수분포와 gamma의 λ\lambda, β\beta는 rate이고, SciPy는 scale =1/rate= 1/\text{rate}를 받는다.

분포 값 밀도 p(x)p(x) (상수 생략) 평균 분산 scipy.stats
uniform(a,ba, b) [a,b][a, b] 11 (a+b)/2(a+b)/2 (b−a)2/12(b-a)^2/12 uniform(loc=a, scale=b-a)
Gaussian(μ,σ2\mu, \sigma^2) R\mathbb{R} e−(x−μ)2/(2σ2)e^{-(x-\mu)^2/(2\sigma^2)} μ\mu σ2\sigma^2 norm(mu, sigma)
exponential(λ\lambda) [0,∞)[0, \infty) e−λxe^{-\lambda x} 1/λ1/\lambda 1/λ21/\lambda^2 expon(scale=1/lam)
gamma(α,β\alpha, \beta) (0,∞)(0, \infty) xα−1e−βxx^{\alpha-1}e^{-\beta x} α/β\alpha/\beta α/β2\alpha/\beta^2 gamma(a=alpha, scale=1/beta)
beta(a,ba, b) [0,1][0, 1] xa−1(1−x)b−1x^{a-1}(1-x)^{b-1} a/(a+b)a/(a+b) ab(a+b)2(a+b+1)\frac{ab}{(a+b)^2(a+b+1)} beta(a, b)
Student-t(ν\nu) R\mathbb{R} (1+x2/ν)−(ν+1)/2(1 + x^2/\nu)^{-(\nu+1)/2} 00 (ν>1\nu > 1) ν/(ν−2)\nu/(\nu-2) (ν>2\nu > 2) t(df=nu)
log-normal(μ,σ2\mu, \sigma^2) (0,∞)(0, \infty) 1xe−(log⁡x−μ)2/(2σ2)\frac{1}{x}e^{-(\log x-\mu)^2/(2\sigma^2)} eμ+σ2/2e^{\mu+\sigma^2/2} (eσ2−1)e2μ+σ2(e^{\sigma^2}-1)e^{2\mu+\sigma^2} lognorm(s=sigma, scale=exp(mu))
Laplace(μ,b\mu, b) R\mathbb{R} e−∣x−μ∣/be^{-\lvert x-\mu\rvert/b} μ\mu 2b22b^2 laplace(mu, b)

지수족(11.2, 12.2). p(x∣η)=h(x)exp⁡(η⊤T(x)−A(η))p(x \mid \boldsymbol{\eta}) = h(x)\exp\big(\boldsymbol{\eta}^\top T(x) - A(\boldsymbol{\eta})\big)이면 ∇A(η)=E[T(X)]\nabla A(\boldsymbol{\eta}) = \mathbb{E}[T(X)], ∇2A(η)=Cov⁡[T(X)]\nabla^2 A(\boldsymbol{\eta}) = \operatorname{Cov}[T(X)]이고, 최대우도 조건은 ∇A(η^)=1N∑iT(xi)\nabla A(\hat{\boldsymbol{\eta}}) = \frac{1}{N}\sum_i T(x_i)(모멘트 맞추기)다.

분포 T(x)T(x) 자연 파라미터 η\eta A(η)A(\eta)
Bernoulli(π\pi) xx log⁡π1−π\log\frac{\pi}{1-\pi} (logit) log⁡(1+eη)\log(1 + e^\eta)
categorical(π\boldsymbol{\pi}) one-hot 벡터 log⁡πk\log \pi_k log⁡∑keηk\log\sum_k e^{\eta_k}
Poisson(λ\lambda) xx log⁡λ\log \lambda eηe^\eta
Gaussian(μ,σ2\mu, \sigma^2) (x,x2)(x, x^2) (μ/σ2, −1/(2σ2))\big(\mu/\sigma^2,\ -1/(2\sigma^2)\big) −η124η2−12log⁡(−2η2)-\frac{\eta_1^2}{4\eta_2} - \frac{1}{2}\log(-2\eta_2)

켤레 사전분포(13.2). 사후분포가 사전분포와 같은 분포족에 머무는 쌍이다.

우도 사전분포 사후분포
Bernoulli·binomial (nn번 중 hh번 성공) Beta(a,b)\mathrm{Beta}(a, b) Beta(a+h, b+n−h)\mathrm{Beta}(a + h,\ b + n - h)
Poisson (노출 tit_i 동안 yiy_i건) Gamma(a,b)\mathrm{Gamma}(a, b) (shape, rate) Gamma(a+∑iyi, b+∑iti)\mathrm{Gamma}\big(a + \sum_i y_i,\ b + \sum_i t_i\big)
Gaussian (분산 σ2\sigma^2 앎, nn개, 평균 yˉ\bar{y}) N(μ0,τ02)\mathcal{N}(\mu_0, \tau_0^2) N(μn,τn2)\mathcal{N}(\mu_n, \tau_n^2), 1τn2=1τ02+nσ2\frac{1}{\tau_n^2} = \frac{1}{\tau_0^2} + \frac{n}{\sigma^2}, μn=τn2(μ0τ02+nyˉσ2)\mu_n = \tau_n^2\big(\frac{\mu_0}{\tau_0^2} + \frac{n\bar{y}}{\sigma^2}\big)
선형회귀 y∣w∼N(Φw,σ2I)\mathbf{y} \mid \mathbf{w} \sim \mathcal{N}(\boldsymbol{\Phi}\mathbf{w}, \sigma^2\mathbf{I}) N(0,α−1I)\mathcal{N}(\mathbf{0}, \alpha^{-1}\mathbf{I}) N(m,S)\mathcal{N}(\mathbf{m}, \mathbf{S}), S=(αI+σ−2Φ⊤Φ)−1\mathbf{S} = \big(\alpha\mathbf{I} + \sigma^{-2}\boldsymbol{\Phi}^\top\boldsymbol{\Phi}\big)^{-1}, m=σ−2SΦ⊤y\mathbf{m} = \sigma^{-2}\mathbf{S}\boldsymbol{\Phi}^\top\mathbf{y}

베이지안 선형회귀의 예측분포는 p(y∗∣x∗,y)=N(ϕ∗⊤m, σ2+ϕ∗⊤Sϕ∗)p(y_\ast \mid \mathbf{x}_\ast, \mathbf{y}) = \mathcal{N}\big(\boldsymbol{\phi}_\ast^\top\mathbf{m},\ \sigma^2 + \boldsymbol{\phi}_\ast^\top\mathbf{S}\boldsymbol{\phi}_\ast\big)이다. 첫 항이 관측 잡음(aleatoric), 둘째 항이 가중치 불확실성(epistemic)이다. 주변우도는 y∼N(0, σ2I+α−1ΦΦ⊤)\mathbf{y} \sim \mathcal{N}(\mathbf{0},\ \sigma^2\mathbf{I} + \alpha^{-1}\boldsymbol{\Phi}\boldsymbol{\Phi}^\top)이다.

통계적 추론

이름 공식 조건·메모 장
표본 평균의 표준오차 Var⁡[Xˉ]=σ2/n\operatorname{Var}[\bar{X}] = \sigma^2/n, SE=σ/n\mathrm{SE} = \sigma/\sqrt{n} 독립 12.1
편향과 MSE MSE(θ^)=E[(θ^−θ)2]=bias⁡(θ^)2+Var⁡(θ^)\mathrm{MSE}(\hat\theta) = \mathbb{E}[(\hat\theta - \theta)^2] = \operatorname{bias}(\hat\theta)^2 + \operatorname{Var}(\hat\theta) bias⁡(θ^)=E[θ^]−θ\operatorname{bias}(\hat\theta) = \mathbb{E}[\hat\theta] - \theta 12.1
표본 분산 s2=1n−1∑i(Xi−Xˉ)2s^2 = \dfrac{1}{n-1}\sum_i (X_i - \bar{X})^2 n−1n-1로 나누면 불편. np.var의 기본은 nn (ddof=0) 12.1
Fisher 정보 I(θ)=E[(∂θlog⁡p(X∣θ))2]=−E[∂θ2log⁡p(X∣θ)]I(\theta) = \mathbb{E}\big[(\partial_\theta \log p(X \mid \theta))^2\big] = -\mathbb{E}\big[\partial_\theta^2 \log p(X \mid \theta)\big] 정칙 조건 12.1
Cramér–Rao 하한 Var⁡(θ^)≥1/(n I(θ))\operatorname{Var}(\hat\theta) \ge 1/(n\,I(\theta)) 불편추정량, i.i.d. 12.1
점근 정규성 n (θ^n−θ)→dN(0,v)\sqrt{n}\,(\hat\theta_n - \theta) \xrightarrow{d} \mathcal{N}(0, v) MLE는 정칙 조건에서 v=1/I(θ)v = 1/I(\theta) 12.1
최대우도 θ^MLE=arg⁡max⁡θ∑ilog⁡p(xi∣θ)\hat\theta_{\text{MLE}} = \arg\max_\theta \sum_i \log p(x_i \mid \theta) 독립 관측 12.2
MAP θ^MAP=arg⁡min⁡θ(−log⁡p(D∣θ)−log⁡p(θ))\hat\theta_{\text{MAP}} = \arg\min_\theta \big(-\log p(\mathcal{D} \mid \theta) - \log p(\theta)\big) 가우시안 사전분포는 L2 정규화와 같다 12.2
가우시안 NLL −log⁡N(y;μ,σ2)=12log⁡(2πσ2)+(y−μ)22σ2-\log \mathcal{N}(y; \mu, \sigma^2) = \tfrac{1}{2}\log(2\pi\sigma^2) + \dfrac{(y - \mu)^2}{2\sigma^2} σ\sigma 고정이면 MSE와 같은 최소점 12.3
신뢰구간의 정의 Pr⁡θ[L(X)≤θ≤U(X)]≥1−α\Pr_\theta[L(X) \le \theta \le U(X)] \ge 1 - \alpha 모든 θ\theta에 대해. 구간이 확률변수다 12.4
tt 통계량 T=Xˉ−μS/n∼tn−1T = \dfrac{\bar{X} - \mu}{S/\sqrt{n}} \sim t_{n-1} 정규 모집단 12.4
검정력과 표본 수 검정력 ≈Φ(dn/2−z1−α/2)\approx \Phi\big(d\sqrt{n/2} - z_{1-\alpha/2}\big), n≈2(z1−α/2+z1−β)2/d2n \approx 2(z_{1-\alpha/2} + z_{1-\beta})^2/d^2 두 집단, 집단당 nn, d=(μ1−μ0)/σd = (\mu_1 - \mu_0)/\sigma 12.4
가족별 오류율 FWER=1−(1−α)m\mathrm{FWER} = 1 - (1 - \alpha)^m 독립인 mm개 검정. Bonferroni는 각 검정을 α/m\alpha/m으로 12.4
비선형 최소제곱 추정의 공분산 Cov⁡(θ^)≈σ2(J⊤J)−1\operatorname{Cov}(\hat\theta) \approx \sigma^2(\mathbf{J}^\top\mathbf{J})^{-1} 잡음 정규·등분산, 해 근처에서 거의 선형 10.5

최적화

이름 공식 조건·메모 장
경사하강 xk+1=xk−η ∇f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \eta\,\nabla f(\mathbf{x}_k) 10.3
이차 함수에서의 안정 조건 0<η<2/L0 < \eta < 2/L, L=λmax⁡(H)L = \lambda_{\max}(\mathbf{H}) 넘으면 가장 가파른 방향으로 발산 10.3
수렴 속도와 조건수 축소율 κ−1κ+1\dfrac{\kappa - 1}{\kappa + 1}, κ=L/μ\kappa = L/\mu 강볼록 이차 함수, η=2/(μ+L)\eta = 2/(\mu + L) 10.3, 9.2
하강 보조정리 f(xk+1)≤f(xk)−η2∥∇f(xk)∥2f(\mathbf{x}_{k+1}) \le f(\mathbf{x}_k) - \tfrac{\eta}{2}\lVert \nabla f(\mathbf{x}_k) \rVert^2 LL-smooth, η≤1/L\eta \le 1/L 10.3
Armijo 조건 f(x−t∇f(x))≤f(x)−c t ∥∇f(x)∥2f(\mathbf{x} - t\nabla f(\mathbf{x})) \le f(\mathbf{x}) - c\,t\,\lVert \nabla f(\mathbf{x}) \rVert^2 backtracking line search, 0<c<10 < c < 1 10.3
SGD θk+1=θk−ηk 1B∑i∈Bk∇ℓi(θk)\theta_{k+1} = \theta_k - \eta_k\,\tfrac{1}{B}\sum_{i \in \mathcal{B}_k} \nabla \ell_i(\theta_k) mini-batch 크기 BB 10.3
Robbins–Monro 조건 ∑kηk=∞\sum_k \eta_k = \infty, ∑kηk2<∞\sum_k \eta_k^2 < \infty 학습률 감쇠의 근거 10.3
heavy ball momentum vk+1=βvk−η∇f(xk)\mathbf{v}_{k+1} = \beta\mathbf{v}_k - \eta\nabla f(\mathbf{x}_k), xk+1=xk+vk+1\mathbf{x}_{k+1} = \mathbf{x}_k + \mathbf{v}_{k+1} Nesterov는 gradient를 xk+βvk\mathbf{x}_k + \beta\mathbf{v}_k에서 계산 10.3
Newton 방법 ∇2f(xk) dk=−∇f(xk)\nabla^2 f(\mathbf{x}_k)\,\mathbf{d}_k = -\nabla f(\mathbf{x}_k), xk+1=xk+dk\mathbf{x}_{k+1} = \mathbf{x}_k + \mathbf{d}_k 해 근처에서 이차 수렴 10.5
Gauss–Newton J⊤J δ=−J⊤r\mathbf{J}^\top\mathbf{J}\,\boldsymbol{\delta} = -\mathbf{J}^\top\mathbf{r} F=12∥r(θ)∥2F = \tfrac{1}{2}\lVert \mathbf{r}(\theta) \rVert^2, J=∂r/∂θ\mathbf{J} = \partial\mathbf{r}/\partial\theta 10.5
Levenberg–Marquardt (J⊤J+λI) δ=−J⊤r(\mathbf{J}^\top\mathbf{J} + \lambda\mathbf{I})\,\boldsymbol{\delta} = -\mathbf{J}^\top\mathbf{r} λ\lambda가 크면 경사하강, 작으면 Gauss–Newton 10.5
Lagrangian L(x,λ,ν)=f(x)+∑iλigi(x)+∑jνjhj(x)L(\mathbf{x}, \boldsymbol{\lambda}, \boldsymbol{\nu}) = f(\mathbf{x}) + \sum_i \lambda_i g_i(\mathbf{x}) + \sum_j \nu_j h_j(\mathbf{x}) 제약 gi≤0g_i \le 0, hj=0h_j = 0 10.2
KKT 조건 ∇xL=0\nabla_{\mathbf{x}} L = \mathbf{0}, gi≤0g_i \le 0, hj=0h_j = 0, λi≥0\lambda_i \ge 0, λigi=0\lambda_i g_i = 0 정상성·원 실행 가능성·쌍대 실행 가능성·상보 여유 10.2
쌍대 함수 g(λ,ν)=min⁡xL(x,λ,ν)≤f⋆g(\boldsymbol{\lambda}, \boldsymbol{\nu}) = \min_{\mathbf{x}} L(\mathbf{x}, \boldsymbol{\lambda}, \boldsymbol{\nu}) \le f^\star λ≥0\boldsymbol{\lambda} \ge \mathbf{0}이면 항상 하한(약한 쌍대성) 10.2
승수의 민감도 df⋆/db=−νdf^\star/db = -\nu 제약 c(x)−b=0c(\mathbf{x}) - b = 0에 승수 ν\nu를 붙여 Lagrangian에 더할 때 10.2
투영 경사하강 xk+1=ΠC(xk−η∇f(xk))\mathbf{x}_{k+1} = \Pi_{\mathcal{C}}\big(\mathbf{x}_k - \eta\nabla f(\mathbf{x}_k)\big) 볼록 집합 C\mathcal{C} 위로의 사영 10.2
근위 연산 prox⁡tR(v)=arg⁡min⁡x(R(x)+12t∥x−v∥2)\operatorname{prox}_{tR}(\mathbf{v}) = \arg\min_{\mathbf{x}} \big(R(\mathbf{x}) + \tfrac{1}{2t}\lVert \mathbf{x} - \mathbf{v} \rVert^2\big) L1이면 soft thresholding 10.2

Adam과 AdamW(10.4). gradient gt\mathbf{g}_t의 1차·2차 모멘트를 지수이동평균으로 추적하고 초기 편향을 보정한다. 제곱과 나눗셈은 성분별이다.

mt=β1mt−1+(1−β1) gt,vt=β2vt−1+(1−β2) gt2,m^t=mt/(1−β1t),v^t=vt/(1−β2t),wt=wt−1−η m^tv^t+ϵ−ηλ wt−1.\begin{aligned} \mathbf{m}_t &= \beta_1\mathbf{m}_{t-1} + (1 - \beta_1)\,\mathbf{g}_t, & \mathbf{v}_t &= \beta_2\mathbf{v}_{t-1} + (1 - \beta_2)\,\mathbf{g}_t^2, \\ \hat{\mathbf{m}}_t &= \mathbf{m}_t / (1 - \beta_1^t), & \hat{\mathbf{v}}_t &= \mathbf{v}_t / (1 - \beta_2^t), \\ \mathbf{w}_t &= \mathbf{w}_{t-1} - \eta\,\frac{\hat{\mathbf{m}}_t}{\sqrt{\hat{\mathbf{v}}_t} + \epsilon} - \eta\lambda\,\mathbf{w}_{t-1}. & & \end{aligned}

마지막 항(ηλwt−1\eta\lambda\mathbf{w}_{t-1})이 AdamW의 decoupled weight decay다. 이 항을 빼면 Adam이다. Adam에 L2 항 λ2∥w∥2\tfrac{\lambda}{2}\lVert\mathbf{w}\rVert^2을 손실에 더하는 것은 이것과 같지 않다(그 gradient가 적응적 분모로 나뉘기 때문이다).

정보이론

이름 공식 조건·메모 장
엔트로피 H(p)=−∑xp(x)log⁡p(x)=Ex∼p[−log⁡p(x)]H(p) = -\sum_x p(x)\log p(x) = \mathbb{E}_{x \sim p}[-\log p(x)] 자연로그면 nat, log⁡2\log_2면 bit. 1 bit=log⁡2 nat1\ \text{bit} = \log 2\ \text{nat} 14.1
미분 엔트로피 h(p)=−∫p(x)log⁡p(x) dxh(p) = -\int p(x)\log p(x)\,dx 음수일 수 있다 14.1
교차엔트로피 H(p,q)=Ex∼p[−log⁡q(x)]=H(p)+KL(p ∥ q)H(p, q) = \mathbb{E}_{x \sim p}[-\log q(x)] = H(p) + \mathrm{KL}(p \,\Vert\, q) pp를 고정하고 qq에 대해 최소화하면 KL 최소화와 같다 14.1
KL divergence KL(p ∥ q)=∑xp(x)log⁡p(x)q(x)≥0\mathrm{KL}(p \,\Vert\, q) = \sum_x p(x)\log\dfrac{p(x)}{q(x)} \ge 0 비대칭. p>0p > 0인 곳에서 q=0q = 0이면 ∞\infty. DKLD_{\mathrm{KL}}로 쓰는 문헌도 같은 뜻이다 14.1
Jensen–Shannon JS(p,q)=12KL(p ∥ m)+12KL(q ∥ m)\mathrm{JS}(p, q) = \tfrac{1}{2}\mathrm{KL}(p \,\Vert\, m) + \tfrac{1}{2}\mathrm{KL}(q \,\Vert\, m), m=12(p+q)m = \tfrac{1}{2}(p + q) 대칭, [0,log⁡2][0, \log 2] 14.1
ff-divergence Df(p ∥ q)=Ex∼q[f(p(x)/q(x))]D_f(p \,\Vert\, q) = \mathbb{E}_{x \sim q}\big[f\big(p(x)/q(x)\big)\big] ff 볼록, f(1)=0f(1) = 0. f(t)=tlog⁡tf(t) = t\log t이면 KL 14.1
상호정보량 I(X;Y)=KL(p(x,y) ∥ p(x)p(y))=H(X)−H(X∣Y)I(X; Y) = \mathrm{KL}\big(p(x, y) \,\Vert\, p(x)p(y)\big) = H(X) - H(X \mid Y) =H(X)+H(Y)−H(X,Y)= H(X) + H(Y) - H(X, Y) 14.2
데이터 처리 부등식 I(X;Z)≤I(X;Y)I(X; Z) \le I(X; Y) ZZ가 YY만 보고 만들어질 때(X→Y→ZX \to Y \to Z) 14.2
가우시안 엔트로피 h(N(μ,Σ))=12log⁡((2πe)Ddet⁡Σ)h\big(\mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})\big) = \tfrac{1}{2}\log\big((2\pi e)^D \det\boldsymbol{\Sigma}\big) 같은 공분산의 분포 중 최대 14.1
일변수 가우시안 KL KL(N(μ1,σ12) ∥ N(μ2,σ22))=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12\mathrm{KL}\big(\mathcal{N}(\mu_1, \sigma_1^2) \,\Vert\, \mathcal{N}(\mu_2, \sigma_2^2)\big) = \log\dfrac{\sigma_2}{\sigma_1} + \dfrac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \dfrac{1}{2} 14.1
다변량 가우시안 KL 12[tr⁡(Σ2−1Σ1)+(μ2−μ1)⊤Σ2−1(μ2−μ1)−D+log⁡det⁡Σ2det⁡Σ1]\tfrac{1}{2}\Big[\operatorname{tr}(\boldsymbol{\Sigma}_2^{-1}\boldsymbol{\Sigma}_1) + (\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1)^\top\boldsymbol{\Sigma}_2^{-1}(\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1) - D + \log\dfrac{\det\boldsymbol{\Sigma}_2}{\det\boldsymbol{\Sigma}_1}\Big] KL(N(μ1,Σ1) ∥ N(μ2,Σ2))\mathrm{KL}\big(\mathcal{N}(\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1) \,\Vert\, \mathcal{N}(\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)\big), DD차원 14.1
VAE의 KL 항 KL(N(μ,diag⁡s2) ∥ N(0,I))=12∑j(μj2+sj2−1−log⁡sj2)\mathrm{KL}\big(\mathcal{N}(\boldsymbol{\mu}, \operatorname{diag}\mathbf{s}^2) \,\Vert\, \mathcal{N}(\mathbf{0}, \mathbf{I})\big) = \tfrac{1}{2}\sum_j \big(\mu_j^2 + s_j^2 - 1 - \log s_j^2\big) 위 식의 특수한 경우 19.3
ELBO log⁡p(D)=Eq[log⁡p(D,θ)−log⁡q(θ)]⏟ELBO+KL(q(θ) ∥ p(θ∣D))\log p(\mathcal{D}) = \underbrace{\mathbb{E}_q[\log p(\mathcal{D}, \theta) - \log q(\theta)]}_{\text{ELBO}} + \mathrm{KL}\big(q(\theta) \,\Vert\, p(\theta \mid \mathcal{D})\big) KL ≥0\ge 0이므로 ELBO는 하한 13.6

수치해석

이름 공식 조건·메모 장
부동소수점 값 x=(−1)s×(1.f)2×2 e−biasx = (-1)^s \times (1.f)_2 \times 2^{\,e - \text{bias}} 정규수 9.1
반올림 모델 fl(x)=x(1+δ)\mathrm{fl}(x) = x(1 + \delta), ∣δ∣≤u=ε/2\lvert\delta\rvert \le u = \varepsilon/2 float64 ε≈2.2×10−16\varepsilon \approx 2.2 \times 10^{-16}, float32 ε≈1.2×10−7\varepsilon \approx 1.2 \times 10^{-7} 9.1
뺄셈의 상대 오차 ∣aδa−bδb∣∣a−b∣≤∣a∣+∣b∣∣a−b∣ u\dfrac{\lvert a\delta_a - b\delta_b \rvert}{\lvert a - b \rvert} \le \dfrac{\lvert a\rvert + \lvert b\rvert}{\lvert a - b\rvert}\,u a≈ba \approx b이면 증폭(파국적 상쇄) 9.1
log-sum-exp log⁡∑jezj=m+log⁡∑jezj−m\log\sum_j e^{z_j} = m + \log\sum_j e^{z_j - m}, m=max⁡jzjm = \max_j z_j overflow·underflow 방지 9.1
선형계의 조건수 ∥Δx∥∥x∥≤κ(A)∥Δb∥∥b∥\dfrac{\lVert\Delta\mathbf{x}\rVert}{\lVert\mathbf{x}\rVert} \le \kappa(\mathbf{A})\dfrac{\lVert\Delta\mathbf{b}\rVert}{\lVert\mathbf{b}\rVert}, κ(A)=∥A∥ ∥A−1∥\kappa(\mathbf{A}) = \lVert\mathbf{A}\rVert\,\lVert\mathbf{A}^{-1}\rVert 2-노름이면 κ=σmax⁡/σmin⁡\kappa = \sigma_{\max}/\sigma_{\min} 9.2
오차와 안정성 forward error ≲κ×\lesssim \kappa \times backward error backward stable 알고리즘이 기대할 수 있는 최선 9.2
전처리 M−1Ax=M−1b\mathbf{M}^{-1}\mathbf{A}\mathbf{x} = \mathbf{M}^{-1}\mathbf{b} M≈A\mathbf{M} \approx \mathbf{A}이고 역 적용이 쉬움 9.2
Newton 반복(스칼라) xk+1=xk−f(xk)/f′(xk)x_{k+1} = x_k - f(x_k)/f'(x_k), ek+1≈∣f′′(x∗)2f′(x∗)∣ek2e_{k+1} \approx \Big\lvert \dfrac{f''(x^*)}{2f'(x^*)} \Big\rvert e_k^2 단순근 근처에서 이차 수렴 9.4
Newton 반복(연립) J(xk) Δx=−F(xk)\mathbf{J}(\mathbf{x}_k)\,\Delta\mathbf{x} = -\mathbf{F}(\mathbf{x}_k) 9.4
다항식 보간 오차 f(x)−p(x)=f(n+1)(ξ)(n+1)!∏i=0n(x−xi)f(x) - p(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^n (x - x_i) 등간격 고차 보간은 Runge 현상 9.5
구적 규칙 ∫abf(x) dx≈∑iwif(xi)\int_a^b f(x)\,dx \approx \sum_i w_i f(x_i) 사다리꼴 O(h2)O(h^2), Simpson O(h4)O(h^4) 9.5
수렴 차수 측정 p≈log⁡2E(h)E(h/2)p \approx \log_2 \dfrac{E(h)}{E(h/2)} 격자를 반으로 줄여 오차 비를 잰다 9.5
차원의 저주 격자 규칙 오차 O(N−p/d)O(N^{-p/d}), Monte Carlo 오차 O(N−1/2)O(N^{-1/2}) 점 NN개, dd차원 9.5
유한차분 전진 f(x+h)−f(x)h=f′(x)+O(h)\dfrac{f(x + h) - f(x)}{h} = f'(x) + O(h), 중심 f(x+h)−f(x−h)2h=f′(x)+O(h2)\dfrac{f(x + h) - f(x - h)}{2h} = f'(x) + O(h^2) hh가 너무 작으면 반올림 오차가 커진다 8.4
2계 중심차분 uj+1−2uj+uj−1Δx2=∂xxu+O(Δx2)\dfrac{u_{j+1} - 2u_j + u_{j-1}}{\Delta x^2} = \partial_{xx} u + O(\Delta x^2) 9.7
전진 Euler yn+1=yn+h f(tn,yn)\mathbf{y}_{n+1} = \mathbf{y}_n + h\, f(t_n, \mathbf{y}_n) 1차, 명시적 9.6
후진 Euler yn+1=yn+h f(tn+1,yn+1)\mathbf{y}_{n+1} = \mathbf{y}_n + h\, f(t_{n+1}, \mathbf{y}_{n+1}) 1차, 암시적. stiff 문제에 쓴다 9.6
적응 step의 허용오차 erri≤atoli+rtol⋅∣yi∣\text{err}_i \le \text{atol}_i + \text{rtol}\cdot\lvert y_i \rvert solve_ivp의 국소 오차 기준 9.6
FTCS 안정 조건 r=κ ΔtΔx2≤12r = \dfrac{\kappa\,\Delta t}{\Delta x^2} \le \dfrac{1}{2} 열방정식 ∂tu=κ ∂xxu\partial_t u = \kappa\,\partial_{xx} u의 명시적 스킴. 9.7장은 확산계수를 α\alpha로 쓴다 9.7
CFL 조건 ν=c ΔtΔx≤1\nu = \dfrac{c\,\Delta t}{\Delta x} \le 1 속도 cc의 이류 방정식, 명시적 스킴 9.7

고전적 4단 Runge–Kutta(RK4)(9.6). 4차 방법이다.

k1=f(tn,yn),k2=f(tn+h2,yn+h2k1),k3=f(tn+h2,yn+h2k2),k4=f(tn+h,yn+hk3),yn+1=yn+h6(k1+2k2+2k3+k4).\begin{aligned} \mathbf{k}_1 &= f(t_n, \mathbf{y}_n), & \mathbf{k}_2 &= f\big(t_n + \tfrac{h}{2}, \mathbf{y}_n + \tfrac{h}{2}\mathbf{k}_1\big), \\ \mathbf{k}_3 &= f\big(t_n + \tfrac{h}{2}, \mathbf{y}_n + \tfrac{h}{2}\mathbf{k}_2\big), & \mathbf{k}_4 &= f\big(t_n + h, \mathbf{y}_n + h\mathbf{k}_3\big), \\ \mathbf{y}_{n+1} &= \mathbf{y}_n + \tfrac{h}{6}\big(\mathbf{k}_1 + 2\mathbf{k}_2 + 2\mathbf{k}_3 + \mathbf{k}_4\big). & & \end{aligned}

실습

이 부록의 공식은 손으로 외우는 대상이 아니라 검증해서 쓰는 대상이다. 다음 작업으로 공식을 자기 코드에서 믿을 수 있게 만든다.

  1. 행렬 미분 항등식을 수치로 확인한다. '미분과 행렬 미분' 표에서 세 개를 골라, 무작위 행렬에서 중심차분 gradient와 공식의 값을 비교한다. 상대 오차가 float64에서 10−610^{-6} 아래인지 본다. 대칭이 아닌 A\mathbf{A}로 이차형식을 시험해 (A+A⊤)x(\mathbf{A} + \mathbf{A}^\top)\mathbf{x}와 2Ax2\mathbf{A}\mathbf{x}의 차이를 직접 확인한다.
  2. 가우시안 조건부 공식을 표본으로 확인한다. 3차원 가우시안에서 표본을 많이 뽑고, x3x_3가 특정 값 근처인 표본만 골라 (x1,x2)(x_1, x_2)의 표본 평균·공분산을 조건부 공식과 비교한다.
  3. 분포의 parameterization을 맞춘다. 지수분포 rate λ=2\lambda = 2와 gamma(α=3\alpha = 3, rate β=2\beta = 2)를 scipy.stats로 만들고 .mean(), .var()가 표의 값과 같은지 확인한다. 같지 않으면 rate와 scale을 바꿔 넣은 것이다.
  4. 가우시안 KL의 닫힌 형태를 Monte Carlo로 확인한다. KL(p ∥ q)=Ex∼p[log⁡p(x)−log⁡q(x)]\mathrm{KL}(p \,\Vert\, q) = \mathbb{E}_{x \sim p}[\log p(x) - \log q(x)]를 표본 평균으로 추정해 닫힌 형태와 비교하고, pp와 qq를 바꿔 비대칭을 본다.

실패 사례

  • 다른 layout의 공식을 그대로 옮기는 것. gradient를 행벡터로 쓰는 교재나 Jacobian을 (입력 × 출력)으로 쓰는 denominator layout 교재의 공식을 그대로 옮기면 전치가 하나씩 어긋난다. 옮긴 공식은 shape부터 맞춰 보고, 유한차분으로 한 번 검증한다(8.2).
  • 이차형식 gradient를 대칭이라고 가정하는 것. ∇x x⊤Ax=2Ax\nabla_{\mathbf{x}}\,\mathbf{x}^\top\mathbf{A}\mathbf{x} = 2\mathbf{A}\mathbf{x}는 A\mathbf{A}가 대칭일 때만 맞다. 비대칭 행렬이 들어오는 코드에서는 조용히 틀린 gradient가 된다.
  • rate와 scale을 바꿔 넣는 것. 지수분포·gamma의 rate β\beta를 SciPy의 scale에 넣으면 평균이 α/β\alpha/\beta 대신 αβ\alpha\beta가 된다. 표준편차와 분산(norm(mu, sigma)는 분산이 아니라 표준편차를 받는다)도 같은 종류의 실수다.
  • KL의 방향을 바꿔 쓰는 것. KL(p ∥ q)\mathrm{KL}(p \,\Vert\, q)와 KL(q ∥ p)\mathrm{KL}(q \,\Vert\, p)는 값도 최적해의 성질도 다르다. MLE는 forward KL, 변분추론은 reverse KL을 줄인다(14.1).
  • nat와 bit를 섞는 것. 엔트로피·상호정보량을 비교할 때 한쪽은 np.log, 다른 쪽은 np.log2로 계산하면 log⁡2≈0.693\log 2 \approx 0.693배 차이가 난다.
  • 역행렬과 행렬식을 그대로 계산하는 것. 정규방정식의 (A⊤A)−1(\mathbf{A}^\top\mathbf{A})^{-1}은 조건수를 제곱하고, 고차원 det⁡Σ\det\boldsymbol{\Sigma}는 overflow·underflow한다. 공식은 수학적 관계이고, 계산은 solve, Cholesky, slogdet로 한다(9.3).
  • 가정을 떼고 공식을 쓰는 것. Hoeffding은 유계와 독립, tt 구간은 정규 모집단, Cramér–Rao는 불편추정량과 정칙 조건이 필요하다. 표의 '조건' 열을 함께 옮긴다.

통과 기준

  • 표에서 고른 행렬 미분 항등식 세 개를 유한차분으로 검증하는 짧은 코드를 작성했고, 상대 오차가 10−610^{-6} 아래다.
  • scipy.stats로 만든 지수분포·gamma의 평균과 분산이 분포 표의 값과 일치한다.
  • 두 일변수 가우시안의 KL을 닫힌 형태와 Monte Carlo로 계산해 Monte Carlo 표준오차 범위 안에서 일치함을 보였다.