자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 곱 분포의 평균을 참 평균에 맞추면 된다고 봄 | — | 참 평균은 계산할 수 없다. 계산할 수 있는 기준은 F[q], 곧 D_KL(q‖p)이고 그 최선은 참값보다 한쪽으로 쏠린다 |
| 함께 나올 확률을 각자 비율의 곱으로 계산 | 1 | 공통 원인이 있으면 공분산이 빠진다. 공통 원인으로 먼저 나누어 계산한다 |
| KL을 더하는 항 가운데 음수가 있으면 계산이 틀렸다고 봄 | 2 | 0 이상인 것은 합이다. q가 p보다 작은 자리의 항은 음수일 수 있다 |
| 결합이 있으면 한쪽으로 기울인 곱 분포가 늘 낫다고 봄 | 2 | 결합이 약하면 기울여서 얻는 결합 에너지보다 잃는 엔트로피가 크다 |
| 편향이 0인 스핀은 아래를 향한다고 봄 | 3 | 편향이 0이면 위와 아래가 반반이라 평균이 0이다 |
| 평균을 tanh 안에 넣으면 값이 작아진다고 봄 | 3 | 그 방향은 아래로 볼록한 함수일 때다. tanh는 양수 쪽에서 위로 볼록해서 안에 넣은 값이 더 크다 |
| 평균장 방정식을 0에서 출발해 풀고 해가 0뿐이라고 봄 | 4 | 0은 언제나 해다. 다른 해는 다른 곳에서 출발해 찾고, F[q]로 견준다 |
| 0 근처에서 편 어림을 해가 큰 곳까지 씀 | 4 | m² ≈ 3(βJ − 1)은 m이 작을 때만 맞는다 |
| 모든 변수의 평균을 한꺼번에 갱신 | 5, 6 | 상대의 옛 값에 맞추느라 엇갈린다. 하나씩, 또는 서로 직접 묶이지 않은 변수끼리 갱신해야 F[q]가 줄기만 한다 |
| 자기 일관 방정식의 해면 모두 가장 나은 곱 분포라고 봄 | 6 | m = 0 같은 해는 안장점일 수 있다. F[q]를 비교해 가장 낮은 해를 고른다 |
| 평균의 흔들림을 한 사람의 흔들림과 같게 보거나, 사람 수로 나눔 | 7 | 평균의 표준편차는 한 사람의 표준편차를 √N으로 나눈 값이다 |
| 평균장이 정확한 모형에서는 ln Z의 틈 전체가 0으로 간다고 봄 | 8 | 0으로 가는 것은 스핀 하나당 틈이다. 버린 요동의 몫이 상수로 남는다 |
| 이웃끼리 거의 같은 방향이면 줄 전체가 한 방향이라고 봄 | 9 | 바뀌는 자리가 드물어도 줄이 길면 여러 번 바뀐다. 멀리 떨어진 둘의 관계는 거리에 따라 지수적으로 흐려진다 |
| 평균장이 자화를 내놓으면 상전이가 있다고 봄 | 10 | 이웃이 적으면 평균장은 없는 질서를 만든다. 자유에너지의 틈이 작아도 고른 상태는 전혀 다를 수 있다 |
| D_KL(p‖q)와 D_KL(q‖p)를 같은 기준으로 봄 | 11 | q로 평균 내는 쪽은 p가 작은 곳을 피해 좁아지고 한 봉우리를 고른다. p로 평균 내는 쪽은 계산할 수 없다 |
| VAE의 틈을 인코더의 크기 탓으로 봄 | 12 | 인코더를 키워 줄어드는 것은 일부다. 사후분포에 상관이 있으면 대각 정규분포라는 모임의 한계 때문에 틈이 남는다 |
| 음의 단계의 ⟨sᵢsⱼ⟩를 mᵢmⱼ로 바꿔 학습 | 13 | 공분산이 0이 되어 멈출 곳이 없고, 평균장은 한 봉우리만 본다. 선형 응답으로 공분산을 되찾는다 |
| 숨은 유닛이 있어도 선형 응답으로 결합을 한 번에 구할 수 있다고 봄 | 13 | 숨은 유닛의 평균과 상관은 데이터에서 셀 수 없다. 두 단계에 근사를 쓰고 경사 하강을 되풀이한다 |
요약
계산할 수 없는 볼츠만 분포 p를 대신할 분포는 계산할 수 있는 분포의 모임 안에서 자유에너지 F[q] = ⟨E⟩_q − kT H(q)가 가장 낮은 것으로 고른다. F[q] − F = kT × D_KL(q‖p) ≥ 0이므로 이 값은 참 자유에너지의 위쪽 한계, 곧 ln Z의 아래쪽 한계이고, Z를 몰라도 계산할 수 있다. 모임을 서로 독립인 변수들의 곱 분포로 잡은 것이 평균장 근사이며, 이징 모형에서는 각 스핀의 평균 방향이 나머지 스핀들의 평균이 만드는 편향에 반응한다는 자기 일관 방정식 mᵢ = tanh(β(bᵢ + ΣⱼJᵢⱼmⱼ))가 된다. 이웃의 흔들림을 평균값 하나로 굳히므로 평균장은 질서를 과대평가해 임계 온도를 높게 잡고(2차원 격자에서 4J 대 2.269J, 1차원에서는 없는 상전이), 이웃이 많아 평균장이 덜 흔들릴수록 정확해져 모든 쌍을 묶은 모형에서는 스핀 하나당 값이 정확해진다. KL을 q 쪽에서 재므로 q는 참 분포보다 좁아지고 봉우리가 여럿이면 하나만 덮는다. ML에서 같은 최소화는 ELBO를 키우는 변분 추론이고, 곱 분포를 쓰는 평균장 변분 추론은 인자를 하나씩 ln qᵢ = ⟨ln p⟩_(나머지) + 상수로 바꾸는 좌표 상승으로 푼다. 사후분포의 분산을 과소평가하는 것과 대각 정규분포를 쓰는 VAE의 틈이 인코더를 키워도 남는 것은 이 구조에서 나온다. 피터슨과 앤더슨은 볼츠만 머신의 음의 단계를 평균장으로 대신했지만 평균의 곱에는 공분산이 없고, 요동과 응답의 관계를 평균장 해에 적용한 선형 응답이 버린 공분산을 근사해 되찾는다.
막힌 곳
이제 계산할 수 없는 볼츠만 분포를 무엇으로 대신할지 말할 수 있다. 계산할 수 있는 분포의 모임 안에서 F[q]를 가장 낮추면 그 값은 참 자유에너지의 위쪽 한계가 되고, 곱 분포라면 변수마다 나머지의 평균이 만드는 편향, 곧 평균장에 반응하는 자기 일관 방정식이 된다. 이웃이 많을수록 정확하고, 이웃이 적으면 질서를 과대평가하며, 버린 상관은 평균의 응답에서 되찾을 수 있다.
그런데 지금까지 다룬 것은 모두 계가 결국 머무는 분포였다. 평균장 방정식을 되풀이해 푸는 일은 답을 찾는 계산 절차일 뿐, 실제 자석이 시간에 따라 어떻게 바뀌는지를 말해 주지는 않는다. 그래도 한 가지 실마리는 있다. 2차원 격자에서 평균장의 임계 온도 kT = 4J에 두고 갱신 규칙을 0 근처에서 펴면, tanh(βJ × 이웃 넷의 합)이 이웃 넷의 평균이 된다. 한 칸의 값을 이웃 넷의 평균으로 바꾸는 일을 되풀이하는 셈이다. 한 칸에만 1을 두고 이 평균 내기를 되풀이하면 값은 얼마나 빨리, 어떤 모양으로 퍼져 나갈까? 그리고 이 규칙을 연속인 공간과 시간에서 쓰면, 한쪽 끝을 달군 쇠막대에서 열이 퍼져 나가듯 계가 고르게 되어 가는 과정을 어떤 방정식으로 적을 수 있을까?