12장 — 평균장 근사

평균장 근사: 각 스핀은 이웃의 평균만 본다

스핀이 둘일 때 찾은 이 규칙은 스핀이 수백 개인 계에서도 그대로 성립할까? 그리고 그렇게 고른 곱 분포의 자유에너지는 참 자유에너지와 어떤 관계에 있을까? 스핀 N개가 짝마다 결합 Jᵢⱼ, 스핀마다 편향 bᵢ로 묶인 이징 모형 E(s) = −Σ_{i<j} Jᵢⱼsᵢsⱼ − Σᵢbᵢsᵢ에 같은 일을 해 보자. Σ는 아래에 붙은 범위의 항을 모두 더하라는 기호이고, 아래에 i < j를 단 Σ는 스핀 짝을 한 번씩만 모두 더한다는 뜻이다. 곱 분포 q(s) = q₁(s₁)q₂(s₂)⋯q_N(s_N)에서는 서로 다른 스핀의 곱의 평균이 평균의 곱이 되므로 ⟨sᵢsⱼ⟩_q = mᵢmⱼ이고, 자유에너지는 평균 방향 mᵢ들만의 함수가 된다. 이것을 mᵢ로 미분해 0으로 놓으면 스핀 둘일 때와 같은 모양의 조건이 스핀마다 하나씩 나온다.

F[q]=−∑i<jJij mimj−∑ibi mi−kT∑iH(1+mi2) ≥ F,mi=tanh⁡ ⁣(β(bi+∑jJij mj))\textcolor{#a000c8}{F}[\textcolor{#bcbd22}{q}] = -\sum_{i<j} \textcolor{#b8860b}{J_{ij}}\,\textcolor{#dd6677}{m_i}\textcolor{#dd6677}{m_j} - \sum_i \textcolor{#b8860b}{b_i}\,\textcolor{#dd6677}{m_i} - \textcolor{#7f7f7f}{k}\textcolor{#8c564b}{T} \sum_i \textcolor{#9467bd}{H}\Big(\frac{1+\textcolor{#dd6677}{m_i}}{2}\Big) \ \ge\ \textcolor{#a000c8}{F}, \qquad \textcolor{#dd6677}{m_i} = \tanh\!\Big(\textcolor{#8c564b}{\beta}\Big(\textcolor{#b8860b}{b_i} + \sum_{j} \textcolor{#b8860b}{J_{ij}}\,\textcolor{#dd6677}{m_j}\Big)\Big)
q(s)=∏iqi(si)스핀들이 서로 독립인 곱 분포mi=⟨si⟩q곱 분포에서 스핀 i의 평균 방향Jij, bi결합 계수와 편향bi+∑jJij mj스핀 i가 받는 평균장H(⋅)스핀 하나의 엔트로피 (nat)F[q], F곱 분포의 자유에너지와 참 자유에너지 −kT ln Zk, T, β볼츠만 상수, 온도, 역온도 1/kT\begin{array}{ll} \textcolor{#bcbd22}{q}(\textcolor{#1b9e77}{\mathbf{s}}) = \prod_i \textcolor{#bcbd22}{q_i}(\textcolor{#1b9e77}{s_i}) & \text{스핀들이 서로 독립인 곱 분포} \\ \textcolor{#dd6677}{m_i} = \langle \textcolor{#1b9e77}{s_i} \rangle_{\textcolor{#bcbd22}{q}} & \text{곱 분포에서 스핀 i의 평균 방향} \\ \textcolor{#b8860b}{J_{ij}},\ \textcolor{#b8860b}{b_i} & \text{결합 계수와 편향} \\ \textcolor{#b8860b}{b_i} + \sum_j \textcolor{#b8860b}{J_{ij}}\,\textcolor{#dd6677}{m_j} & \text{스핀 i가 받는 평균장} \\ \textcolor{#9467bd}{H}(\cdot) & \text{스핀 하나의 엔트로피 (nat)} \\ \textcolor{#a000c8}{F}[\textcolor{#bcbd22}{q}],\ \textcolor{#a000c8}{F} & \text{곱 분포의 자유에너지와 참 자유에너지 −kT ln Z} \\ \textcolor{#7f7f7f}{k},\ \textcolor{#8c564b}{T},\ \textcolor{#8c564b}{\beta} & \text{볼츠만 상수, 온도, 역온도 1/kT} \end{array}

부등식은 F[q] − F = kT × D_KL(q‖p) ≥ 0에서 오고, 양변에 −β를 곱하면 ln Z ≥ −βF[q], 곧 계산할 수 있는 ln Z의 아래쪽 한계가 된다. 이처럼 서로 독립인 변수들의 곱 분포 가운데 F[q]가 가장 낮은 것으로 볼츠만 분포를 대신하는 것을 평균장 근사 (곱 분포 안에서 자유에너지를 최소화해 볼츠만 분포를 대신하는 근사, mean-field approximation)라 한다. 오른쪽 식에서는 구하려는 값 mᵢ가 양변에 모두 들어 있어서, 답은 이 식에 넣었을 때 스스로와 맞아떨어지는 값이어야 한다. 그래서 이런 식을 자기 일관 방정식(self-consistent equation)이라 부른다. 여기서 자기는 자석의 자기(磁氣)가 아니라 「스스로」라는 뜻이다.

자기 일관 방정식 m = tanh(βJm)을 그림으로 푸는 법(편향 0). 곧은 선 y = m과 곡선 y = tanh(βJm)이 만나는 곳이 해다. βJ = 0.5에서는 원점에서만 만나고, βJ = 1에서 곡선의 원점 기울기가 곧은 선과 같아지며, βJ = 1.5에서는 원점 말고도 ±0.859에서 만난다. 곡선이 곧은 선보다 가팔라지는 순간 0이 아닌 해가 생긴다.
자기 일관 방정식 m = tanh(βJm)을 그림으로 푸는 법(편향 0). 곧은 선 y = m과 곡선 y = tanh(βJm)이 만나는 곳이 해다. βJ = 0.5에서는 원점에서만 만나고, βJ = 1에서 곡선의 원점 기울기가 곧은 선과 같아지며, βJ = 1.5에서는 원점 말고도 ±0.859에서 만난다. 곡선이 곧은 선보다 가팔라지는 순간 0이 아닌 해가 생긴다.

ML에서: 볼츠만 머신의 평균장 학습

볼츠만 머신의 학습 규칙은 결합 Jᵢⱼ를 ⟨sᵢsⱼ⟩_데이터 − ⟨sᵢsⱼ⟩_모델에 비례해 바꾼다. 빼는 둘째 항, 곧 모델 쪽 평균을 구하는 음의 단계(negative phase)에는 모델의 샘플이 필요한데, 상전이(조건이 한 값을 지날 때 계의 전형적인 상태가 갑자기 바뀌는 현상, phase transition)가 일어나는 온도 아래에서는 샘플링하는 마르코프 사슬이 한쪽 봉우리에 갇혀 모델 분포의 절반만 본다. 샘플링은 무척 느리기도 했다.

1987년 텍사스 오스틴의 기업 연구소 MCC(Microelectronics and Computer Technology Corporation)에 있던 카스텐 피터슨과 제임스 앤더슨은 이 항을 평균장으로 대신했다. 그들은 논문 요약에 「시간이 많이 드는 상관의 확률적 측정을 결정론적 평균장 방정식의 해로 대체한다」고 쓰고, XOR(두 입력이 다를 때만 1을 내는 문제)·인코더·선 대칭 문제에서 10~30배 빨라졌다고 보고했다. 자기 일관 방정식으로 mᵢ를 구하고 짝 평균마저 두 평균의 곱으로 한 번 더 근사해 ⟨sᵢsⱼ⟩_모델 ≈ mᵢmⱼ로 두면(논문의 표기로는 VᵢVⱼ) 샘플링이 필요 없고, 그들은 이 방정식이 본래 병렬적이어서 병렬 계산기에 곧바로 올릴 수 있다는 점도 강조했다.

평균장은 샘플링하지 않으니 사슬처럼 갇히지는 않지만, 봉우리가 둘인 모델에서 처음부터 한 봉우리를 골라 답한다는 점에서는 같은 절반만 본다. 게다가 mᵢmⱼ에는 두 뉴런이 평균에서 함께 벗어나는 몫, 곧 공분산이 들어 있지 않다.

문제 4. 문턱을 갓 넘은 결합

편향이 없는 스핀 둘의 평균장 방정식 m = tanh(βJm)를 생각하자. (가) βJ = 1.1과 1.01에서 양수인 해를 되풀이 계산으로 구하라. (나) 0 근처에서 tanh x ≈ x − x³/3을 쓰면 βJ가 1보다 조금 클 때 해가 √(3(βJ − 1))쯤임을 보이고 (가)와 견주라. (다) 스핀 하나당 −βF[q] = βJm²/2 + H((1 + m)/2)에서, 양수인 해는 m = 0보다 얼마나 높은가?

김민준 M04
김민준

0에서 시작해서 되풀이했는데 한 번도 안 움직여요. tanh 0 = 0이니까요. 해가 0밖에 없는 거 아니에요?

선생님 T01
선생님

0도 해이긴 하죠. 다른 해가 있는지 보려면 어디서 시작해 볼까요?

김민준 M07
김민준

1에서 시작하면 되겠네요. βJ = 1.1이면 0.503에 멈춰요. 1.01은 한참 돌려야 하는데 0.172에 가요.

이서연 S03
이서연

(나)는 m = βJm − (βJm)³/3에서 m으로 나누면 m² ≈ 3(βJ − 1)이라서, 1.1이면 0.548, 1.01이면 0.173이에요. 1.1에서는 0.503과 9%쯤 어긋나네요. 식이 틀렸나요?

선생님 T02
선생님

그 어림은 어떤 범위에서 쓰라고 만든 거였죠?

이서연 S08
이서연

tanh를 0 근처에서 편 거니까 m이 작을 때만이에요. 0.5는 이미 0 근처가 아니고, 0.17에서는 0.172와 0.173으로 거의 맞아요. 식이 틀린 게 아니라 쓴 범위가 넓었어요.

김민준 M11
김민준

(다)는 1.1에서 0.0067, 1.01에서 0.000074예요. 문턱을 갓 넘으면 0이 아닌 해가 0보다 아주 조금만 나아요.

선생님 T14
선생님

그래서 문턱 근처에서는 평균 방향이 0인 상태와 한쪽으로 쏠린 상태의 자유에너지가 거의 같아요. 계가 어느 쪽으로도 쉽게 흔들린다는 뜻이고, 평균장이 버린 흔들림이 가장 큰 몫을 하는 곳이 바로 여기예요.

이서연 S01
이서연

수학 시간에 배운 테일러 전개는 전개한 점 근처에서만 믿으라는 말이 여기서 숫자로 보이네.