7장 — 볼츠만 분포

이 장의 물음

분류 모델의 마지막 층, 트랜스포머의 어텐션, 언어 모델이 다음 토큰을 고르는 단계에는 모두 같은 함수가 들어 있다. 점수 zᵢ를 받아 e^(zᵢ)에 비례하는 확률을 만드는 softmax다. 점수를 확률로 바꾸는 방법은 이것 말고도 많아서, 점수의 제곱에 비례하게 할 수도 있고 음수를 0으로 자른 뒤 합으로 나눠 줄 수도 있다. 그런데도 거의 모든 모델이 지수함수를 쓰고, 모든 점수에 같은 상수를 더해도 결과가 변하지 않는다는 성질을 당연하게 여긴다. 표본 추출기 HMC(Hamiltonian Monte Carlo, 해밀토니안 몬테카를로. 가상의 입자를 굴려 표본을 뽑는 방법)가 목표 분포 π(q)를 e^(−U(q))로 적는 것도, 이미지 한 장 한 장에 에너지를 매겨 e^(−E(x))로 확률을 정하는 에너지 기반 모델도 같은 모양이다. 왜 하필 지수함수일까?

이 물음에 답하려면 먼저 물리에서 같은 모양이 어디서 나오는지 따라가 봐야 한다. 이 장은 다음 물음에 차례로 답한다.

큰 계 옆의 칸 하나: 작은 계의 확률은 큰 계가 정한다

뜨거운 커피 한 잔을 방에 두면 커피는 식지만 방의 온도는 거의 변하지 않는다. 이렇게 작은 계(system, 따로 떼어 놓고 살피는 대상. 여기서는 커피)가 훨씬 큰 계(방)와 에너지를 주고받는 상황에서, 작은 계가 에너지를 얼마나 가질지는 무엇이 정할까?

역사: 에너지를 덩어리로 나눠 센 볼츠만

기체 분자의 속도가 어떻게 퍼져 있는지는 맥스웰이 먼저 구했지만, 그것은 분자에 외부 힘이 작용하지 않을 때의 이야기였다. 스물네 살의 볼츠만은 1868년 논문에서 이 결과를 중력 같은 외부 힘이 있는 경우로 넓혔는데, 그가 고른 방법은 충돌을 하나하나 따지는 대신 전체 에너지를 크기가 같은 작은 덩어리로 나누고 그 덩어리들을 분자들에게 나눠 주는 방법의 수를 세는 것이었다. 분자 수를 한없이 늘리고 덩어리를 한없이 작게 하는 극한을 취하자, 분자 하나가 에너지 E를 가질 확률이 e^(−E/kT)에 비례한다는 결과가 나왔고 운동에너지만 있을 때에는 맥스웰의 분포로 돌아갔다. 오늘날 볼츠만 인자라 부르는 이 지수 인자는 처음부터 경우의 수를 세는 계산에서 나온 것이다. 아래에서는 볼츠만의 이 계산을 가장 작은 크기로 되풀이한다.

덩어리를 칸에 나눠 담기

크기가 같은 에너지 덩어리 q개를 칸 N개에 나눠 담는다고 하자. 한 칸에는 덩어리가 몇 개든 들어갈 수 있고 덩어리끼리는 구별하지 않는다. 담는 방법의 수는 별 q개와 칸막이 N − 1개를 한 줄로 늘어놓는 방법의 수와 같으므로 W(N, q) = C(q + N − 1, q)다.

이제 칸 하나로 된 작은 계 A와 칸 N_B개로 된 큰 계 B가 맞닿아 덩어리를 주고받고, 둘이 가진 덩어리의 합은 q개로 고정되어 있다고 하자. A와 B를 합친 전체는 바깥과 에너지를 주고받지 않으므로, 전체의 미시상태(어느 칸에 덩어리가 몇 개 들었는지를 하나하나 다 적은 상태)는 모두 같은 확률을 갖는다. A가 덩어리 q_A개를 가지는 미시상태의 수는 A 쪽 방법의 수와 B 쪽 방법의 수의 곱인데, A는 칸이 하나뿐이라 q_A개를 담는 방법이 한 가지밖에 없다. 그러므로 A가 덩어리 q_A개를 가질 확률은 B의 경우의 수에만 비례한다.

p(qA)∝WB(NB, q−qA),W(N,q)=(q+N−1q)\textcolor{#e377c2}{p}(\textcolor{#2ca02c}{q_A}) \propto \textcolor{#d62728}{W_B}(\textcolor{#1f77b4}{N_B},\, \textcolor{#2ca02c}{q} - \textcolor{#2ca02c}{q_A}), \qquad \textcolor{#d62728}{W}(\textcolor{#1f77b4}{N}, \textcolor{#2ca02c}{q}) = \binom{\textcolor{#2ca02c}{q} + \textcolor{#1f77b4}{N} - 1}{\textcolor{#2ca02c}{q}}
p(qA)작은 계 A(칸 하나)가 덩어리 qA개를 가질 확률qAA가 가진 덩어리 수qA와 B가 가진 덩어리의 합 (고정)WBB가 남은 덩어리를 담는 방법의 수NBB의 칸 수\begin{array}{ll} \textcolor{#e377c2}{p}(\textcolor{#2ca02c}{q_A}) & \text{작은 계 A(칸 하나)가 덩어리 } \textcolor{#2ca02c}{q_A} \text{개를 가질 확률} \\ \textcolor{#2ca02c}{q_A} & \text{A가 가진 덩어리 수} \\ \textcolor{#2ca02c}{q} & \text{A와 B가 가진 덩어리의 합 (고정)} \\ \textcolor{#d62728}{W_B} & \text{B가 남은 덩어리를 담는 방법의 수} \\ \textcolor{#1f77b4}{N_B} & \text{B의 칸 수} \end{array}
칸 하나인 작은 계 A와 칸 3개인 큰 계 B가 덩어리 6개를 나눠 가진다. A가 2개를 가지면 B는 남은 4개를 칸막이 2개와 늘어놓는 15가지 방법으로 담고, A의 확률은 이 B의 방법 수에 비례한다.
칸 하나인 작은 계 A와 칸 3개인 큰 계 B가 덩어리 6개를 나눠 가진다. A가 2개를 가지면 B는 남은 4개를 칸막이 2개와 늘어놓는 15가지 방법으로 담고, A의 확률은 이 B의 방법 수에 비례한다.

큰 계가 작을 때와 클 때

먼저 B가 작을 때를 보자. B의 칸이 3개이고 덩어리가 모두 6개이면, A가 덩어리 0개부터 6개를 가질 때 B가 담는 방법의 수는 28, 21, 15, 10, 6, 3, 1이고 합은 84다. 각각을 84로 나누면 확률이 되고, 표의 오른쪽 끝에는 덩어리를 하나 더 가질 때 확률이 몇 배가 되는지를 적었다.

A의 덩어리 q_A B의 경우의 수 확률 다음 줄과의 비
0 28 0.333 0.75
1 21 0.250 0.71
2 15 0.179 0.67
3 10 0.119 0.60
4 6 0.071 0.50
5 3 0.036 0.33
6 1 0.012

A가 덩어리를 하나도 갖지 않을 확률이 가장 높고, 많이 가질수록 확률이 줄어든다. 하지만 줄어드는 비율은 0.75에서 0.33까지 계속 변한다. 이번에는 B를 크게 키워 칸 1,000개, 덩어리 1,000개로 두고 같은 계산을 하면 다음과 같다.

A의 덩어리 q_A 확률 다음 줄과의 비
0 0.5000 0.5003
1 0.2501 0.5000
2 0.1251 0.4997
3 0.0625 0.4995
4 0.0312 0.4992
5 0.0156 0.4990

이번에는 덩어리가 하나 늘 때마다 확률이 거의 정확히 절반이 된다. 비율이 일정하니 확률은 1/2, 1/4, 1/8, …로 줄어드는 기하급수이고, 덩어리 수를 에너지로 보면 에너지에 대한 지수함수다.

문제 1. 칸이 둘인 작은 계

칸 2개인 계 B와 작은 계 A가 덩어리 4개를 나눠 가진다. 둘이 가진 덩어리의 합은 4개로 고정되어 있고, A와 B를 합친 전체의 미시상태는 모두 같은 확률을 갖는다. (가) A의 칸이 하나일 때 A가 덩어리 0, 1, 2, 3, 4개를 가질 확률을 구하라. (나) A의 칸이 둘이면 A가 가장 자주 갖는 덩어리 수는 몇 개인가?

김민준 M01
김민준

(가)는 B가 칸 둘에 남은 덩어리를 담는 방법만 세면 되죠. A가 0개면 B는 4개를 (0, 4)부터 (4, 0)까지 5가지, A가 1개면 4가지, 이어서 3, 2, 1가지라 합이 15예요. 확률은 5/15 = 0.333, 0.267, 0.2, 0.133, 0.067이고요. (나)도 A의 확률은 B의 경우의 수에만 비례하니까 똑같이 0개가 가장 흔하겠죠.

이서연 S03
이서연

잠깐, 본문은 「A는 칸이 하나뿐이라 담는 방법이 한 가지」라서 B만 센 거였잖아. A의 칸이 둘이면 A 쪽도 담는 방법이 여러 가지야.

선생님 T12
선생님

그럼 A가 덩어리 2개를 가지는 미시상태는 몇 개죠?

김민준 M07
김민준

A는 (0, 2), (1, 1), (2, 0) 세 가지이고 B는 남은 2개를 담는 3가지니까 3 × 3 = 9개예요. A 쪽 경우의 수를 곱하는 걸 빼먹었네요. 다시 하면 A가 0개부터 4개까지 1·5, 2·4, 3·3, 4·2, 5·1로 5, 8, 9, 8, 5, 합이 35예요.

이서연 S09
이서연

그럼 2개가 9/35 = 0.257로 가장 흔해요. 0개가 늘 1등인 건 A가 칸 하나일 때 이야기였네요.

선생님 T13
선생님

「A는 칸이 하나뿐」이라는 조건을 빼면 A 쪽의 경우의 수가 곱해져서, B가 정하는 줄어드는 몫과 A가 보태는 늘어나는 몫이 함께 봉우리를 만들어요.

김민준 M01
김민준

주사위 두 개를 던지면 눈 하나하나는 똑같이 나와도 합 7이 가장 자주 나오는 거랑 같네요. 합 7을 만드는 조합이 여섯 가지라서요.