12.2 우도와 최대우도

실습 · 연습문제 2개

손실함수를 우도에서 유도하기 loss-from-likelihood

자주 쓰는 손실함수는 대부분 어떤 확률모형의 평균 음의 로그우도(NLL)다. 세 함수를 완성한다. 모두 관측마다의 NLL을 평균한 값을 반환하고, 정규화 상수까지 포함한다.

  1. gaussian_nll(y, mu, sigma): y∼N(μ,σ2)y \sim \mathcal{N}(\mu, \sigma^2) −log⁡p(y)=12log⁡(2πσ2)+(y−μ)22σ2-\log p(y) = \tfrac12 \log(2\pi\sigma^2) + \frac{(y-\mu)^2}{2\sigma^2}
  2. laplace_nll(y, mu, b): y∼Laplace(μ,b)y \sim \mathrm{Laplace}(\mu, b), 밀도 12bexp⁡ ⁣(−∣y−μ∣/b)\frac{1}{2b}\exp\!\big(-\lvert y-\mu \rvert / b\big)
  3. bernoulli_nll(y, p): y∈{0,1}y \in \{0, 1\}, Pr⁡[y=1]=p\Pr[y = 1] = p

mu, p는 y와 같은 shape의 배열이거나 스칼라다. sigma, b는 양의 스칼라다.

테스트는 다음을 확인한다.

  • σ\sigma가 고정되면 가우시안 NLL은 MSE에 양의 상수를 곱하고 상수를 더한 것이다. 그래서 둘의 최소점이 같다.
  • Laplace NLL을 최소화하는 상수 μ\mu는 중앙값이다(L1 손실).
  • Bernoulli NLL은 binary cross-entropy와 같다.

노출 시간이 다른 계수 데이터의 최대우도 poisson-mle

검출기로 방사선 계수를 여러 번 측정했다. ii번째 측정은 노출 시간 tit_i 초 동안 yiy_i개를 셌고, 계수율을 λ\lambda [1/s]라 하면

yi∼Poisson(λti),p(yi∣λ)=(λti)yie−λtiyi!y_i \sim \mathrm{Poisson}(\lambda t_i), \qquad p(y_i \mid \lambda) = \frac{(\lambda t_i)^{y_i} e^{-\lambda t_i}}{y_i!}

이다. 두 함수를 완성한다.

  1. poisson_nll(lam, counts, exposure_s): 전체 데이터의 음의 로그우도 −∑ilog⁡p(yi∣λ)-\sum_i \log p(y_i \mid \lambda). log⁡yi!\log y_i! 항까지 포함한다(math.lgamma(y + 1)).
  2. poisson_mle(counts, exposure_s): 음의 로그우도를 최소화하는 λ\lambda. 로그우도를 λ\lambda로 미분해 0으로 두면 닫힌 해가 나온다.

힌트: 각 측정의 계수율 yi/tiy_i / t_i를 단순 평균하는 것은 MLE가 아니다. 노출 시간이 긴 측정일수록 정보가 많다. 테스트가 이 차이를 확인한다.