자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 처음과 끝 잔고(에너지)의 차이를 한쪽 몫으로만 적음 | 1, 9 | 바깥에서 바꾼 순간의 변화(일)를 따로 적어 둔다. 나머지가 열이다 |
| 일을 잴 때 움직인 뒤의 위치를 씀 | 2 | κ를 바꾸는 순간의 위치로 잰다. 제1법칙은 합만 확인해 준다 |
| 평형이 아닌 분포에서 출발해도 등식이 맞는다고 봄 | 3 | 처음 위치는 평형 분포에서 뽑아야 한다. 움직임이 분포를 지키는 것과 함께 두 조건이다 |
| 정규화 전 점수로 만든 가중치를 그대로 평균함 | 4 | 가중치의 평균은 정규화 상수의 비다. 가중치의 합으로 나눠 평균한다 |
| 한 번에 서두르기를 여러 번으로 나누면 소산도 그만큼 는다고 봄 | 5 | 나눌수록 한 번에 평형에서 벗어나는 폭이 줄어 소산이 준다 |
| 다른 덫의 ΔF를 그대로 가져다 씀 | 6 | ΔF는 두 덫의 분배함수 비로 그때마다 구한다 |
| 𝒲 < ΔF인 경로를 제2법칙 위반으로 봄 | 6 | 제2법칙은 평균에 대한 부등식이다. 작은 계에서는 그런 경로가 흔하다 |
| 거꾸로 간 일의 부호를 바꾸지 않고 앞으로 간 일과 섞음 | 7 | 거꾸로 간 일은 부호를 바꿔 견준다. ΔF는 두 평균 사이에 있다 |
| 두 평균의 가운데를 늘 ΔF로 봄 | 7 | 가운데 어림은 두 분포가 정규분포일 때만 맞는다. 두 분포가 만나는 자리는 늘 ΔF다 |
| 분포를 정확히 지키지 않는 움직임을 씀 | 8 | 평형에 이를 필요는 없지만 평형을 지켜야 한다. 수락 단계를 붙인다 |
| 처음과 끝의 에너지 차이를 일로 적음 | 9 | 일은 샘플을 둔 채 분포만 바꾼 순간의 에너지 변화다. 움직이며 바뀐 몫은 열이다 |
| 가중치의 평균을 보지 않고 보정한 값을 믿음 | 10 | 가중치 평균이 1보다 작으면 샘플이 한 개도 없는 곳이 있다 |
| 가중치를 단 샘플 수를 그대로 믿음 | 10 | 유효 표본 수로 고르게 뽑은 몇 개의 몫인지 잰다 |
| 목표를 다 덮지 못하는 출발 분포 | 11 | 가중치는 없는 샘플을 만들지 못한다. 가중치의 평균이 Z의 비와 맞는지 확인한다 |
| 걸음 없이 수준만 촘촘히 놓음 | 11 | 샘플이 움직이지 않으면 수준을 몇 개 놓든 곧장 건너는 가중치와 같다 |
| 드문 큰 값이 끌어올린 평균을 몇 번 재서 그대로 믿음 | 12, 13 | 한 번 재서 나오는 값은 거의 늘 기댓값보다 작다 |
| 가중치 몇 개로 낸 ln⟨e^(−𝒲)⟩를 그대로 믿음 | 13, 14 | 로그를 씌우면 아래로 치우친다. 사슬 수와 유효 표본을 함께 본다 |
| 확률을 직선으로 섞는 중간 분포 | 14 | 정규화된 목표가 필요하다. 에너지를 섞는 p₀^(1−λ)p̃₁^λ를 쓴다 |
요약
평형에서 출발해 바깥 매개변수를 바꾸며 계를 끌고 가면, 매개변수를 바꾸는 순간 샘플이 있던 자리의 에너지 변화가 일 𝒲이고 샘플이 움직이며 바뀐 에너지가 열이다. 일의 평균은 자유에너지 차이보다 크지만(제2법칙), 어떤 빠르기로 바꾸든 ⟨e^(−β𝒲)⟩ = e^(−βΔF) = Z₁/Z₀가 정확히 성립한다(야르진스키 등식). 조건은 출발이 평형 분포에서 뽑힌 것과 움직임이 그때의 평형 분포를 지키는 것뿐이다. 앞으로 간 일의 분포와 거꾸로 간 일의 분포는 ΔF에서 만난다(크룩스 정리). 끝에서 샘플마다 e^(−β𝒲)를 달면 뒤처진 샘플들이 목표 분포를 정확히 나타내는데, 이것이 AIS다. 가중치가 고르지 않은 정도는 유효 표본 수로 재고, 사다리를 촘촘히 놓고 그 사이를 걸으면 가중치가 고르게 된다. 소산된 일의 평균은 앞으로 간 경로와 거꾸로 밟는 경로 사이의 KL 발산이고, 로그 가중치의 평균은 경로 공간의 ELBO라서 ln Z의 추정은 아래로 치우친다. 제한 볼츠만 머신의 로그우도 평가, IWAE, 확산 모델의 학습 목표가 모두 이 계산 위에 서 있다.
막힌 곳
이제 평형을 기다리지 않고 끌고 다닌 샘플로도 Z의 비를 정확히 얻을 수 있다. 분포를 바꾸는 순간마다 한 일을 기록해 e^(−β𝒲)를 가중치로 달면 뒤처진 샘플들이 목표 분포를 나타내고, 그 가중치의 평균이 Z₁/Z₀다. ln Z의 추정이 아래로 치우치는 것은 로그의 평균이 평균의 로그보다 작기 때문이고, 그 틈은 드문 경로가 큰 가중치를 가져갈수록 커진다.
그런데 이 장에서는 에너지 함수가 하나로 정해져 있었다. 홉필드 네트워크에 무작위로 뽑은 패턴을 저장하거나 신경망을 무작위로 뽑은 데이터로 학습하면, 에너지를 정하는 결합 계수 자체가 무작위로 뽑히고 뽑을 때마다 Z가 달라진다. 이때 알고 싶은 것은 전형적인 계 하나의 ln Z, 곧 결합을 뽑을 때마다 구한 ln Z의 평균이다. 그런데 결합을 여러 번 뽑아 Z를 먼저 평균한 뒤 로그를 씌우면, 이 장에서 가중치의 평균이 드문 경로에 끌려갔듯 드물게 뽑히는 결합 몇 개에 끌려갈 수 있다.
평균 Z는 결합에 대한 가우스 적분이라 손으로 계산되지만, 우리가 원하는 것은 로그를 먼저 씌운 ln Z의 평균이다. 로그의 평균을 계산하는 방법이 있을까? 그리고 온도를 낮출수록 두 값이 벌어진다면, 무작위 결합이 만든 에너지 지형에서는 어떤 변화가 일어나고 있는 것일까?