8장 — 분배함수와 자유에너지

자유에너지: 겨루기의 결과를 정확히 적은 양

큰 계에서는 −kT ln Z가 승자의 E − TS와 거의 같았다. 그런데 입자가 세 개일 때는 가장 큰 항이 ln Z의 3분의 1밖에 설명하지 못했으니, 이 근사는 작은 계에서는 쓸 수 없다. 그렇다면 −kT ln Z 자체를 계의 크기와 상관없이 에너지와 엔트로피의 겨루기로 정확히 적을 수는 없을까?

역사: 헬름홀츠와 깁스

1800년대 화학에서는 반응이 내놓는 열을 반응이 얼마나 잘 일어나는지 재는 잣대로 삼는 일이 흔했다. 열을 많이 내는 반응일수록 원소끼리 끌어당기는 힘이 세다고 본 것이고, 헬름홀츠 자신도 앞선 논문들에서 이 견해를 따랐다고 적었다. 그런데 저절로 일어나면서 오히려 둘레를 차갑게 만드는 반응이 있다는 것은 오래전부터 알려져 있었고, 열만 보는 설명으로는 이런 반응을 풀 수 없었다. 헬름홀츠가 이 문제에 붙들린 것은 전지 때문이었다. 전지는 온도가 거의 변하지 않은 채 화학 반응으로 전기적인 일(work, 힘을 들여 물체를 밀어 옮기는 데 쓰인 에너지)을 해내는데, 그 전압이 안에서 일어나는 화학 변화와 어떻게 이어지는지를 따지다가, 반응이 내놓는 에너지 가운데 일로 바꿀 수 있는 몫과 그렇지 않은 몫을 구별해야 한다고 생각하게 되었다. 1882년 베를린 학술원에 낸 논문에서 그는 앞의 것을 자유에너지(freie Energie), 뒤의 것을 묶인 에너지(gebundene Energie)라 불렀고, 온도가 일정할 때 저절로 일어나는 변화는 자유에너지가 줄어드는 쪽으로만 간다는 결론을 얻었다. 오늘날의 식으로 쓰면 묶인 에너지가 TS이고 자유에너지가 E − TS다. 에너지 가운데 온도 × 엔트로피만큼은 열의 형태로 둘레와 얽혀 있어서 마음대로 꺼내 쓸 수 없다는 뜻이니, 「자유」는 「꺼내 쓸 수 있는」이라는 뜻의 이름이었던 셈이다.

헤르만 폰 헬름홀츠(1821–1894). 루트비히 크나우스의 유화, 1881년. 출처: Wikimedia Commons, 퍼블릭 도메인
헤르만 폰 헬름홀츠(1821–1894). 루트비히 크나우스의 유화, 1881년. 출처: Wikimedia Commons, 퍼블릭 도메인

20년 뒤 깁스는 1902년의 통계역학 교과서에서 확률을 Z로 나누는 대신 e^((ψ − ε)/Θ)로 적고(ε는 에너지, Θ(대문자 세타)는 오늘날의 kT) 합이 1이 되도록 상수 ψ를 정해, 정규화 상수를 지수 안에서 에너지와 나란히 서는 에너지로 다루었다.

평균 에너지와 엔트로피로 적기

승자 하나의 에너지와 엔트로피 대신 볼츠만 분포의 평균 에너지와 엔트로피를 쓰면 등호가 정확히 성립한다. 그래서 온도 T인 열원과 맞닿은 계에 대해 −kT ln Z를 자유에너지 (에너지와 엔트로피의 겨루기 결과, Helmholtz free energy)라 하고 F로 쓴다.

F≡−kTln⁡Z=⟨E⟩−TS\textcolor{#a000c8}{F} \equiv -\textcolor{#7f7f7f}{k}\textcolor{#8c564b}{T} \ln \textcolor{#667733}{Z} = \langle \textcolor{#ff7f0e}{E} \rangle - \textcolor{#8c564b}{T} \textcolor{#9467bd}{S}
F자유에너지k볼츠만 상수T열원의 온도Z분배함수⟨E⟩볼츠만 분포에서의 평균 에너지S볼츠만 분포의 엔트로피 −k∑ipiln⁡pi\begin{array}{ll} \textcolor{#a000c8}{F} & \text{자유에너지} \\ \textcolor{#7f7f7f}{k} & \text{볼츠만 상수} \\ \textcolor{#8c564b}{T} & \text{열원의 온도} \\ \textcolor{#667733}{Z} & \text{분배함수} \\ \langle \textcolor{#ff7f0e}{E} \rangle & \text{볼츠만 분포에서의 평균 에너지} \\ \textcolor{#9467bd}{S} & \text{볼츠만 분포의 엔트로피 } -\textcolor{#7f7f7f}{k} \textstyle\sum_i \textcolor{#e377c2}{p_i} \ln \textcolor{#e377c2}{p_i} \end{array}

등호는 한 줄로 확인된다. 볼츠만 분포에서 ln pᵢ = −βEᵢ − ln Z이므로, 이것을 pᵢ로 평균해 −k를 곱하면 S = kβ⟨E⟩ + k ln Z이고, 양변에 T를 곱해 정리하면 ⟨E⟩ − TS = −kT ln Z다. βε = ln 2인 2준위 입자 하나라면 ⟨E⟩ = 0.2310kT, S = 0.6365k이므로 ⟨E⟩ − TS = −0.4055kT가 되어 −kT ln 1.5와 맞는다.

βε = ln 2인 2준위 입자 하나의 자유에너지를 두 항으로 나눈 막대(kT 단위). 평균 에너지 +0.2310에 엔트로피 몫 −TS = −0.6365를 더하면 자유에너지 −0.4055 = −ln 1.5가 된다. 에너지 항은 위로, 엔트로피 항은 아래로 당긴다.
βε = ln 2인 2준위 입자 하나의 자유에너지를 두 항으로 나눈 막대(kT 단위). 평균 에너지 +0.2310에 엔트로피 몫 −TS = −0.6365를 더하면 자유에너지 −0.4055 = −ln 1.5가 된다. 에너지 항은 위로, 엔트로피 항은 아래로 당긴다.

같은 식을 거꾸로 풀면 볼츠만 분포를 Z 없이 적을 수 있다. ln Z = −βF를 대입하면 다음과 같다.

pi=e−β(Ei−F),−ln⁡pi=β (Ei−F)\textcolor{#e377c2}{p_i} = e^{-\textcolor{#8c564b}{\beta}(\textcolor{#ff7f0e}{E_i} - \textcolor{#a000c8}{F})}, \qquad -\ln \textcolor{#e377c2}{p_i} = \textcolor{#8c564b}{\beta}\,(\textcolor{#ff7f0e}{E_i} - \textcolor{#a000c8}{F})
pi미시상태 i의 확률β역온도 1/kTEi미시상태 i의 에너지F자유에너지\begin{array}{ll} \textcolor{#e377c2}{p_i} & \text{미시상태 i의 확률} \\ \textcolor{#8c564b}{\beta} & \text{역온도 } 1/\textcolor{#7f7f7f}{k}\textcolor{#8c564b}{T} \\ \textcolor{#ff7f0e}{E_i} & \text{미시상태 i의 에너지} \\ \textcolor{#a000c8}{F} & \text{자유에너지} \end{array}

앞에서 본 깁스의 e^((ψ − ε)/Θ)가 바로 이 식이고, 깁스의 ψ가 자유에너지 F다.

르장드르 변환으로 보면

자유에너지는 열원의 온도 T를 변수로 삼는 양이다. 그런데 경우의 수를 세는 계산은 에너지를 변수로 삼았다. 에너지의 함수로 적힌 계를 온도의 함수로 옮기는 일은 어떻게 이루어지고, 왜 그런 옮김이 필요할까? 실험실의 계는 대개 방이라는 열원에 맞닿아 있어서 우리가 손에 쥐는 손잡이는 에너지가 아니라 온도다. 그러니 계를 온도의 함수로 적은 양이 필요하고, 그것을 만드는 방법이 르장드르 변환이다.

에너지를 엔트로피의 함수 E(S)로 보자. 보통의 계는 에너지를 넣을수록 엔트로피가 늘되 느는 속도가 점점 줄어들므로, 거꾸로 E(S)는 볼록한 증가 함수이고 그 기울기 dE/dS가 온도 T다. 르장드르 변환의 두 단계를 그대로 밟으면, 기울기 T를 새 변수로 삼고 「새 변수 × 원래 변수 − 원래 함수」인 TS − E를 새 함수로 삼는다. 물리학은 이 새 함수에 마이너스를 붙인 것을 쓰는데, 그것이 자유에너지다.

T=∂E∂S,F(T)=E−TS,∂F∂T=−S\textcolor{#8c564b}{T} = \frac{\partial \textcolor{#ff7f0e}{E}}{\partial \textcolor{#9467bd}{S}}, \qquad \textcolor{#a000c8}{F}(\textcolor{#8c564b}{T}) = \textcolor{#ff7f0e}{E} - \textcolor{#8c564b}{T}\textcolor{#9467bd}{S}, \qquad \frac{\partial \textcolor{#a000c8}{F}}{\partial \textcolor{#8c564b}{T}} = -\textcolor{#9467bd}{S}
T새 변수 = 에너지를 엔트로피로 미분한 기울기 (온도)E,S원래 함수와 원래 변수 (S는 첫 식을 풀어 T의 함수로 넣는다)F새 함수 (자유에너지, 온도만의 함수)\begin{array}{ll} \textcolor{#8c564b}{T} & \text{새 변수 = 에너지를 엔트로피로 미분한 기울기 (온도)} \\ \textcolor{#ff7f0e}{E}, \textcolor{#9467bd}{S} & \text{원래 함수와 원래 변수 (S는 첫 식을 풀어 T의 함수로 넣는다)} \\ \textcolor{#a000c8}{F} & \text{새 함수 (자유에너지, 온도만의 함수)} \end{array}

미분 대신 최솟값으로 적으면 F(T) = min_S(E(S) − TS)이고, 이것이 가장 큰 항에서 찾은 min_E(E − TS(E))와 같은 식이다. 셋째 식은 「변환한 함수를 새 변수로 미분하면 옛 변수가 나온다」는 르장드르 변환의 성질에 부호가 붙은 것이다. 역학에서 라그랑지안을 속도 대신 운동량의 함수로 다시 적어 에너지를 얻는 것도 이 변환이니, 같은 도구가 운동을 적을 때와 열을 적을 때 모두 쓰이는 셈이다.

2준위 입자 하나의 E(S)와 그 접선. 기울기가 온도 T인 접선이 세로축과 만나는 높이가 자유에너지 F = E − TS다. βε = ln 2에서 접점은 S = 0.6365, E = ε/3이고 F = −0.585ε(= −kT ln 1.5), 더 낮은 온도 βε = ln 4에서는 접점이 아래로 내려가 F = −0.161ε이다.
2준위 입자 하나의 E(S)와 그 접선. 기울기가 온도 T인 접선이 세로축과 만나는 높이가 자유에너지 F = E − TS다. βε = ln 2에서 접점은 S = 0.6365, E = ε/3이고 F = −0.585ε(= −kT ln 1.5), 더 낮은 온도 βε = ln 4에서는 접점이 아래로 내려가 F = −0.161ε이다.

ML에서: 교차 엔트로피와 logsumexp

Z 없이 적은 볼츠만 분포의 둘째 식 −ln pᵢ = β(Eᵢ − F)는 ML 독자에게 특히 쓸모가 있다. 상태 하나의 놀라움 −ln pᵢ(드문 일일수록 크게 놀란다는 데서 붙은 이름이지만, 이 책에서 놀라움은 느낌이 아니라 이 숫자를 가리킨다)는 그 상태의 에너지가 자유에너지보다 kT의 몇 배만큼 높은지와 같다. softmax 분류기라면 온도 1에서 에너지가 −로짓이고 자유에너지가 −logsumexp(z)이므로, 교차 엔트로피 손실 −ln p_c = −z_c + logsumexp(z)는 「정답 클래스의 에너지가 자유에너지보다 얼마나 높은가」를 잰 값이다.

문제 5. 누르면 차가워지는 냉찜질팩

순간 냉찜질팩은 봉지를 눌러 안의 질산암모늄을 물에 녹이면 차가워진다. 25 °C(298 K)에서 질산암모늄 1몰이 물에 녹을 때 둘레에서 열 25.69 kJ을 빨아들인다. 고체와 액체만 오가서 부피가 거의 바뀌지 않으므로, 빨아들인 열만큼 에너지가 늘었다고 보자. (가) 에너지가 느는데도 저절로 녹으려면, 녹을 때 엔트로피가 1몰에 적어도 얼마나 늘어야 하는가? (나) 녹는 알갱이 하나(이온 한 쌍)의 몫으로 나누면 에너지 증가는 kT의 몇 배이고, 경우의 수는 적어도 몇 배로 늘어야 하는가?

김민준 M01
김민준

열을 빨아들이면 에너지가 늘어나니까 자유에너지도 늘어나요. 온도가 일정할 때 저절로 가는 쪽은 자유에너지가 줄어드는 쪽이라고 했으니까 이건 저절로 녹을 수가 없는데… 실제로는 녹잖아요.

선생님 T01
선생님

F = E − TS에서 알갱이가 녹을 때 바뀌는 것이 E뿐인가요?

이서연 S01
이서연

고체 안에서는 이온이 제자리에 묶여 있었는데 녹으면 물속에 흩어지니까 엔트로피도 늘어요. −TS 항이 에너지 증가보다 더 크게 내려가면 F는 내려가고요.

선생님 T01
선생님

그럼 얼마나 늘어야 하죠?

김민준 M11
김민준

ΔE − TΔS < 0이어야 하니까 ΔS > ΔE/T = 25,690 J ÷ 298 K = 86.2 J/K예요. 1몰에 그만큼은 늘어야 해요.

선생님 T01
선생님

(나)는 이온 한 쌍의 몫을 kT와 견줘 봐요.

이서연 S01
이서연

1몰은 아보가드로수만큼의 알갱이니까, 1몰의 값을 기체 상수 R = 8.314 J/(mol·K)에 온도를 곱한 RT = 2.479 kJ로 나누면 알갱이 하나의 값을 kT로 잰 것이 돼요. 25.69 ÷ 2.479 = 10.4, 그러니까 이온 한 쌍이 녹을 때마다 kT의 10.4배를 둘레에서 빌려 와요. 이걸 갚으려면 ΔS/k가 10.4보다 커야 하고, 경우의 수는 e^10.4 = 3만 2천 배 넘게 늘어야 해요.

김민준 M09
김민준

에너지로는 손해를 보는데, 이온이 자리를 고르는 방법이 수만 배로 늘어서 겨루기에서 이기는 거네요. 열만 보는 설명으로는 풀 수 없었다던 「저절로 일어나면서 둘레를 차갑게 만드는 반응」이 이거였어요.

선생님 T13
선생님

열만 보는 잣대로는 이 반응이 거꾸로 가야 해요. 온도가 환율이라 에너지 10.4kT와 엔트로피 10.4k가 같은 값으로 쳐지고, 엔트로피 쪽이 그보다 조금이라도 더 벌어 오면 녹는 쪽으로 가요. 여기서는 얼마나 늘어야 하는지 아래 경계만 구했어요.

문제 6. 아주 차가울 때와 아주 뜨거울 때의 자유에너지

에너지가 0과 ε인 2준위 입자 하나의 자유에너지 F = −kT ln(1 + e^(−ε/kT))를 (가) kT = 0.1ε일 때와 (나) kT = 100ε일 때 구하라. 각각 F = ⟨E⟩ − TS의 두 항이 얼마인지 밝혀라.

김민준 M01
김민준

(가)는 e^(−10) = 4.5 × 10⁻⁵이라 ln(1 + 4.5 × 10⁻⁵) ≈ 4.5 × 10⁻⁵이고, F = −0.1ε × 4.5 × 10⁻⁵ = −4.5 × 10⁻⁶ε. 거의 0이에요. (나)는 e^(−0.01) ≈ 1이니까 F = −100ε × ln 2 = −69.31ε요.

이서연 S06
이서연

(나)를 두 항으로 나눠 보면 이상해. F가 −kT ln 2이면, TS는 두 상태짜리 엔트로피의 최댓값 kT ln 2를 넘지 못하니까 ⟨E⟩가 0이어야 하잖아. 그런데 이렇게 뜨거우면 입자가 반쯤은 들떠서 ⟨E⟩는 ε/2에 가까워야지.

선생님 T14
선생님

e^(−0.01)을 1로 둔 게 어디까지 괜찮은지 봐요. ε/kT에 비례하는 항을 하나 더 살리면요?

김민준 M07
김민준

x = ε/kT로 두면 1 + e^(−x) ≈ 2 − x이고 ln(2 − x) ≈ ln 2 − x/2니까, F ≈ −kT ln 2 + ε/2 = −69.315ε + 0.5ε = −68.815ε예요. 제가 버린 0.5ε가 ⟨E⟩였네요.

이서연 S01
이서연

정확히 계산하면 ⟨E⟩ = ε/(e^0.01 + 1) = 0.4975ε, TS = 69.313ε이라 F = −68.816ε야. (가)는 ⟨E⟩ = 4.5 × 10⁻⁵ε, TS = 5.0 × 10⁻⁵ε로 둘 다 거의 0이고, 바닥 상태의 에너지 0이 F를 정해.

선생님 T01
선생님

차가울 때는 에너지가, 뜨거울 때는 엔트로피가 F를 거의 정하지만, 뜨거울 때도 에너지 항이 사라지지는 않아요. 온도가 얼마든 두 항이 함께 들어 있는 것이 F = ⟨E⟩ − TS예요.

이서연 S01
이서연

극한값만 맞추고 1차 항을 버렸더니 극한으로 가는 길의 모양이 틀린 거네요. 테일러 전개에서 늘 조심하라던 거요.

문제 7. 정답 로짓을 10 올리면 손실은 10 줄어드나

세 클래스 분류기가 로짓 z = (3, 1, 0)을 내놓았고 정답은 둘째 클래스다. 온도 1에서 에너지를 −z로 둔다. (가) 교차 엔트로피 손실을 정답 클래스의 에너지와 자유에너지로 구하라. (나) 정답 클래스의 로짓만 10 올려 (3, 11, 0)이 되면 손실은 얼마나 줄어드는가?

김민준 M01
김민준

(가)는 F = −logsumexp(z) = −ln(e³ + e + 1) = −3.170이고 정답 클래스의 에너지는 −1이니까, 손실은 −1 − (−3.170) = 2.170이에요. (나)는 정답의 에너지가 10 내려가니까 손실도 10 줄어서 −7.83… 손실이 음수가 됐어요.

이서연 S12
이서연

교차 엔트로피는 음수가 될 수 없잖아. −ln p에서 p는 1을 넘지 못하니까.

선생님 T01
선생님

정답 로짓을 올리는 동안 F는 그대로 있나요?

김민준 M07
김민준

아, F도 로짓으로 계산하니까 같이 움직여요. (3, 11, 0)이면 F = −ln(e³ + e¹¹ + 1) = −11.0004이고 정답의 에너지는 −11이라 손실은 0.00035예요. 10이 아니라 2.17만큼만 줄었네요.

이서연 S09
이서연

logsumexp는 가장 큰 로짓보다 늘 크니까, F는 가장 낮은 에너지보다 늘 조금 더 낮아. 그래서 정답의 에너지에서 F를 뺀 손실은 0보다 크고, 정답 로짓이 다른 로짓보다 훨씬 크면 F가 정답의 에너지 바로 아래에 붙어서 손실이 0으로 다가가.

김민준 M01
김민준

이미 반에서 1등인데 시험 점수를 10점 더 올려도 등수는 1등에서 더 오르지 않는 거랑 같네요. 손실은 1등과의 거리를 재는 거니까요.