10장 — 요동과 응답

추정의 정밀도: 스코어의 분산이 곧 정보다

흔히 측정은 덜 흔들릴수록 정확하다고 생각하는데, Fisher 정보는 모델이 스스로 뽑은 샘플에서 스코어가 흔들리는 정도였다. 그렇다면 스코어가 크게 흔들리는 모델은 파라미터에 대해 적게 알려 주는 걸까, 많이 알려 주는 걸까? 샘플을 보고 파라미터를 알아맞히는 일로 물어보자.

역사: 라오의 부등식

1940년대 중반 인도 캘커타 대학교에서 석사 과정 학생들에게 추정 이론을 가르치던 젊은 통계학자 라오는, 샘플 수가 클 때 추정량의 분산이 Fisher 정보로 정해지는 하한보다 작아질 수 없다는 피셔의 결과를 수업에서 다뤘다. 그러자 한 학생이 샘플 수가 작을 때도 그런 부등식이 성립하느냐고 물었다. 전해지는 이야기로는, 라오는 수업에서 답하지 못했지만 그날 밤 코시–슈바르츠 부등식 하나로 이를 풀어 다음 수업에서 보였다. 샘플 수가 작아도 성립하는 이 부등식을 실은 1945년 『캘커타 수학회보』 논문에서 그는 Fisher 정보를 분포들 사이의 거리를 재는 자(metric)로 쓰자는 제안도 함께 내놓았다. 스웨덴의 크라메르도 1946년에 낸 책에서 같은 부등식을 따로 얻었다. 라오가 제안한 거리를 따라 걷는 것이 50년쯤 뒤 아마리가 내놓은 자연 그래디언트다.

캘리엄푸디 라다크리슈나 라오(1920–2023). 2012년 인도 통계연구소 첸나이 강연에서. 사진: Prateek Karandikar, 출처: Wikimedia Commons, CC BY-SA 4.0
캘리엄푸디 라다크리슈나 라오(1920–2023). 2012년 인도 통계연구소 첸나이 강연에서. 사진: Prateek Karandikar, 출처: Wikimedia Commons, CC BY-SA 4.0

크라메르–라오 부등식

앞면 확률이 0.3인 동전을 100번 던져, 앞면이 나온 비율로 p를 어림한다고 하자. 비율의 표준편차는 √(0.3 × 0.7/100) = 0.0458이다. 한편 동전 한 번의 결과가 p에 대해 주는 Fisher 정보는 𝓘(p) = 1/(p(1 − p)) = 4.76이고, 100번 던지면 정보가 100배로 쌓인다. 정보의 역수에 제곱근을 씌우면 1/√(100 × 4.76) = 0.0458로, 비율의 표준편차와 똑같다.

앞면 확률 0.3인 동전을 100번 던져 앞면의 비율을 구하는 실험을 20만 번 되풀이한 분포. 비율은 참값 0.3 둘레로 표준편차 0.0458만큼 흔들리고, 이것은 Fisher 정보로 낸 1/√(100 × 4.76)과 같다
앞면 확률 0.3인 동전을 100번 던져 앞면의 비율을 구하는 실험을 20만 번 되풀이한 분포. 비율은 참값 0.3 둘레로 표준편차 0.0458만큼 흔들리고, 이것은 Fisher 정보로 낸 1/√(100 × 4.76)과 같다

두 값이 같은 것은 우연이 아니다. 평균하면 참값이 나오는 편향 없는 추정량(unbiased estimator)이라면, 어떤 방법을 쓰든 그 분산이 다음 값보다 작을 수 없다.

Var(θ^) ≥ 1n I(θ)\mathrm{Var}(\textcolor{#1b9e77}{\hat{\theta}}) \ \ge\ \frac{1}{\textcolor{#1f77b4}{n}\, \textcolor{#008b8b}{\mathcal{I}}(\textcolor{#1b9e77}{\theta})}
θ^샘플로 어림한 파라미터 (추정량)n샘플 수I(θ)샘플 하나의 Fisher 정보\begin{array}{ll} \textcolor{#1b9e77}{\hat{\theta}} & \text{샘플로 어림한 파라미터 (추정량)} \\ \textcolor{#1f77b4}{n} & \text{샘플 수} \\ \textcolor{#008b8b}{\mathcal{I}}(\textcolor{#1b9e77}{\theta}) & \text{샘플 하나의 Fisher 정보} \end{array}

이 부등식을 크라메르–라오 부등식 (추정량 분산의 하한, Cramér–Rao bound)이라 한다. 앞면의 비율은 이 하한에 정확히 닿는 추정량이다. Fisher 정보가 클수록 하한이 낮으니, 샘플 하나하나가 파라미터에 대해 많이 알려 준다. 그런데 Fisher 정보는 스코어가 흔들리는 정도였다. 스코어가 크게 흔들리는 모델일수록 그 모델의 파라미터를 더 정밀하게 알아맞힐 수 있다는 말이 된다.

온도도 파라미터다

온도도 파라미터의 하나로 볼 수 있다. 에너지 βE는 역온도 β의 일차식이므로 β에 대한 Fisher 정보는 에너지의 분산 Var(E)이고, 요동-응답 관계로 옮기면 kT²C다. 그렇다면 2준위 입자로 온도계를 만들 때, 같은 온도계로 어느 온도를 가장 정확히 잴 수 있을까? 온도계가 가장 정확한 온도는 아래 문제 12에서 계산해 본다.

지금까지 ln Z에서 꺼낸 것들을 한 장에 모으면 다음과 같다.

flowchart LR
  A["ln Z<br/>로그 분배함수"] -->|"한 번 미분"| B["평균<br/>⟨E⟩, ⟨φ⟩"]
  B -->|"한 번 더 미분"| C["분산·공분산<br/>요동"]
  C --- D["응답<br/>열용량 C, ∂⟨φ⟩/∂θ"]
  C --- E["곡률<br/>Fisher 정보 𝓘, 손실의 헤시안"]
  C --- F["잴 수 있는 정도<br/>에너지 샘플로 온도 알아맞히기"]

문제 12. 좋은 온도계

(가) 실수 x 위의 에너지 기반 모델 E_θ(x) = θx²/2에서 Fisher 정보 𝓘(θ)를 ln Z(θ)의 2차 미분과 ∂E/∂θ의 분산, 두 가지 방법으로 구하라. (나) θ = 0.4인 이 모델에서 샘플 100개를 뽑아 최대우도 추정값 θ̂ = 1/(x²의 표본평균)을 구하는 실험을 2만 번 되풀이할 때, θ̂의 표준편차를 1/√(100 × 𝓘)와 비교하라. (다) 2준위 입자 1000개로 만든 온도계가 있다. 들뜬 입자 수를 한 번 읽어 열원의 역온도를 추정할 때, βε = 5, 2.4, 0.1 가운데 어느 온도를 가장 정확히(상대 오차가 가장 작게) 재는가?

이서연 S02
이서연

(가)부터 할게요. Z(θ) = ∫e^(−θx²/2)dx = √(2π/θ)이니까 ln Z = ½ ln 2π − ½ ln θ예요. 한 번 미분하면 −1/(2θ)이고 두 번 미분하면 1/(2θ²)이에요.

선생님 T02
선생님

다른 방법은요? ∂E/∂θ가 무엇이죠?

이서연 S03
이서연

x²/2요. 그 분산을 구하려면 x²의 분산이 필요한데…

선생님 T01
선생님

모델에서 x는 어떤 분포를 따르죠?

이서연 S11
이서연

분산이 1/θ인 정규분포요. 그러면 x²의 분산이 2/θ²이고, 4로 나누면 1/(2θ²)이에요. 둘이 같아요. θ = 0.4면 𝓘 = 3.125예요.

김민준 M03
김민준

이거 데이터 {−2, −1, 1, 2}의 x² 평균이 2.5였던 그 모델이네요. Z를 버렸더니 θ가 음수로 달아났고, 제대로 하면 θ = 1/2.5 = 0.4였던 거요. (나)는 돌려 볼게요. 샘플 100개로 θ̂를 2만 번 구하니까 평균이 0.408, 표준편차가 0.0590이에요. 1/√(100 × 3.125) = 0.0566이니까 조금 크네요.

이서연 S06
이서연

평균이 0.4가 아니라 0.408이잖아. 표본평균을 낸 다음 역수를 취했으니까 조금 치우칠 것 같은데.

선생님 T02
선생님

얼마나 치우치는지 계산해 볼 수 있겠어요?

이서연 S03
이서연

θx²는 표준정규분포를 따르는 수의 제곱이네요. 그런 수 100개의 제곱을 더한 값이 따르는 분포를 자유도 100인 카이제곱 분포라고 하죠. 그러면 x²의 표본평균에 θ를 곱한 건 그 카이제곱 분포를 100으로 나눈 거예요.

선생님 T01
선생님

우리는 그 역수를 썼죠. 역수의 평균은요?

이서연 S08
이서연

자유도 k인 카이제곱의 역수는 평균이 1/(k − 2)니까, 100으로 나눈 것의 역수는 평균이 100/98이에요. 그래서 0.4 × 100/98 = 0.408이에요.

선생님 T13
선생님

잘 봤어요. 편향이 없는 추정량이라면 어떤 방법을 쓰든 분산이 1/(n𝓘)보다 작을 수 없다는 게 크라메르–라오 부등식이었죠. 이 추정량은 조금 치우쳐서 그 하한을 그대로 적용할 수는 없지만, 최대우도 추정은 샘플이 많아지면 편향이 사라지며 이 하한에 붙어요. 그러니까 Fisher 정보는 「샘플 하나가 파라미터에 대해 알려 주는 양」이에요. 이제 (다)로 가요.

김민준 M11
김민준

(다)는 βε = 5가 제일 좋아요. 거의 다 바닥 상태라 들뜬 입자가 평균 6.7개, 표준편차 2.6개밖에 안 돼요. 눈금이 거의 안 흔들리니까 읽을 때마다 같은 값이 나올 거예요.

이서연 S06
이서연

반대 아니야? 방금 역온도에 대한 Fisher 정보가 에너지의 분산이라고 했잖아. 분산이 클수록 정보가 많으니까 분산이 249ε²로 가장 큰 βε = 0.1이 제일 좋아.

선생님 T12
선생님

두 사람 다 반만 맞았어요. 문제는 상대 오차를 물었어요. 한 번 읽어서 역온도를 추정할 때 틀리는 폭이 1/√Var(E)라면, 상대 오차는 그것을 β로 나눈 거예요.

이서연 S02
이서연

1/(β√Var(E)) = 1/√(β²Var(E))이고… β²Var(E)를 어디서 본 것 같은데요.

선생님 T02
선생님

요동-응답 관계에서 Var(E)는 무엇과 이어졌죠?

이서연 S09
이서연

kT²C요. 그럼 β²Var(E)는 kT²C에 1/(kT)²을 곱한 거니까 C/k예요. 상대 오차가 1/√(C/k)이에요!

김민준 M12
김민준

그럼 열용량만 보면 되네요. 입자 하나의 C/k가 βε = 5에서 0.166, 2.4에서 0.439, 0.1에서 0.0025였으니까 1000개면 166, 439, 2.5이고, 상대 오차는 7.8%, 4.8%, 63%예요. 제 βε = 5는 2등이고 서연이의 βε = 0.1은 꼴찌네?

이서연 S06
이서연

꼴찌라니. 시뮬레이션으로도 확인해 봐.

김민준 M01
김민준

들뜬 입자 수를 이항분포로 20만 번 뽑고 역온도를 ln((1000 − n)/n)으로 되돌려 보니까 8.8%, 4.8%, 63%요. βε = 5만 조금 나쁜데, 들뜬 입자가 평균 6.7개뿐이라 어림이 거친 것 같아요.

선생님 T02
선생님

왜 가운데가 이기는지 말로 해 볼래요?

이서연 S02
이서연

뜨거울 때는 에너지의 분산은 크지만 p가 이미 1/2 근처라 온도를 바꿔도 평균이 거의 안 움직여요. 샘플의 요동이 전부 노이즈가 되는 거죠.

김민준 M07
김민준

차가울 때는 반대로 노이즈는 작은데, 온도를 바꿔도 들뜨는 입자가 거의 안 늘어서 신호가 작고.

선생님 T02
선생님

신호와 노이즈를 각각 무엇으로 쓸 수 있을까요?

이서연 S10
이서연

역온도를 조금 바꿨을 때 평균이 움직이는 양이 신호, 샘플이 흔들리는 폭이 노이즈인데… 아, 요동-응답 관계 때문에 신호도 분산, 노이즈의 제곱도 분산이에요. 신호의 제곱을 노이즈의 제곱으로 나누면 분산 하나가 남아요.

선생님 T13
선생님

그래요. 응답이 곧 요동이라서, 온도계가 온도를 얼마나 잘 알려 주는지가 요동 하나, 열용량 하나로 정해져요. 좋은 온도계는 열용량이 큰 온도계이고, 두 상태짜리 입자로 만든 온도계는 문제 3에서 찾은 쇼트키 봉우리 근처에서 가장 정확해요.

김민준 M09
김민준

그럼 Fisher 정보가 큰 파라미터는 데이터로 잘 정해지는 파라미터고, EWC는 그런 파라미터를 옛 태스크가 이미 정해 놓은 값에 붙잡아 두는 거네요. 요동이 작아야 정확하다고만 생각했는데, 스코어가 흔들리지 않으면 아무것도 알려 주지 않는 거였어요.

이서연 S11
이서연

곡률이 크다, 요동이 크다, 잘 잴 수 있다. 셋이 다 같은 말이었네.

직접 움직여 보기2준위 입자 온도계새 창에서 열기 ↗