승수는 역온도: 가장 큰 엔트로피의 기울기
라그랑주 승수로 구한 분포에서 β는 볼츠만 분포의 역온도와 꼭 같은 자리에 앉았다. 평균을 지키려고 붙인 계수가 왜 하필 역온도와 같은 자리에 서는 것일까?
먼저 주사위에서 숫자로 보자. 평균 눈을 4.4, 4.5, 4.6으로 두고 각각 최대 엔트로피 분포를 구하면, 그 분포들의 엔트로피, 곧 그 평균에서 도달할 수 있는 가장 큰 엔트로피는 1.6486, 1.6136, 1.5743이다. 평균을 0.1 올릴 때마다 엔트로피가 줄어드는 셈인데, 양옆의 차이를 0.2로 나누면 −0.371이다. 이 수는 평균 눈 4.5에서 뉴턴 방법으로 찾은 승수, 곧 눈을 에너지로 볼 때의 β = −0.3710과 같다. 우연일까?
라그랑주 승수로 구한 해 pᵢ = e^(−βEᵢ)/Z를 엔트로피 식에 다시 넣으면 도달할 수 있는 가장 큰 엔트로피를 평균 에너지의 함수로 얻고, 그것을 평균 에너지로 미분하면 승수가 나온다.
셋째 식을 얻으려면 첫 식을 Ē로 미분하되 β도 Ē에 따라 움직인다는 것을 챙기면 된다. β가 움직여서 생기는 항은 Ē + ∂ln Z/∂β에 비례하는데, 둘째 식 때문에 이것이 0이라 β만 남는다. 라그랑주 승수는 일반적으로 「제약의 값을 조금 옮겼을 때 최적값이 늘어나는 비율」이라는 뜻을 갖는데, 여기서는 평균 에너지를 조금 올렸을 때 도달할 수 있는 엔트로피가 늘어나는 비율이다. 그리고 역온도는 경우의 수의 로그가 에너지에 따라 늘어나는 비율 ∂ln W/∂E로 정의되는 양이다. 굴림이 N번이면 평균을 지키는 수열의 수가 대략 e^(N·H_max)이므로 둘은 같은 비율이다. 승수가 역온도 자리에 서는 것은 우연이 아니라 정의상 같은 양이기 때문이다.
주사위에서 승수가 음수였던 것은 평균을 균등 분포의 평균 3.5보다 높은 곳에 고정했기 때문인데, 그 영역에서는 평균을 더 올릴수록 엔트로피가 줄어든다. 에너지로 말하면 높은 에너지 쪽이 더 많이 채워진 음의 온도이고, 눈이 6에서 막혀 있는 주사위처럼 에너지 준위에 위쪽 끝이 있는 계에서만 가능한 일이다.
ML에서: 샘플링 온도
언어 모델에서 다음 토큰을 뽑을 때는 로짓 z를 온도 τ로 나눈 softmax(z/τ)를 흔히 쓴다. 에너지를 −z로 두면 이것도 볼츠만 분포와 같은 꼴이다. 그렇다면 이 「온도」도 어떤 평균을 지키려고 붙인 승수일까? 아래 문제에서 숫자로 확인해 보자.
문제 4. 샘플링 온도는 무엇의 승수인가
다음 토큰 후보 셋의 로짓이 z = (3, 1, 0)이다. (가) τ = 0.9, 1, 1.1에서 softmax(z/τ)의 로짓 평균 ⟨z⟩와 엔트로피 H를 구하라. (나) τ = 0.9에서 1.1로 바뀔 때 엔트로피가 바뀐 양을 로짓 평균이 바뀐 양으로 나누면 얼마인가? τ = 0.45에서 0.55로 바뀔 때는? (다) 로짓 평균을 2.5에 맞추는 τ를 구하라.

(가)는 τ = 1이면 (0.844, 0.114, 0.042)이고 ⟨z⟩ = 2.646, H = 0.524예요. τ = 0.9면 ⟨z⟩ = 2.717, H = 0.449, τ = 1.1이면 ⟨z⟩ = 2.576, H = 0.591이에요.

그런데 샘플링에서는 τ를 정할 뿐이고, 누가 로짓 평균을 어떤 값에 정해 둔 적은 없잖아요. 지키는 평균이 없는데 승수라고 부를 수 있나요?

τ를 하나 고르면 ⟨z⟩가 하나 정해지죠. 거꾸로 ⟨z⟩를 먼저 정하면 τ는 몇 개 나올까요? (나)를 계산하면서 생각해 봐요.

(나)는 (0.591 − 0.449)/(2.576 − 2.717) = −1.004예요. τ = 0.45와 0.55로 하면 −1.991이고요. τ = 1 근처에서 −1, τ = 0.5 근처에서 −2니까 기울기가 −1/τ네요.

에너지를 −z로 두면 평균 에너지가 −⟨z⟩니까, 「평균 에너지를 조금 올릴 때 가장 큰 엔트로피가 늘어나는 비율이 승수」라는 식에 그대로 들어맞아요. 승수가 1/τ, 곧 역온도예요. 그리고 τ가 커질수록 ⟨z⟩는 내려가기만 하니까, ⟨z⟩ 하나에 τ도 하나씩 짝지어져요.

(다)는 τ를 바꿔 가며 찾았더니 τ = 1.214에서 ⟨z⟩ = 2.5예요. 그때 분포는 (0.783, 0.151, 0.066)이고 엔트로피는 0.656이에요.

그래요. 「로짓 평균이 2.5인 분포 가운데 엔트로피가 가장 큰 것」을 고르라고 하면 τ = 1.214인 softmax가 나와요. 온도를 정하는 것과 로짓 평균을 정하는 것은 같은 분포를 두 가지로 가리키는 셈이에요. 샘플링의 「온도」라는 이름은 비유가 아니라 이 자리에서 나온 거예요.

x와 eˣ가 서로를 하나씩 정하는 것처럼, 한 방향으로만 움직이는 관계면 어느 쪽 값을 정해도 같은 점을 가리키는 거네요.