자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 비대칭도를 ln Z의 세 번째 미분 그대로 놓아 부호가 뒤집힘 | 1 | −β를 변수로 보면 미분할 때마다 평균, 분산, 비대칭도. 비대칭도는 −∂³ln Z/∂β³ |
| 온도가 높아 흔들림이 크면 분포도 더 기운다고 봄 | 1 | 분산은 퍼진 폭, 세제곱의 평균은 기운 정도. p = 1/2이면 대칭이라 0 |
| 받은 에너지에 질량과 비열을 곱해 오른 온도를 구함 | 2 | 오른 온도 = 에너지 ÷ (질량 × 비열). 단위로 확인한다 |
| 온도를 올릴수록 열용량도 계속 커진다고 봄 | 3 | 준위가 몇 개뿐이면 높은 온도에서 평균 에너지가 포화되어 C → 0. 봉우리는 kT ≈ 0.42ε |
| 분산이 가장 큰 온도에서 열용량도 가장 크다고 봄 | 3 | C = Var(E)/kT². 온도의 제곱으로 나눈다 |
| softmax 로짓의 분산을 로짓을 똑같이 쳐서 냄 | 4 | 볼츠만 분포의 분산이므로 softmax 확률로 평균한다. ∂H/∂ln τ = Var_p(z)/τ² |
| 에너지의 흔들림이 자라니 껍질도 두꺼워진다고 봄 | 5 | 반지름으로 재면 표준편차는 차원과 상관없이 약 1/√2, 반지름에 대한 비율은 1/√(2d) |
| 한 번에 하나만 1이 되는 표시끼리 공분산을 0으로 봄 | 6 | 하나가 1이면 나머지는 0이라 공분산은 −pᵢpⱼ. 합이 늘 1이면 합의 분산은 0 |
| 매개변수가 일차식이 아닐 때도 ln Z의 헤시안을 공분산으로 봄 | 7 | 일반식에는 −⟨∂²E/∂θ∂θ⟩ 항이 더 붙는다. 일차식일 때만 0 |
| 라벨 스무딩처럼 정답이 섞이면 헤시안에 정답이 남는다고 봄 | 8 | 목표의 합이 1이면 −Σqᵢzᵢ는 일차식, ln Z의 계수는 1. 헤시안은 diag(p) − ppᵀ |
| softmax의 헤시안을 그대로 역행렬로 씀 | 8 | (1, …, 1) 방향은 흔들림도 곡률도 0. 기준 로짓을 고정하거나 의사역행렬을 쓴다 |
| 표본 하나의 (값 − 평균)²을 분산으로 씀 | 9 | 분산은 분포 전체로 평균한 값이다 |
| 정답 라벨로 구한 기울기 제곱을 Fisher 정보로 씀 | 10 | 평균은 모델이 스스로 뽑은 라벨로 낸다. 요동은 모델 자신의 것이다 |
| 매개변수를 같은 만큼 움직이면 분포도 같은 만큼 바뀐다고 봄 | 11 | KL ≈ ½δᵀ𝓘δ. 𝓘가 작은 곳에서는 같은 걸음이 분포를 거의 바꾸지 않는다 |
| 흔들림이 작은 온도계가 정확하다고 봄 | 12 | 흔들림이 없으면 응답도 없다. 역온도에 대한 Fisher 정보는 Var(E) |
| 흔들림이 가장 큰 온도계가 정확하다고 봄 | 12 | 온도의 상대 오차는 1/√(C/k). 열용량이 큰 곳이 가장 정확하다 |
요약
ln Z를 역온도로 한 번 미분하면 평균 에너지가, 두 번 미분하면 에너지의 분산이 나온다. 같은 2차 미분은 역온도를 조금 바꿨을 때 평균 에너지가 움직이는 비율이기도 하므로, 에너지가 저절로 흔들리는 정도(요동)와 온도에 반응하는 정도(응답)는 같은 양이다. 온도에 대한 응답을 열용량이라 하며, 요동-응답 관계는 C = Var(E)/kT²으로 적는다. 분산은 음수가 아니므로 ln Z는 볼록하고, 흔들리지 않는 방향으로는 ln Z가 곧은 선이 된다. 열용량과 평균 에너지가 모두 계의 크기에 비례하므로 상대적인 흔들림은 1/√N으로 줄고, ln Z와 가장 큰 항의 차이 ½ ln(2π × 분산)은 이 흔들림이 만드는 봉우리 폭의 로그다. 온도 대신 에너지 함수의 매개변수를 바꾸면, 매개변수가 에너지에 일차식으로 들어갈 때 ln Z의 헤시안은 에너지 기울기의 공분산이 되고(일차식이 아니면 2차 미분의 평균이 한 항 더 붙는다), 모델이 스스로 뽑은 샘플에서 잰 스코어의 공분산인 Fisher 정보는 에너지가 매개변수의 일차식일 때 ln Z의 헤시안과 같다. ML에서는 교차 엔트로피의 로짓 헤시안이 정답과 상관없이 원-핫의 공분산 diag(p) − ppᵀ이고, 자연 기울기는 Fisher 정보로 잰 분포 공간의 거리에서 가장 가파른 방향이며, EWC가 1차 미분만으로 곡률을 재는 근거가 요동-응답 관계다. 그 흔들림은 데이터 라벨이 아니라 모델이 뽑은 라벨에서 재야 하고, 추정의 정밀도는 크라메르–라오 부등식 Var(θ̂) ≥ 1/(n𝓘)대로 Fisher 정보, 곧 흔들림의 크기가 정한다.
막힌 곳
이제 에너지 함수만 주어지면 ln Z 하나에서 평균과 흔들림과 응답을 모두 꺼낼 수 있다. 한 번 미분하면 평균이, 두 번 미분하면 분산과 열용량과 Fisher 정보가 나오고, 그 분산이 매개변수를 얼마나 정확히 잴 수 있는지까지 정한다. 그런데 그 에너지 함수는 어디서 왔는가? 물리에서는 열원과 맞닿은 계의 경우의 수를 세어 e^(−βE)라는 모양을 얻었지만, ML 모델 곁에는 열원이 없다. 우리는 E_θ(x) = θx²/2라는 모델을 데이터 {−2, −1, 1, 2}에 맞췄고, 최대우도의 답은 모델의 x² 평균을 데이터의 x² 평균 2.5에 맞추는 것이었다. 데이터에서 모델로 넘어간 것은 x²의 평균 하나뿐이고, 데이터의 봉우리가 몇 개였는지, 꼬리가 얼마나 두꺼웠는지는 모델에 전혀 들어가지 않았다. softmax도, 지수족도, 에너지 기반 모델도 모두 e^(−에너지) 모양을 하고 있는데, 몇 가지 평균만 알고 그 밖에는 아무것도 가정하고 싶지 않을 때 고를 분포가 왜 하필 이 모양이어야 할까? 그리고 그 평균을 맞추려고 조정한 매개변수가 역온도와 같은 자리에 서는 것은 우연일까?