공식 모음
연구 코드를 짜거나 논문을 읽다 보면 같은 공식을 몇 번이고 다시 찾게 된다. 이차형식의 gradient, 가우시안의 조건부분포, 두 가우시안 사이의 KL, Adam의 갱신식, 명시적 스킴의 안정 조건 같은 것들이다. 이 부록은 본문 장들에 흩어진 핵심 공식을 분야별로 모으고, 각 공식에 그것을 유도하거나 처음 쓰는 장을 링크한다.
공식은 가정과 함께 써야 맞다. 표에는 공식이 성립하는 조건을 짧게 붙였지만, 유도와 예외는 링크한 장에 있다. 기호는 부록 A. 표기법을 따른다. 벡터는 열벡터, gradient는 열벡터, Jacobian은 (출력 차원 × 입력 차원)이고, 는 자연로그다.
학습 목표
- 자주 쓰는 공식을 이 책의 표기 규약에 맞는 형태로 찾아 쓴다
- 공식을 옮겨 올 때 layout·parameterization·로그 밑 같은 규약의 차이를 확인한다
- 공식을 유도한 장으로 돌아가 가정과 적용 조건을 확인한다
선형대수
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 내적과 노름 | , | 7.4 | |
| 정규직교 기저의 좌표 | , | 가 정규직교 | 7.4 |
| 직선 위로의 사영 | 7.4 | ||
| 최소제곱(정규방정식) | 잔차 가 열공간과 직교. 계산은 QR·SVD로 | 7.4 | |
| 직교행렬 | , | 길이·각도 보존 | 7.4 |
| 대칭행렬의 스펙트럼 분해 | 이면 고윳값 실수, 직교 | 7.5 | |
| trace·det와 고윳값 | , | 정사각행렬 | 7.5 |
| SVD | , | 7.6 | |
| pseudoinverse | 는 0 아닌 특잇값만 역수 | 7.6 | |
| 최적 저랭크 근사 (Eckart–Young) | 절단 SVD 가 최적 | 7.6 | |
| 설명 분산 비율 | 7.6 | ||
| PCA와 SVD | 는 열 평균을 뺀 데이터 | 7.6 | |
| trace의 성질 | , | shape이 맞을 때 순환 가능 | 8.2 |
| Woodbury 항등식 | 저랭크 갱신의 역. 공분산 형태 ↔ 정밀도 형태 변환에 쓴다 | 11.4 |
미분과 행렬 미분
이 책은 Jacobian을 numerator layout(출력 차원 × 입력 차원)으로 쓰고, 스칼라 을 행렬 로 미분한 gradient는 와 같은 shape으로 쓴다(부록 A). 미분형 로 정리되면 로 읽는다(8.2).
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 1차 근사 | 8.1 | ||
| 방향미분 | 가 미분 가능 | 8.1 | |
| 2차 Taylor 근사 | Newton 방법의 모델 | 10.5 | |
| 연쇄법칙 | 역전파는 이것을 출력 쪽부터 로 계산 | 8.1, 8.4 | |
| 미분형 규칙 | , | 곱의 순서를 지킨다 | 8.2 |
| 선형 함수 | 8.2 | ||
| 이차형식 | 가 대칭이면 | 8.2 | |
| 최소제곱 | 8.2 | ||
| 쌍선형형식 | 8.2 | ||
| trace | , | 8.2 | |
| 역행렬 | 8.2 | ||
| log det (Jacobi 공식) | , | 8.2 | |
| 선형층의 가중치 gradient | . 출력 쪽 gradient와 입력의 외적 | 8.2 | |
| softmax cross-entropy | , , one-hot | 8.2 | |
| 변수변환 | 가 가역이고 연속 미분 가능 | 8.3 | |
| 밀도의 변수변환 | normalizing flow의 바탕 | 8.3 | |
| 가우시안 적분 | , | 양의 정부호 | 8.3 |
확률
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 주변화 | (연속이면 ) | 11.3 | |
| 조건부분포·곱의 법칙 | , | 11.3 | |
| Bayes 정리 | 11.3 | ||
| 독립 | 모든 에 대해 | 11.3 | |
| 기댓값의 선형성 | 독립이 아니어도 성립 | 11.5 | |
| 분산 | 11.5 | ||
| 합의 분산 | 독립이면 공분산 항이 0 | 11.5 | |
| 반복 기댓값 | 11.3 | ||
| 전체 분산의 법칙 | 앙상블 불확실성 분해에 쓰인다 | 11.5 | |
| Markov 부등식 | , | 11.5 | |
| Chebyshev 부등식 | 분산이 유한 | 11.5 | |
| Hoeffding 부등식 | 독립, 각 | 11.5 | |
| 중심극한정리 | i.i.d., 분산 유한 | 11.5 | |
| Monte Carlo 추정 | , | 독립 | 11.6 |
| 역변환 표집 | 11.6 | ||
| 중요도 표집 | , | 인 곳에서 | 11.6 |
| 자기정규화 중요도 표집 | 정규화 상수를 몰라도 된다. 편향 있음 | 11.6 | |
| 유효 표본 크기 | 가중치가 고를수록 에 가깝다 | 11.6 |
가우시안 항등식
차원 가우시안 의 밀도는
이다(11.4). 벡터를 관측하지 않은 부분 와 관측한 부분 로 나누고 평균과 공분산을 같은 블록으로 나누면
이다. 조건부 평균은 관측값에 선형이고, 조건부 공분산은 관측값 에 의존하지 않는다.
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| Mahalanobis 거리 | 밀도의 등고면 | 11.4 | |
| 선형변환 | 11.4 | ||
| 표집 | , | (Cholesky) | 11.4 |
| 주변분포 | 해당 블록만 읽는다 | 11.4 | |
| 조건부분포(정밀도 형태) | 11.4 | ||
| 조건부 독립과 정밀도 | Gaussian graphical model | 11.4 | |
| 선형 가우시안 모델의 사후분포 | , , | , , . Kalman 갱신과 같다 | 11.4 |
| 같은 사후분포(정밀도 형태) | , | Woodbury로 위 식과 오간다 | 11.4 |
| 관측의 주변분포 | evidence. 모델 비교에 쓴다 | 11.4 |
분포 표
이산 분포(11.2). scipy.stats 열은 집필 시점(SciPy 1.14) 예시이며, 쓰는 버전의 문서에서 인자 이름을 확인한다.
| 분포 | 값 | PMF | 평균 | 분산 | scipy.stats |
|---|---|---|---|---|---|
| Bernoulli() | bernoulli(pi) |
||||
| binomial() | binom(n, pi) |
||||
| categorical() | — | — | (multinomial(1, pi)) |
||
| Poisson() | poisson(lam) |
||||
| geometric() | geom(pi) |
연속 분포(11.2). 밀도는 정규화 상수를 생략했다. 지수분포와 gamma의 , 는 rate이고, SciPy는 scale 를 받는다.
| 분포 | 값 | 밀도 (상수 생략) | 평균 | 분산 | scipy.stats |
|---|---|---|---|---|---|
| uniform() | uniform(loc=a, scale=b-a) |
||||
| Gaussian() | norm(mu, sigma) |
||||
| exponential() | expon(scale=1/lam) |
||||
| gamma() | gamma(a=alpha, scale=1/beta) |
||||
| beta() | beta(a, b) |
||||
| Student-t() | () | () | t(df=nu) |
||
| log-normal() | lognorm(s=sigma, scale=exp(mu)) |
||||
| Laplace() | laplace(mu, b) |
지수족(11.2, 12.2). 이면 , 이고, 최대우도 조건은 (모멘트 맞추기)다.
| 분포 | 자연 파라미터 | ||
|---|---|---|---|
| Bernoulli() | (logit) | ||
| categorical() | one-hot 벡터 | ||
| Poisson() | |||
| Gaussian() |
켤레 사전분포(13.2). 사후분포가 사전분포와 같은 분포족에 머무는 쌍이다.
| 우도 | 사전분포 | 사후분포 |
|---|---|---|
| Bernoulli·binomial (번 중 번 성공) | ||
| Poisson (노출 동안 건) | (shape, rate) | |
| Gaussian (분산 앎, 개, 평균 ) | , , | |
| 선형회귀 | , , |
베이지안 선형회귀의 예측분포는 이다. 첫 항이 관측 잡음(aleatoric), 둘째 항이 가중치 불확실성(epistemic)이다. 주변우도는 이다.
통계적 추론
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 표본 평균의 표준오차 | , | 독립 | 12.1 |
| 편향과 MSE | 12.1 | ||
| 표본 분산 | 로 나누면 불편. np.var의 기본은 (ddof=0) |
12.1 | |
| Fisher 정보 | 정칙 조건 | 12.1 | |
| Cramér–Rao 하한 | 불편추정량, i.i.d. | 12.1 | |
| 점근 정규성 | MLE는 정칙 조건에서 | 12.1 | |
| 최대우도 | 독립 관측 | 12.2 | |
| MAP | 가우시안 사전분포는 L2 정규화와 같다 | 12.2 | |
| 가우시안 NLL | 고정이면 MSE와 같은 최소점 | 12.3 | |
| 신뢰구간의 정의 | 모든 에 대해. 구간이 확률변수다 | 12.4 | |
| 통계량 | 정규 모집단 | 12.4 | |
| 검정력과 표본 수 | 검정력 , | 두 집단, 집단당 , | 12.4 |
| 가족별 오류율 | 독립인 개 검정. Bonferroni는 각 검정을 으로 | 12.4 | |
| 비선형 최소제곱 추정의 공분산 | 잡음 정규·등분산, 해 근처에서 거의 선형 | 10.5 |
최적화
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 경사하강 | 10.3 | ||
| 이차 함수에서의 안정 조건 | , | 넘으면 가장 가파른 방향으로 발산 | 10.3 |
| 수렴 속도와 조건수 | 축소율 , | 강볼록 이차 함수, | 10.3, 9.2 |
| 하강 보조정리 | -smooth, | 10.3 | |
| Armijo 조건 | backtracking line search, | 10.3 | |
| SGD | mini-batch 크기 | 10.3 | |
| Robbins–Monro 조건 | , | 학습률 감쇠의 근거 | 10.3 |
| heavy ball momentum | , | Nesterov는 gradient를 에서 계산 | 10.3 |
| Newton 방법 | , | 해 근처에서 이차 수렴 | 10.5 |
| Gauss–Newton | , | 10.5 | |
| Levenberg–Marquardt | 가 크면 경사하강, 작으면 Gauss–Newton | 10.5 | |
| Lagrangian | 제약 , | 10.2 | |
| KKT 조건 | , , , , | 정상성·원 실행 가능성·쌍대 실행 가능성·상보 여유 | 10.2 |
| 쌍대 함수 | 이면 항상 하한(약한 쌍대성) | 10.2 | |
| 승수의 민감도 | 제약 에 승수 를 붙여 Lagrangian에 더할 때 | 10.2 | |
| 투영 경사하강 | 볼록 집합 위로의 사영 | 10.2 | |
| 근위 연산 | L1이면 soft thresholding | 10.2 |
Adam과 AdamW(10.4). gradient 의 1차·2차 모멘트를 지수이동평균으로 추적하고 초기 편향을 보정한다. 제곱과 나눗셈은 성분별이다.
마지막 항()이 AdamW의 decoupled weight decay다. 이 항을 빼면 Adam이다. Adam에 L2 항 을 손실에 더하는 것은 이것과 같지 않다(그 gradient가 적응적 분모로 나뉘기 때문이다).
정보이론
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 엔트로피 | 자연로그면 nat, 면 bit. | 14.1 | |
| 미분 엔트로피 | 음수일 수 있다 | 14.1 | |
| 교차엔트로피 | 를 고정하고 에 대해 최소화하면 KL 최소화와 같다 | 14.1 | |
| KL divergence | 비대칭. 인 곳에서 이면 . 로 쓰는 문헌도 같은 뜻이다 | 14.1 | |
| Jensen–Shannon | , | 대칭, | 14.1 |
| -divergence | 볼록, . 이면 KL | 14.1 | |
| 상호정보량 | 14.2 | ||
| 데이터 처리 부등식 | 가 만 보고 만들어질 때() | 14.2 | |
| 가우시안 엔트로피 | 같은 공분산의 분포 중 최대 | 14.1 | |
| 일변수 가우시안 KL | 14.1 | ||
| 다변량 가우시안 KL | , 차원 | 14.1 | |
| VAE의 KL 항 | 위 식의 특수한 경우 | 19.3 | |
| ELBO | KL 이므로 ELBO는 하한 | 13.6 |
수치해석
| 이름 | 공식 | 조건·메모 | 장 |
|---|---|---|---|
| 부동소수점 값 | 정규수 | 9.1 | |
| 반올림 모델 | , | float64 , float32 | 9.1 |
| 뺄셈의 상대 오차 | 이면 증폭(파국적 상쇄) | 9.1 | |
| log-sum-exp | , | overflow·underflow 방지 | 9.1 |
| 선형계의 조건수 | , | 2-노름이면 | 9.2 |
| 오차와 안정성 | forward error backward error | backward stable 알고리즘이 기대할 수 있는 최선 | 9.2 |
| 전처리 | 이고 역 적용이 쉬움 | 9.2 | |
| Newton 반복(스칼라) | , | 단순근 근처에서 이차 수렴 | 9.4 |
| Newton 반복(연립) | 9.4 | ||
| 다항식 보간 오차 | 등간격 고차 보간은 Runge 현상 | 9.5 | |
| 구적 규칙 | 사다리꼴 , Simpson | 9.5 | |
| 수렴 차수 측정 | 격자를 반으로 줄여 오차 비를 잰다 | 9.5 | |
| 차원의 저주 | 격자 규칙 오차 , Monte Carlo 오차 | 점 개, 차원 | 9.5 |
| 유한차분 | 전진 , 중심 | 가 너무 작으면 반올림 오차가 커진다 | 8.4 |
| 2계 중심차분 | 9.7 | ||
| 전진 Euler | 1차, 명시적 | 9.6 | |
| 후진 Euler | 1차, 암시적. stiff 문제에 쓴다 | 9.6 | |
| 적응 step의 허용오차 | solve_ivp의 국소 오차 기준 |
9.6 | |
| FTCS 안정 조건 | 열방정식 의 명시적 스킴. 9.7장은 확산계수를 로 쓴다 | 9.7 | |
| CFL 조건 | 속도 의 이류 방정식, 명시적 스킴 | 9.7 |
고전적 4단 Runge–Kutta(RK4)(9.6). 4차 방법이다.
실습
이 부록의 공식은 손으로 외우는 대상이 아니라 검증해서 쓰는 대상이다. 다음 작업으로 공식을 자기 코드에서 믿을 수 있게 만든다.
- 행렬 미분 항등식을 수치로 확인한다. '미분과 행렬 미분' 표에서 세 개를 골라, 무작위 행렬에서 중심차분 gradient와 공식의 값을 비교한다. 상대 오차가 float64에서 아래인지 본다. 대칭이 아닌 로 이차형식을 시험해 와 의 차이를 직접 확인한다.
- 가우시안 조건부 공식을 표본으로 확인한다. 3차원 가우시안에서 표본을 많이 뽑고, 가 특정 값 근처인 표본만 골라 의 표본 평균·공분산을 조건부 공식과 비교한다.
- 분포의 parameterization을 맞춘다. 지수분포 rate 와 gamma(, rate )를
scipy.stats로 만들고.mean(),.var()가 표의 값과 같은지 확인한다. 같지 않으면 rate와 scale을 바꿔 넣은 것이다. - 가우시안 KL의 닫힌 형태를 Monte Carlo로 확인한다. 를 표본 평균으로 추정해 닫힌 형태와 비교하고, 와 를 바꿔 비대칭을 본다.
실패 사례
- 다른 layout의 공식을 그대로 옮기는 것. gradient를 행벡터로 쓰는 교재나 Jacobian을 (입력 × 출력)으로 쓰는 denominator layout 교재의 공식을 그대로 옮기면 전치가 하나씩 어긋난다. 옮긴 공식은 shape부터 맞춰 보고, 유한차분으로 한 번 검증한다(8.2).
- 이차형식 gradient를 대칭이라고 가정하는 것. 는 가 대칭일 때만 맞다. 비대칭 행렬이 들어오는 코드에서는 조용히 틀린 gradient가 된다.
- rate와 scale을 바꿔 넣는 것. 지수분포·gamma의 rate 를 SciPy의
scale에 넣으면 평균이 대신 가 된다. 표준편차와 분산(norm(mu, sigma)는 분산이 아니라 표준편차를 받는다)도 같은 종류의 실수다. - KL의 방향을 바꿔 쓰는 것. 와 는 값도 최적해의 성질도 다르다. MLE는 forward KL, 변분추론은 reverse KL을 줄인다(14.1).
- nat와 bit를 섞는 것. 엔트로피·상호정보량을 비교할 때 한쪽은
np.log, 다른 쪽은np.log2로 계산하면 배 차이가 난다. - 역행렬과 행렬식을 그대로 계산하는 것. 정규방정식의 은 조건수를 제곱하고, 고차원 는 overflow·underflow한다. 공식은 수학적 관계이고, 계산은
solve, Cholesky,slogdet로 한다(9.3). - 가정을 떼고 공식을 쓰는 것. Hoeffding은 유계와 독립, 구간은 정규 모집단, Cramér–Rao는 불편추정량과 정칙 조건이 필요하다. 표의 '조건' 열을 함께 옮긴다.
통과 기준
- 표에서 고른 행렬 미분 항등식 세 개를 유한차분으로 검증하는 짧은 코드를 작성했고, 상대 오차가 아래다.
scipy.stats로 만든 지수분포·gamma의 평균과 분산이 분포 표의 값과 일치한다.- 두 일변수 가우시안의 KL을 닫힌 형태와 Monte Carlo로 계산해 Monte Carlo 표준오차 범위 안에서 일치함을 보였다.