자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 거리를 두 배로 가려면 걸음도 두 배면 된다고 봄 | 1 | 걸음 수에 비례하는 것은 거리의 제곱이다. 두 배 멀리 가려면 네 배 걷는다 |
| 평균 걸음 길이를 제곱해 거리 제곱이 쌓이는 양으로 씀 | 2 | 걸음마다 더해지는 것은 걸음 길이 제곱의 평균이다 |
| 걸음이 서로 닮아도 거리 제곱의 평균이 걸음 수와 같다고 봄 | 2 | 평균 이동 0과 독립, 두 조건이 다 있어야 교차항이 사라진다 |
| 흔들리는 양의 변화를 간격으로 나눈 값을 하나의 빠르기로 봄 | 3, 4 | 변화가 간격의 제곱근에 비례해 잰 값이 간격에 따라 변한다. 변화의 제곱 평균 2DΔt를 잰다 |
| 독립인 잡음을 이어 더할 때 표준편차를 더함 | 5 | 독립이면 분산이 더해진다. 표준편차가 더해지는 것은 같은 잡음을 되풀이할 때다 |
| 끌림이 흔들림의 두 배가 되는 기간을 같아지는 기간의 두 배로 봄 | 6 | 끌림 ∝ n, 흔들림 ∝ √n이므로 비율을 두 배로 하려면 기간은 네 배다 |
| 열속도와 현미경으로 잰 속도 가운데 하나가 틀렸다고 봄 | 7 | 운동량은 m/ζ 만에 잊힌다. 그보다 긴 간격으로 재면 브라운 운동으로 보인다 |
| 한 걸음의 잡음이 기울기 이동보다 크면 내리막으로 못 간다고 봄 | 8 | 걸음이 쌓이면 끌림이 이긴다. 잡음이 √(2η)이면 시간으로 잰 따라잡는 때는 걸음 크기와 상관없다 |
| 잡음을 끄고 흐름 속도로만 옮기면 분포가 퍼지지 않는다고 봄 | 9 | 흐름 속도는 자리마다 달라 분포가 똑같이 퍼진다. 다른 것은 입자 하나하나의 길이다 |
| 힘이 계속 당기면 결국 모두 바닥으로 모인다고 봄 | 10 | 끌려가는 흐름과 퍼지는 흐름이 비기는 분포 e^(−U/(ζD))에서 멈춘다 |
| 확산 계수와 마찰 계수를 따로 정할 수 있다고 봄 | 10, 17 | 온도 T에서는 D = kT/ζ. 곱 ζD가 샘플러의 온도가 된다 |
| 시간을 잘게 쪼갤 때 흔들림의 표준편차도 시간에 비례해 줄임 | 11 | 독립인 흔들림은 분산이 더해진다. 표준편차는 시간의 제곱근에 비례해 줄인다 |
| 온도를 바꾸려고 잡음의 표준편차에 온도 비율을 곱함 | 12 | 온도는 σ²/(2a)로 σ²에 비례한다. 온도를 10분의 1로 하려면 σ는 1/√10배 |
| 미니배치 기울기의 잡음이면 샘플러가 된다고 봄 | 13 | 기울기 오차는 η배 되어 온도가 η/2쯤이다. 걸음을 줄이면 식는다 |
| 논문이 적은 식대로 샘플러가 온도 1에서 뽑는다고 봄 | 13 | 실제로 쓴 걸음과 잡음으로 σ²/(2a)를 계산해 읽는다 |
| h번 연속 성공을 기다리는 횟수를 1/(성공 확률)로 셈 | 14 | 중간에 끊기면 처음부터 다시 센다. 평균 2^(h + 1) − 2번으로 h에 지수다 |
| 짧은 사슬 여러 개의 봉우리 비율을 믿음 | 15 | 장벽을 넘는 시간이 e^(장벽/kT)로 길다. 잡음 수준을 낮춰 가는 담금질 랑주뱅이나 긴 사슬을 쓴다 |
| 빠져나가는 비율이 다른 곳의 유입 규칙을 그대로 씀 | 16 | 멈추는 곳은 들어오는 양 ÷ 나가는 비율이다. 나가는 비율이 0.1배면 들어오는 양도 0.1배 |
| 모멘텀이 있는 샘플러에 SGLD의 잡음을 그대로 넣음 | 17 | 잡음의 분산은 2 × 마찰 × 걸음 × kT. 모멘텀 계수 μ면 마찰은 1 − μ |
| 미니배치 기울기가 이미 넣는 잡음을 빼지 않고 짝 잡음을 그대로 더함 | 17 | 운동량에 들어오는 잡음은 어디서 오든 모두 센다. 짝 잡음에서 미니배치 몫을 뺀다 |
| 잡음만 넣거나 마찰만 남김 | 18 | 잡음만 있으면 데워지고 마찰만 있으면 식는다. 둘을 짝으로 넣는다 |
| 역방향 SDE를 확률 흐름 ODE에 잡음만 붙인 것으로 봄 | 18 | 스코어 하나와 잡음 √2 dB가 p_t를 바꾸지 않는 랑주뱅 쌍이다. 쌍으로 넣고 쌍으로 뺀다 |
요약
잡음을 조금씩 더해 가는 샘플 하나는 브라운 운동을 따른다. 시간 Δt마다 평균 0, 한 축 분산 2DΔt인 독립 변위가 더해지므로 거리의 제곱이 시간에 비례해 쌓이고, 길은 이어져 있지만 어디서도 속도가 없다. 이런 샘플을 많이 모은 분포는 이웃 평균, 곧 열 방정식을 따르는데, 동전으로 걷는 사람이 칸 x에 있을 확률이 이웃 네 칸 확률의 평균이라는 것이 그 이유다. 힘 −∇U를 더하면 랑주뱅 방정식 dx = −(∇U/ζ)dt + √(2D) dB가 되어, 끌려간 거리는 시간에 비례하고 흔들림은 시간의 제곱근에 비례한다. 그 분포는 끌려가는 흐름 −∇U/ζ와 퍼지는 흐름 −D∇ln ρ를 더한 속도로 흐르는 포커–플랑크 방정식을 따르고, 입자를 잡음 없이 그 흐름 속도로만 옮겨도 분포는 똑같이 흐른다. 두 흐름이 비기는 분포는 e^(−U/(ζD))이고, 이것이 온도 T의 볼츠만 분포이려면 아인슈타인 관계 D = kT/ζ가 성립해야 한다. 한 걸음에 x ← x − a∇U + σz로 움직이는 샘플러는 온도 σ²/(2a)의 볼츠만 분포를 향하고, 골짜기 사이 장벽을 넘는 데는 e^(장벽 높이/kT)에 비례하는 시간이 걸린다. 관성을 되살린 언더댐프드 랑주뱅 방정식은 해밀턴 흐름에 마찰 −(ζ/m)p와 잡음 √(2ζkT) dB를 더한 것이고, 마찰이 빼내는 에너지와 잡음이 넣는 에너지가 운동에너지 kT/2에서 비긴다. 마찰이 있는 곳에는 그 마찰과 온도로 크기가 정해진 잡음이 있다는 이 관계가 요동-소산 정리이고, 저항기의 존슨–나이퀴스트 잡음도 그 예다. ML에서는 SGLD의 √(2η), 에너지 기반 모델 샘플러의 실제 온도 σ²/(2a), 담금질 랑주뱅이 잡음으로 메우는 골짜기, DDPM의 원점으로 당기는 전방 과정과 평형인 표준정규분포, 역방향 SDE의 「확률 흐름 + 분포를 바꾸지 않는 랑주뱅 쌍」, SGHMC와 CLD의 마찰–잡음 짝이 모두 이 한 방정식에서 나온다.
막힌 곳
이제 잡음을 조금씩 더하는 샘플 하나가 걷는 길과, 그 길에 에너지의 내리막을 더한 랑주뱅 방정식, 그리고 그런 샘플들의 분포가 따르는 포커–플랑크 방정식을 적을 수 있다. 끌려가는 흐름과 퍼지는 흐름이 비기는 분포는 볼츠만 분포이고, 잡음과 마찰이 D = kT/ζ로 짝을 이루면 에너지 함수만으로, Z를 몰라도 그 분포에서 샘플을 뽑을 수 있다.
그런데 이것은 기다릴 수 있을 때의 이야기다. 두 봉우리 사이에 높이 6.4kT의 벽이 있으면 랑주뱅 사슬이 건너가는 데 평균 시간 400이 넘게 걸린다. 잡음 수준을 낮춰 가며 목표 분포를 조금씩 옮기는 담금질 랑주뱅도, 한 수준에 100걸음을 주면 오른쪽 봉우리의 비율이 0.788이고 1걸음만 주면 0.588로 참값 0.8에서 벗어난다. 목표 분포가 바뀌는 동안 샘플들은 뒤처지고, 뒤처진 샘플들의 분포는 그 순간의 어느 볼츠만 분포와도 같지 않다. 게다가 랑주뱅 방정식은 Z 없이 샘플을 뽑는 대신 Z에 대해서는 아무것도 알려 주지 않는다. 두 모델의 우도를 비교하거나 두 상태의 자유에너지 차이를 구하려면 바로 그 Z의 비가 필요하다.
평형에 이를 시간을 주지 않고 분포를 끌고 다닌 샘플들로부터, 평형의 양인 Z의 비를 정확히 얻을 방법이 있을까? 에너지 함수를 바꿔 가는 동안 샘플마다 무엇을 기록해 두면, 뒤처져서 생긴 어긋남을 나중에 정확히 바로잡을 수 있을까?