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

랑주뱅 방정식: 힘에 끌려가며 흔들리는 길

브라운 운동은 아무 힘도 받지 않는 알갱이의 길이다. 그런데 이 장 첫머리의 두 규칙(경사하강에 잡음을 더하는 SGLD와 샘플을 원점 쪽으로 당기며 잡음을 더하는 DDPM)은 걸음마다 샘플을 에너지의 내리막으로 끌면서 흔든다. 알갱이에 힘이 걸리면 그 길은 어떻게 바뀔까?

역사: 랑주뱅의 「보충하는 힘」

1908년 폴 랑주뱅은 프랑스 과학 아카데미 회보에 짧은 글을 싣고, 아인슈타인의 결과를 「완전히 다른 방법으로 무한히 더 간단하게」 얻을 수 있다고 썼다. 그는 알갱이 하나에 뉴턴의 운동 방정식을 쓰고, 물 분자가 주는 힘을 둘로 나눴다. 하나는 속도에 비례해 움직임을 막는 점성 저항 −6π × 점성 × 반지름 × 속도이고, 다른 하나는 방향과 크기가 제멋대로인 「보충하는 힘」이다. 보충하는 힘의 평균이 0이고 알갱이의 운동에너지 평균이 온도로 정해진다는 것만 써서, 그는 아인슈타인의 변위 공식을 몇 줄 만에 다시 얻었다. 분포의 방정식 대신 입자 하나의 운동 방정식에 무작위 힘을 넣는 이 방식이, 오늘날 SGLD와 확산 모델의 샘플러가 한 걸음씩 계산하는 방식이다.

폴 랑주뱅(1872–1946). 앙리 마뉘엘 촬영. 출처: Wikimedia Commons(Wellcome Collection), CC BY 4.0
폴 랑주뱅(1872–1946). 앙리 마뉘엘 촬영. 출처: Wikimedia Commons(Wellcome Collection), CC BY 4.0

한쪽으로 기운 걸음

힘이 걸린 걸음을 가장 간단하게 흉내 내 보자. 동전 걸음에서 확률 하나만 바꾸면 되므로, 앞에서 본 격자 걷기에서 출발하는 것이 가장 작은 변화다. 격자 위의 사람이 오른쪽을 0.3, 왼쪽을 0.2, 위와 아래를 0.25씩의 확률로 고른다. 오른쪽으로 무언가가 조금 미는 셈이다. 한 걸음의 가로 이동은 평균 0.3 − 0.2 = 0.1칸이고, 그 둘레의 분산은 0.5 − 0.1² = 0.49다. n걸음 뒤 가로 위치는 걸음들의 합이므로 평균은 0.1n, 분산은 0.49n이다.

걸음 수 n 끌려간 거리 (평균) 흔들림 (표준편차) 끌려간 거리 ÷ 흔들림
1 0.1 0.70 0.14
100 10 7.0 1.4
10000 1000 70 14

끌려간 거리는 걸음 수에 비례하고 흔들림은 걸음 수의 제곱근에 비례한다. 그래서 짧게 보면 흔들림이 이기고, 길게 보면 끌림이 이긴다. 한 걸음에서는 미는 힘이 흔들림의 7분의 1도 안 되지만 1만 걸음이면 14배다.

끌려가는 움직임에 브라운 운동 더하기

위치에너지가 U(x)이면 알갱이는 −∇U의 힘을 받는다. 물속의 작은 알갱이는 속도를 아주 빨리 잊어서 가속하는 시간을 무시할 수 있고, 힘과 점성 저항이 비기는 속도로 곧바로 움직인다고 보면 된다. 속도에 비례해 움직임을 막는 힘의 비례 계수를 ζ(제타)라 하면 그 속도는 −∇U/ζ다. 마찰을 운동량이 줄어드는 비율 γ로 적는 책도 많은데, 그 γ는 ζ를 질량으로 나눈 ζ/m이다. 이 장은 질량이 빠진 식을 많이 쓰므로 힘 ÷ 속도인 ζ를 쓴다. 이 끌려가는 움직임에 브라운 운동을 더한 것이 다음 식이다.

x(t+Δt)=x(t)−Δtζ∇U(x)+2D Δt  z⟺dx=−1ζ∇U dt+2D  dB\textcolor{#1b9e77}{\mathbf{x}}(\textcolor{#a67a63}{t} + \Delta \textcolor{#a67a63}{t}) = \textcolor{#1b9e77}{\mathbf{x}}(\textcolor{#a67a63}{t}) - \frac{\Delta \textcolor{#a67a63}{t}}{\textcolor{#c71585}{\zeta}}\nabla \textcolor{#a6761d}{U}(\textcolor{#1b9e77}{\mathbf{x}}) + \sqrt{2\textcolor{#800080}{D}\,\Delta \textcolor{#a67a63}{t}}\;\textcolor{#1f6066}{\mathbf{z}} \qquad\Longleftrightarrow\qquad d\textcolor{#1b9e77}{\mathbf{x}} = -\frac{1}{\textcolor{#c71585}{\zeta}}\nabla \textcolor{#a6761d}{U}\,dt + \sqrt{2\textcolor{#800080}{D}}\;d\textcolor{#1f6066}{\mathbf{B}}
U(x)위치에너지 (ML에서는 손실, 또는 목표 분포의 −ln⁡)ζ마찰 계수: 속도에 비례해 움직임을 막는 힘의 비례 계수 (N⋅s/m)−∇U/ζ힘에 끌려가는 속도 (힘 ÷ 마찰 계수)2D Δt  z시간 Δt 동안의 브라운 운동 변위dB시간 dt 동안 표준 브라운 운동의 변화 (= √dt × 표준정규 잡음)x, dx위치와 시간 dt 동안 위치의 변화D확산 계수 (m²/s)\begin{array}{ll} \textcolor{#a6761d}{U}(\textcolor{#1b9e77}{\mathbf{x}}) & \text{위치에너지 (ML에서는 손실, 또는 목표 분포의 } -\ln\text{)} \\ \textcolor{#c71585}{\zeta} & \text{마찰 계수: 속도에 비례해 움직임을 막는 힘의 비례 계수 (N·s/m)} \\ -\nabla \textcolor{#a6761d}{U}/\textcolor{#c71585}{\zeta} & \text{힘에 끌려가는 속도 (힘 ÷ 마찰 계수)} \\ \sqrt{2\textcolor{#800080}{D}\,\Delta \textcolor{#a67a63}{t}}\;\textcolor{#1f6066}{\mathbf{z}} & \text{시간 Δt 동안의 브라운 운동 변위} \\ d\textcolor{#1f6066}{\mathbf{B}} & \text{시간 dt 동안 표준 브라운 운동의 변화 (= √dt × 표준정규 잡음)} \\ \textcolor{#1b9e77}{\mathbf{x}},\ d\textcolor{#1b9e77}{\mathbf{x}} & \text{위치와 시간 dt 동안 위치의 변화} \\ \textcolor{#800080}{D} & \text{확산 계수 (m²/s)} \end{array}

비례 계수 ζ는 마찰 계수(friction coefficient)라 부르고, 구가 점성 있는 액체 속을 움직이면 스토크스 저항 법칙에 따라 ζ = 6π × 점성 × 반지름이다. 이 식을 랑주뱅 방정식 (힘에 끌려가는 움직임에 브라운 운동을 더해 입자 하나의 무작위한 길을 적는 식, Langevin equation)이라 한다. 관성을 빼고 쓴 이 형태를 오버댐프드(과감쇠, overdamped) 랑주뱅 방정식이라 부르기도 한다. 오른쪽처럼 결정론적인 변화 dt 항에 브라운 운동의 변화 dB 항을 더해 적은 식은 확률 미분 방정식(stochastic differential equation, SDE)이라 부른다.

일정한 힘에 끌려가는 랑주뱅 방정식(끌려가는 속도 1, 확산 계수 1)을 따르는 알갱이 다섯의 길. 굵은 선은 끌려간 거리 t이고, 띠는 그 둘레 ±√(2Dt)다. 시간 2까지는 흔들림이 끌려간 거리보다 크고, 그 뒤로는 끌림이 앞선다.
일정한 힘에 끌려가는 랑주뱅 방정식(끌려가는 속도 1, 확산 계수 1)을 따르는 알갱이 다섯의 길. 굵은 선은 끌려간 거리 t이고, 띠는 그 둘레 ±√(2Dt)다. 시간 2까지는 흔들림이 끌려간 거리보다 크고, 그 뒤로는 끌림이 앞선다.

ML에서: SGLD의 한 걸음

이제 이 장 첫머리의 규칙, 곧 경사하강 한 걸음마다 표준정규 잡음에 √(2η)를 곱해 더하는 규칙을 다시 보자. ζ = 1, Δt = η, D = 1로 두면 랑주뱅 방정식의 한 걸음은 θ ← θ − η∇U(θ) + √(2η)z, 곧 SGLD의 한 걸음이다. 끌려가는 항은 걸음 η에 비례하고 브라운 운동 항은 √η에 비례하는 것이 정확히 이 식의 모양이다. 잡음에 η를 곱하면 분산이 η²이므로, 이것은 2DΔt = η², 곧 D = η/2인 랑주뱅 방정식이 된다. 학습률을 줄이면 D도 0으로 가서 잡음이 사라진 경사하강으로 돌아간다. 첫머리의 실험(손실 U = θ²/2, η = 0.01)에서 η를 곱한 잡음을 썼을 때 θ의 분산이 0.0051로 작았던 까닭이다.

문제 6. 통장 잔고는 언제 늘었다고 믿을까

아르바이트를 하는 민준의 통장은 하루에 평균 1만 원씩 늘지만, 그날그날 쓰는 돈 때문에 하루 변화가 표준편차 5만 원만큼 들쭉날쭉하다(날마다 독립). (가) 며칠이 지나면 평균으로 늘어난 돈이 흔들림의 표준편차만큼 커지는가? (나) 흔들림의 두 배가 되려면?

김민준 M01
김민준

n일 뒤 늘어난 돈이 n만 원, 흔들림이 5√n만 원이니까 n = 5√n, 25일이요.

선생님 T01
선생님

(나)는요?

김민준 M04
김민준

25일에 같아졌으니까 두 배면 50일이요.

이서연 S06
이서연

n = 2 × 5√n을 풀면 √n = 10, 100일이야. 흔들림이 √n으로 자라니까 비율을 두 배로 하려면 기간이 네 배가 돼.

김민준 M07
김민준

기운 걸음에서 100걸음에 1.4배, 1만 걸음에 14배였던 거랑 같네요. 비율이 10배가 되는 데 걸음은 100배요.

선생님 T01
선생님

그래요. 끌림이 흔들림을 이기는 때는 (흔들림 ÷ 끌림)²에 비례해요.

김민준 M11
김민준

한 달 치 가계부만 보고 돈이 모인다고 하면 안 되는 거네요. 그 두 배를 확신하려면 석 달은 넘게 봐야 하고요.

문제 7. 알갱이는 언제 속도를 잊나

20°C 물속에 지름 1 μm, 밀도 1.05 g/cm³인 알갱이가 떠 있다(확산 계수 D ≈ 4.3 × 10⁻¹³ m²/s, 물의 점성 1.0 × 10⁻³ Pa·s). 1초 간격으로 재면 「속도」가 0.93 μm/s였다. (가) 운동에너지로 정해지는 알갱이의 열속도 √(kT/m)는? (나) 스토크스 저항으로 마찰 계수 ζ를 구하고, 알갱이가 속도를 잊는 시간 m/ζ를 구하라. (다) 두 속도는 어떻게 이어지는가?

선생님 T14
선생님

그런데 알갱이는 질량이 있는 물체예요. 온도 T의 물속에 있으니 (가)를 계산할 수 있죠.

이서연 S01
이서연

방향 하나당 운동에너지 평균이 kT/2니까 열속도는 √(kT/m)이에요. 질량이 5.5 × 10⁻¹⁶ kg이라 2.7 mm/s예요.

김민준 M06
김민준

2.7 mm/s면 1초에 자기 지름의 2700배를 가는 속도잖아요. 그런데 1초에 1 μm도 못 간다고요? 둘 중 하나가 틀린 것 같은데요.

선생님 T14
선생님

둘 다 맞아요. 그 속도를 얼마나 오래 유지하는지 보세요. 운동량은 m/ζ의 시간 안에 줄어들어요. (나)로 가 볼까요?

이서연 S01
이서연

스토크스 저항이면 ζ = 6π × 점성 × 반지름 = 6π × 0.001 × 0.5 × 10⁻⁶ = 9.4 × 10⁻⁹ kg/s예요.

김민준 M07
김민준

5.5 × 10⁻¹⁶을 9.4 × 10⁻⁹로 나누면… 5.8 × 10⁻⁸초, 58나노초요. 그동안 2.7 mm/s로 가면 0.16 nm밖에 못 가요. 원자 하나 크기도 안 되네요.

이서연 S08
이서연

58나노초마다 방향을 새로 뽑는 걸음이구나. 그보다 긴 간격으로 재면 동전 걷기처럼 보이고, 58나노초보다 짧게 재야 진짜 열속도 2.7 mm/s가 나오겠네.

선생님 T13
선생님

그래요. 잰 속도는 간격을 줄일수록 커지다가 m/ζ 근처에서 열속도에 닿아 멈춰요. 브라운 운동은 m/ζ보다 긴 시간만 보는 근사예요. 아인슈타인이 속도 대신 일정 시간 동안 옮겨 간 거리를 예측한 것이 그래서 현명한 선택이었어요.

김민준 M01
김민준

문제 4에서 10⁻⁴초 간격으로 잰 93 μm/s도 아직 2.7 mm/s보다 한참 느리네요. 10⁻⁴초는 58나노초보다 한참 기니까 그때까지는 브라운 운동으로 봐도 되는 거고요.

문제 8. 한 걸음에서는 잡음이 더 큰데

손실 U(θ) = θ²/2에서 SGLD θ ← θ − η∇U(θ) + √(2η)z를 θ = 3에서 η = 0.01로 시작한다. (가) 첫 걸음에서 기울기 항이 옮기는 거리와 잡음 항의 표준편차를 견주라. (나) 기울기가 3 근처에 머문다고 보면, 몇 걸음이 지나야 끌려간 거리가 흔들림만큼 커지는가? (다) η를 0.0001로 줄이면?

김민준 M02
김민준

기울기 항은 0.01 × 3 = 0.03이고 잡음은 √0.02 = 0.141이에요. 잡음이 다섯 배 가까운데요. 이러면 내리막으로 못 내려가지 않아요?

이서연 S01
이서연

한 걸음만 보면 그렇지. 그런데 끌려간 거리는 걸음 수에 비례하고 흔들림은 걸음 수의 제곱근에 비례하잖아. 0.03n = 0.141√n이면 n = (0.141/0.03)² = 22걸음이야.

김민준 M07
김민준

통장 문제랑 똑같네요. (흔들림 ÷ 끌림)²요.

선생님 T01
선생님

(다)는요?

김민준 M01
김민준

기울기 항 0.0003, 잡음 0.0141이니까 비가 47배예요. 2222걸음이 필요하네요. 걸음을 줄일수록 잡음이 점점 이기는 것 같은데요?

이서연 S08
이서연

시간으로 재 봐. 한 걸음이 시간 η니까 22 × 0.01 = 0.22, 2222 × 0.0001 = 0.22로 같아.

선생님 T13
선생님

그래요. 잡음을 √(2η)로 두면 걸음을 얼마로 나누든 같은 시간에 끌림이 흔들림을 따라잡아요. 한 걸음에서 잡음이 크다고 걱정할 필요가 없는 까닭이에요.

김민준 M11
김민준

동영상을 한 프레임씩 넘기면 손이 덜덜 떨리는데 1초씩 넘기면 그냥 손을 뻗는 걸로 보이는 거랑 같네요.