10장 — 요동과 응답

열용량: 온도에 대한 응답

요동을 적은 식의 가운데 항은 역온도를 조금 바꿨을 때 평균 에너지가 움직이는 비율이었다. 그런데 실험실에서 손으로 돌리는 것은 역온도가 아니라 온도이니, 물음을 이렇게 바꿔 보자. 온도를 1도 올리려면 에너지가 얼마나 들어가야 할까? 여름 한낮의 해변에서는 모래가 맨발로 딛기 어려울 만큼 뜨거운데 바닷물은 미지근하다. 같은 햇볕을 받는데도 물의 온도가 덜 오르는 것은, 같은 무게의 모래보다 온도를 1도 올리는 데 에너지가 네다섯 배쯤 더 들기 때문이다.

이처럼 계에 걸린 조건을 조금 바꿨을 때 어떤 양의 평균이 따라 움직이는 비율을 그 조건에 대한 응답(response)이라 한다. 바꾸는 조건이 온도이고 지켜보는 양이 평균 에너지일 때의 응답, 다시 말해 온도를 올릴 때 에너지가 얼마나 들어가는지를 재는 응답이 열용량 (온도에 대한 평균 에너지의 응답, heat capacity)이고, C ≡ ∂⟨E⟩/∂T로 쓴다. 이 말로 하면 바닷물은 모래보다 열용량이 큰 물질이다.

1 kg에 넣은 에너지와 오른 온도. 열용량은 이 직선의 기울기다. 1도를 올리는 데 바닷물은 약 4 kJ, 마른 모래는 약 0.8 kJ이 들어 바닷물의 직선이 다섯 배쯤 가파르다
1 kg에 넣은 에너지와 오른 온도. 열용량은 이 직선의 기울기다. 1도를 올리는 데 바닷물은 약 4 kJ, 마른 모래는 약 0.8 kJ이 들어 바닷물의 직선이 다섯 배쯤 가파르다

2준위 입자의 열용량

2준위 입자 하나의 평균 에너지는 들떠 있을 확률에 ε를 곱한 ⟨E⟩ = ε/(e^(βε) + 1)이다. β = 1/kT를 넣고 이것을 온도로 미분하면 C = k(βε)²e^(βε)/(e^(βε) + 1)²이고, βε = ln 2에서는 (ln 2)² × 2/9 = 0.107k다. 온도를 바꾸면 열용량 C는 어떻게 달라질까? 온도를 올리면 들뜨는 입자가 늘어나니 열용량도 따라 커질 것 같지만, 열용량이 온도에 따라 어떻게 바뀌는지는 요동과 응답의 관계를 세운 뒤 문제 3에서 계산해 본다.

역온도를 조금 바꿔 보면

이번에는 미분 대신 실험하듯이 재 보자. 입자 세 개짜리 2준위 계에서 온도를 조금 바꾸고 평균 에너지가 얼마나 움직이는지 보는 것이다. 역온도를 βε = ln 2 = 0.6931에서 0.6831로 0.01만큼 낮추면 온도는 약 1.5% 올라가고, 요동을 구할 때 쓴 표를 다시 계산하면 평균 에너지는 1.00668이 된다. 늘어난 양 0.00668을 역온도의 변화 0.01로 나누면 0.668로, 앞에서 구한 분산 0.667과 거의 같다.

우연일 수도 있으니 입자 수를 바꿔 가며 같은 두 계산을 해 보자. 셋째 칸은 에너지 값별 확률로 직접 계산한 분산이고, 마지막 칸은 역온도를 0.01 낮출 때 평균 에너지가 늘어난 양을 0.01로 나눈 값이다.

N 평균 에너지 분산 표준편차 표준편차 / 평균 평균 에너지의 증가 ÷ 0.01
3 1 0.667 0.816 0.816 0.668
30 10 6.667 2.582 0.258 6.678
300 100 66.67 8.165 0.082 66.78
3000 1000 666.7 25.82 0.026 667.8

어느 입자 수에서나 마지막 칸은 분산과 0.2% 안에서 맞는다. 에너지가 저절로 흔들리는 정도와, 온도를 바꿨을 때 평균 에너지가 따라 움직이는 정도는 서로 다른 질문인데 같은 숫자로 답해진다. 왜 같은 숫자일까?

ML에서: temperature가 가장 잘 먹히는 구간

열용량은 엔트로피로도 적을 수 있다. 에너지의 변화는 온도의 정의 1/T = ∂S/∂E에서 나오는 dE = T dS로 엔트로피의 변화와 이어져 있으므로 C = T ∂S/∂T이고, 열용량은 엔트로피가 로그 온도에 반응하는 정도 ∂S/∂ln T이기도 하다. LLM 샘플링의 temperature τ도 softmax의 온도이니 같은 물음을 던질 수 있다. τ를 조금 바꾸면 출력 분포의 엔트로피는 얼마나 변할까? 아래 위젯에서 로짓과 τ를 바꿔 가며 엔트로피가 가장 크게 반응하는 구간을 찾아보자. 그 반응이 무엇으로 정해지는지는 요동과 응답의 관계를 세운 뒤 문제 4에서 계산한다.

직접 움직여 보기temperature가 가장 잘 먹히는 구간새 창에서 열기 ↗

문제 2. 해변의 모래와 바닷물

여름 한낮, 마른 모래 10 kg과 바닷물 10 kg이 햇볕에서 똑같이 40 kJ씩 에너지를 받았다. 1 kg의 온도를 1도 올리는 데 드는 에너지(비열)는 마른 모래가 약 0.8 kJ, 바닷물이 약 4 kJ이다. (가) 두 쪽의 온도는 각각 몇 도 오르는가? (나) 두 쪽의 온도를 똑같이 5도 올리려면 에너지가 각각 얼마나 들어야 하는가? (다) 10 kg짜리 모래와 바닷물의 열용량 C는 각각 얼마인가?

김민준 M04
김민준

(가)는 곱하면 되죠. 모래가 40 × 10 × 0.8 = 320도, 바닷물이 40 × 10 × 4 = 1600도… 바다가 끓겠네요.

이서연 S01
이서연

한낮 햇볕에 바다가 1600도 오를 리가 없잖아. 단위부터 맞춰 봐.

선생님 T01
선생님

비열의 단위가 kJ/(kg·K)이에요. 받은 에너지 40 kJ을 무엇으로 나눠야 도(K)가 남죠?

김민준 M07
김민준

질량 곱하기 비열로 나눠야 kJ이 지워지고 도가 남네요. 모래는 40/(10 × 0.8) = 5도, 바닷물은 40/(10 × 4) = 1도예요. (나)는 거꾸로 곱하면 되니까 모래 10 × 0.8 × 5 = 40 kJ, 바닷물 10 × 4 × 5 = 200 kJ이고요.

이서연 S01
이서연

(다)는 1도 올리는 데 드는 에너지니까 모래 8 kJ/K, 바닷물 40 kJ/K. 같은 에너지를 넣으면 열용량이 다섯 배인 쪽이 온도가 5분의 1만 오르는 거네.

김민준 M01
김민준

용량이 큰 보조 배터리는 같은 시간 충전해도 눈금이 덜 올라가는 거랑 같네요. 열용량이 배터리 용량, 오른 온도가 눈금이고, 같은 전기가 들어가도 채워야 할 통이 크니까요.