본문 바로가기

추천 시스템/Collaborative Filtering

우도 추정


[https://ratsgo.github.io/statistics/2017/09/23/MLE/](https://ratsgo.github.io/statistics/2017/09/23/MLE/)

[https://datascienceschool.net/view-notebook/dc6528fbf3ed4f9885e243198ef7694c/]

  


최대우도추정


최대우도추정(maximum likelihood estimation)이란  모수(parameter)가 미지의 θ인 확률분포에서 뽑은 표본(관측치) x들을 바탕으로 θ를 추정하는 기법입니다. 다시말해, 표본들을 보고 모수를 추정하는 것이다.

  

동전 던지기를 예를 들어보자. 동전 던지기는 이항분포를 따르며, 앞면이 나올 확률 p와 뒷면이 나올 확률 1-p로 이뤄진다.

이항분포의 확률 함수는 다음과 같다.

$p(x)=\begin{pmatrix} n \\ x \end{pmatrix}{ p }^{ x }{ (1-p) }^{ n-x }$

  

만약, 앞면이 나올 확률을 0.5라고 가정하고, 100번 던졌을 때 56번이 앞면이 나올 확률을 구하면 다음과 같다.

$p(X=56|\theta =0.5)=\begin{pmatrix} 100 \\ 56 \end{pmatrix}{ 0.5 }^{ 56 }{ 0.5 }^{ 44 }\approx 0.0389$

https://ratsgo.github.io/statistics/2017/09/23/MLE/


머신러닝에서 최대 우도 추정을 사용할 땐 로그를 취한다.

그 이유는, 확률이 1보다 작기 때문에 계속 곱하면 그 값이 지나치게 작아져 언더플로우 문제가 발생하기 때문이다.

$\begin{align*} { \theta }_{ ML }&=arg\max _{ \theta }{ { P }_{ model }\left( X|\theta \right) } \\ &=arg\max _{ \theta }{ \left\{ { E }_{ X\sim { \hat { P } }_{ data } }\left[ \log { { P }_{ model }\left( x|\theta \right) } \right] \right\} } \end{align*} %]]$


  


베르누이 분포


- 각각의 $x_i$에 대한 확률 분포
  $p(x:\theta)= Bern(x:\theta)= \theta^x(1-\theta)^{1-x}$
 
- 독립 샘플 $x_{1:N}$이 있는 경우
  $L(\theta;x_{1:N}) = P(x_{1:N};\theta)= \prod_{i=1}^N \theta^{x_i}(1-\theta)^{1-x_i}$
L은 확률밀도 함수이며, 표본이 독립적이라고 가정하기 때문에 확률밀도함수를 곱셈으로 정의할 수 있다.

- Log-likelihood
$logL= log P(x_{1:N};\theta) = \Sigma(x_i log\theta + (1-x_i)log(1-\theta))$

 


*참고: 확률밀도함수