14장 — 브라운 운동, 랑주뱅, 포커–플랑크

포커–플랑크 방정식: 많이 모은 입자의 흐름

랑주뱅 방정식은 입자 하나의 길을 적는다. 그런데 SGLD로 샘플을 뽑을 때 알고 싶은 것은 샘플 하나가 지금 어디 있느냐가 아니라, 샘플을 많이 모은 분포가 시간이 지나며 어떻게 바뀌어 어디에 이르느냐다. 같은 방정식을 따르는 입자를 아주 많이 풀어 놓으면 그 분포는 어떤 규칙으로 바뀔까?

역사: 쌍극자의 평균 에너지에서 나온 식

입자 하나의 방정식에서 분포의 방정식을 끌어내는 규칙은 브라운 운동이 아닌 물음에서 먼저 나왔다. 1914년 아드리안 포커는 복사가 가득한 공간에서 돌아가는 전기 쌍극자들이 평균 얼마의 에너지를 갖는지 따지면서, 쌍극자들의 분포가 시간에 따라 바뀌는 식을 적었다. 1917년 막스 플랑크가 이 식을 일반적인 꼴로 정리했고, 오늘날 두 사람의 이름을 붙여 부른다. 1931년 콜모고로프도 확률 과정을 다루다 같은 식에 따로 이르렀다.

끌려가며 퍼지는 분포

먼저 숫자로 보자. 일정한 힘에 끌려가는 속도가 1, 확산 계수가 0.5인 랑주뱅 방정식을 따르는 입자 1만 개를 모두 x = 0에서 출발시킨다. 입자 하나의 위치는 끌려간 거리 t에 분산 2Dt = t인 흔들림이 더해진 것이므로, 시간 t의 분포는 평균 t, 분산 t인 정규분포다. 시간 1에는 평균 1, 표준편차 1, 시간 4에는 평균 4, 표준편차 2다. 분포 전체가 오른쪽으로 흘러가면서 동시에 넓게 퍼진다. 흘러가는 빠르기는 끌려가는 속도에서, 퍼지는 빠르기는 확산 계수에서 온다.

이것을 일반적인 힘 −∇U에서도 쓸 수 있게 분포 ρ(x, t)의 규칙으로 적어 보자. 확률은 생기거나 사라지지 않고 옆으로 흘러갈 뿐이므로, 한 점의 밀도는 들어온 흐름에서 나간 흐름을 뺀 만큼 바뀐다. 흐름은 둘이다. 하나는 모든 입자가 힘에 끌려가는 속도 −∇U/ζ로 움직여 생기는 흐름이다. 다른 하나는 브라운 운동이 만드는 퍼짐인데, 힘이 없을 때 입자들의 분포가 확산 계수 D인 열 방정식을 따른다는 것을 격자 걷기에서 보았다. 열 방정식을 흐름으로 읽으면 밀도의 흐름 ρv가 −D∇ρ, 곧 속도가 v = −D∇ln ρ인 흐름이다. 두 속도를 더하면 다음 방정식이 나온다.

∂ρ∂t=−∇⋅(ρ v),v=−1ζ∇U−D ∇ln⁡ρ⟹∂ρ∂t=∇⋅(ρζ ∇U)+D ∇2ρ\frac{\partial \textcolor{#e377c2}{\rho}}{\partial t} = -\nabla\cdot(\textcolor{#e377c2}{\rho}\,\textcolor{#1b9e77}{\mathbf{v}}), \qquad \textcolor{#1b9e77}{\mathbf{v}} = -\frac{1}{\textcolor{#c71585}{\zeta}}\nabla \textcolor{#a6761d}{U} - \textcolor{#800080}{D}\,\nabla \ln \textcolor{#e377c2}{\rho} \qquad\Longrightarrow\qquad \frac{\partial \textcolor{#e377c2}{\rho}}{\partial t} = \nabla\cdot\Big(\frac{\textcolor{#e377c2}{\rho}}{\textcolor{#c71585}{\zeta}}\,\nabla \textcolor{#a6761d}{U}\Big) + \textcolor{#800080}{D}\,\nabla^2 \textcolor{#e377c2}{\rho}
ρ(x,t)랑주뱅 방정식을 따르는 입자들의 확률밀도v(x,t)그 자리의 확률이 흘러가는 속도−∇U/ζ끌려가는 흐름: 에너지의 내리막으로 모은다−D ∇ln⁡ρ퍼지는 흐름: 밀도의 내리막으로 흩는다 (∇ln⁡ρ 는 스코어)∇⋅발산(벡터장의 divergence, KL 발산과 이름만 같다): 한 점에서 나가는 흐름 − 들어오는 흐름∇2라플라시안 (= ∇⋅∇): 이웃 평균에서 제 값을 뺀 차이에 비례\begin{array}{ll} \textcolor{#e377c2}{\rho}(\textcolor{#1b9e77}{\mathbf{x}}, \textcolor{#a67a63}{t}) & \text{랑주뱅 방정식을 따르는 입자들의 확률밀도} \\ \textcolor{#1b9e77}{\mathbf{v}}(\textcolor{#1b9e77}{\mathbf{x}}, \textcolor{#a67a63}{t}) & \text{그 자리의 확률이 흘러가는 속도} \\ -\nabla \textcolor{#a6761d}{U}/\textcolor{#c71585}{\zeta} & \text{끌려가는 흐름: 에너지의 내리막으로 모은다} \\ -\textcolor{#800080}{D}\,\nabla \ln \textcolor{#e377c2}{\rho} & \text{퍼지는 흐름: 밀도의 내리막으로 흩는다 (} \nabla \ln \textcolor{#e377c2}{\rho} \text{ 는 스코어)} \\ \nabla\cdot & \text{발산(벡터장의 divergence, KL 발산과 이름만 같다): 한 점에서 나가는 흐름 − 들어오는 흐름} \\ \nabla^2 & \text{라플라시안 (= ∇·∇): 이웃 평균에서 제 값을 뺀 차이에 비례} \end{array}

오른쪽 식을 포커–플랑크 방정식 (랑주뱅 방정식을 따르는 입자들의 확률밀도가 시간에 따라 바뀌는 규칙, Fokker–Planck equation)이라 한다. 위의 숫자 예(U = −x, ζ = 1, D = 0.5)를 넣으면 평균 t, 분산 t인 정규분포가 이 방정식의 해다. 힘이 없으면 첫 항이 사라져 열 방정식이 되므로, 포커–플랑크 방정식은 열 방정식에 끌려가는 흐름의 항을 더한 것이다. 입자 하나는 무작위한 길을 걷지만 그 분포는 이 결정론적인 방정식을 따르고, 동전으로 걷는 사람과 이웃 평균의 관계가 힘이 있을 때도 그대로 성립한다.

포커–플랑크 방정식의 해: 끌려가는 속도 1, 확산 계수 0.5에서 x = 0에 모인 입자들이 시간 0.25, 1, 4에 이룬 분포. 막대는 랑주뱅 방정식으로 옮긴 입자 1만 개, 선은 평균 t, 분산 t인 정규분포다. 분포의 가운데는 끌려가는 속도로 옮겨 가고, 폭은 √t로 넓어진다.
포커–플랑크 방정식의 해: 끌려가는 속도 1, 확산 계수 0.5에서 x = 0에 모인 입자들이 시간 0.25, 1, 4에 이룬 분포. 막대는 랑주뱅 방정식으로 옮긴 입자 1만 개, 선은 평균 t, 분산 t인 정규분포다. 분포의 가운데는 끌려가는 속도로 옮겨 가고, 폭은 √t로 넓어진다.
flowchart TD
  subgraph R1["격자 위"]
    direction LR
    A["동전으로 걷는 사람 하나<br/>x ← x + s"] -->|"많이 모으면"| B["이웃 평균<br/>ρ ← 이웃 넷의 평균"]
  end
  subgraph R2["칸과 걸음을 잘게"]
    direction LR
    C["브라운 운동<br/>x ← x + √(2DΔt) z"] -->|"많이 모으면"| D["열 방정식<br/>∂ρ/∂t = D∇²ρ"]
  end
  subgraph R3["힘 −∇U를 더하면"]
    direction LR
    E["랑주뱅 방정식<br/>브라운 운동 + 끌려가는 속도 −∇U/ζ"] -->|"많이 모으면"| F["포커–플랑크 방정식<br/>열 방정식 + 끌려가는 흐름"]
  end
  R1 --> R2 --> R3

ML에서: 퍼지는 흐름 속의 스코어

퍼지는 흐름의 속도 −D∇ln ρ에 든 ∇ln ρ, 곧 로그밀도의 기울기를 ML에서는 스코어라 부른다. 평균 0, 분산 4인 정규분포라면 스코어는 −x/4이고, D = 0.5이면 x = 2 자리의 확률은 바깥쪽으로 0.5 × 2/4 = 0.25의 속도로 흘러가며 x = 4 자리는 0.5의 속도로 흘러간다. 바깥일수록 빨리 흘러가 분포가 넓어지는 것이다. 확산 모델이 신경망으로 배우는 것이 바로 잡음 섞인 데이터 분포의 스코어다. 포커–플랑크 방정식으로 보면, 스코어를 안다는 것은 분포가 그 자리에서 어느 쪽으로 얼마나 퍼져 나가는지를 안다는 뜻이다.

문제 9. 입자를 흐름의 속도로만 옮기면

끌려가는 속도가 1(U = −x, ζ = 1), 확산 계수 D = 0.5인 랑주뱅 방정식을 따르는 입자들이 처음에 표준정규분포로 퍼져 있다. 시간 t의 분포는 평균 t, 분산 1 + t인 정규분포다. (가) 포커–플랑크 방정식의 흐름 속도 v(x, t)를 구하라. (나) 입자마다 잡음을 끄고 dx/dt = v(x, t)로만 옮기면, 시간 3에 분포는 어떻게 되는가? 처음 x = 1에 있던 입자는 어디에 있는가? (다) 랑주뱅 방정식으로 옮긴 입자들과는 무엇이 같고 무엇이 다른가?

이서연 S01
이서연

정규분포의 스코어는 −(x − t)/(1 + t)니까 v = 1 − 0.5 × 스코어 = 1 + (x − t)/(2(1 + t))예요. 가운데에서는 1이고 바깥으로 갈수록 빨라요.

김민준 M04
김민준

그럼 (나)는 잡음을 껐으니까 다 같이 속도 1 근처로 움직이겠죠? 퍼지지는 않고 평균만 3으로 옮겨 가요.

이서연 S01
이서연

v는 자리마다 달라. 가운데보다 오른쪽은 빠르고 왼쪽은 느리니까 벌어져.

김민준 M05
김민준

20만 개로 직접 돌려 봤어요. 잡음 없이 v로만 옮겼더니 시간 3에 평균 3.00, 분산 3.99예요. 랑주뱅으로 돌린 것도 평균 3.00, 분산 3.99고요. 잡음이 없는데 똑같이 퍼졌어요!

선생님 T01
선생님

처음 x = 1에 있던 입자들은요?

김민준 M01
김민준

잡음 없이 옮긴 쪽은 모두 거의 정확히 5에 있어요. 랑주뱅 쪽은 평균 4.04, 표준편차 1.72로 퍼져 있고요.

이서연 S08
이서연

x = 1은 처음에 표준편차 하나만큼 오른쪽이었고, 시간 3의 5도 평균 3에서 표준편차 2만큼, 곧 표준편차 하나만큼 오른쪽이에요. 잡음 없이 옮기면 입자들이 늘어선 순서를 지킨 채 분포만 늘어나고, 랑주뱅으로 옮기면 순서가 뒤섞이는 거네요.

선생님 T13
선생님

그래요. 포커–플랑크 방정식이 정하는 것은 분포가 바뀌는 모습뿐이라, 같은 분포의 흐름을 만드는 입자의 길은 여러 가지예요. 이 사실은 확산 모델을 거꾸로 돌릴 때 다시 써요.

김민준 M11
김민준

줄 맞춰 걷는 행진 대열이랑 제멋대로 걷는 인파가 같은 속도로 광장을 채우는 거네요.