최대우도법 (Maximize Likelihood)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
최대우도법 (Maximum likelihood Method)
칼만필터 알고리즘은 Predict 하고 Correct 하는 과정입니다. Predict 과정은 Prior를 얻는 Maximum Likelihood method가 되며, Correct하는 과정은 Bayesian의 Posterior를 얻는 과정입니다.
최대우도법 (Maximum likelihood)은 확률 적인 개념에서 파라미터를 추정하는 과정입니다. 이는 Error를 최소화 시키는 것 뿐만 아니라 분산을 최소화 시키는 목적이 있습니다. 결론은 파라미터 추정에 있어서 정규분포를 따른다는 가정으로 인해, 최대우도법과 Error를 최소화 시키는 과정인 Least square error랑 동일하게 됩니다.
조건부 확률 (Conditional Probability)
조건부 확률은 베이지안과 MLE(최대우도법)을 이해하는데 있어 가장 기초적인 지식입니다. 조건부 확률이란 밑밥을 깔아두고 확률을 계산하는 과정입니다. 조금 더 정확한 이론으로 말씀드리면 어떠한 사건(B)가 일어났을 때, (A)가 일어날 확률은 얼마 인가? 를 계산하는 것입니다.
P(A|B)= \frac{A(A \cap B)}{P(B)}=\frac{A(A , B)}{P(B)} \tag{1}
가정사항이 분모로 나누고, B가 일어났을 뒤 A가 일어나게 되니 분자에는 교집합 형태의 확률이 나타납니다.
Likelihood (칼만필터)
Likelihood는 최대 가능도라고 해서, 어떠한 파라미터를 예측하는데 사용하게 됩니다. 이는 A,B,C… 사건들이 동시에 일어날 확률들을 추론할 때 사용됩니다. 즉, 교집합에 대한 확률을 예측하는 정도가 됩니다.
교집합의 표현은 식 (1)의 연장선이 됩니다. 교집합 형태의 식을, 조건부 확률과 P(B)의 형태로 표현하여 식 (2)의 형태로 변형 시켜줄 수 있습니다.
P(A,B)=P(B)P(A|B) \tag {2}
식 (2) 의 변수량을 늘리게되면, 실험 데이터 값에 대하여 확률적인 표현을 해주게 됩니다. 이는 Likelihood를 만들기 위한 첫번째 준비 과정입니다.
\begin{aligned}p(y_1,y_2,y_3,\cdots,y_n) & = p(y_1)p(y_2,y_3,\cdots,y_n | y_1) \\& =p(y_1)p(y_2 | y_1)p(y_3,y_4, \cdots,y_n|y_1,y_2) \\& =p(y_1)p(y_2|y_1)p(y_3|y_1,y_2)\cdots p(y_n |y_1,\cdots,y_{n-1}) \tag{3}\end{aligned}
식 (3)을 보면 전체 교집합 확률은 조건부 확률의 연속적인 과정이 됨을 알 수 있습니다. 계산 과정은 앞에서 부터 천천히 풀어주면 됩니다. 먼저, p(y_{1}) 을 풀고, 다음인 p(y_{2}|y_{1}) 풀어줄 수 있습니다.
칼만필터 알고리즘도 유사하게 t=1부터 t=n까지 joint distribution으로 풀어주게됩니다. 이는 쌓여진 Data를 가지고 필터를 걸어준다고 직관적으로 예측할 수 있습니다.
\begin{aligned}p(y_1) &=\int p(y_1,x_1)dx_1 \\& =\int p(y_1 |x_1)p(x_1)dx_1 \\p(y_2 | y_1) & = \int p(y_2,x_2 | y_1)dx_2 \\ \tag{4}&= \int p(y_2 | x_2)p(x_2 | y_1) dx_2 \\\end{aligned}
만약 y=Ax+V 라는 식이 있다고 보겠습니다. x가 평균이 0이고 분산 V인 분포를 따를 때, y의 분포 아래와 같이 표현을 해줄 수 있습니다.
여기서 칼만필터 Update 과정을 보게되면, 다음과 같은 과정을 거치게 됩니다. y_1 이 주어졌을 때, x_2 를 추정을 하는 것을 x_2^1로 표현을 해주면, 전체적인 확률 과정은 아래와 같이 됩니다.
p(y_1) \sim N(Ax_1,AVA^T) \\p(y_2|y_1) \sim N(Ax_2^1,AV_2^1A^T) \\ p(y_t | y_1,y_2, \cdots,y_{t-1} ) \sim N(Ax_t^{t-1} ,Ax_{t-1}^tA^T) \tag{5}
칼만필터 Update 과정은 data가 들어올 떄마다, 새로운 Data로 계속 update 하는 과정으로 볼 수 있습니다.
Likelihood (파라미터 추정)
likelihood는 또한, Parameter를 예측하는데 사용합니다. Model 식과 Data에 대해서 다음과 같이 정해줄 수 있습니다.
Y=F(X,\theta)+E , where \,Y=Exp \, data, \theta =parameter\, E=error \\\text {Let joint distribution as } p(E | \psi) \\E(\theta ) =Y-F(X,\theta) \\ L(\theta, \psi) \triangleq p(E(\theta)| \psi) \tag{6}
L은 Likelihood가 됩니다. 의미를 보자면, 확률 분포 Parameter ( \mu , \sigma \in \psi ) 가 주어졌을 때, error 또는 데이터의 확률이 어떻게 될 것인가? 예측하는 것입니다. 만약, Parameter가 잘 주어지지 않았더라면 error가 너무 크거나 작게 확률이 떨어지게 됩니다.
i번째의 error의 분포가 N_r (0,V_{\i}) 를 따른다고 보면, 이때의 확률 분포는 다음과 같습니다.
p_i (\epsilon _i |V_i ) =(\frac {1}{\sqrt{2\pi}})^r \frac{1}{\sqrt {|det(V_i)|}}e^{-1/2\epsilon_i^TV_i^{-1}\epsilon_i}\tag{7}
이 때 각 Error들이 독립적이라고 보면, 교집합(Joint Distribution)은 연속적인 곱셈의 형태로 표현이 됩니다.
P(E | V) = \Pi_{i=1}^n (\frac {1}{\sqrt{2\pi}})^{r} \frac{1}{\sqrt {|det(V_i)|}}e^{-1/2\sum_{i=1}^n \epsilon_i^TV_i^{-1}\epsilon_i} \tag{8}
이를 Likelihood 와 같이 나타내면 식 (9)와 같이 됩니다.
\begin {aligned}L(\theta ,\psi ) & \triangleq p(Y-F(X,\theta) | \psi) \\L(\theta, V_1,V_2,\cdots,V_n) & = \Pi_{i=1}^n \frac{1}{\sqrt{2 \pi} \sqrt{|det(V_i)|}}e^{-1/2\sum_{i=1}^n(y_i-f(X_i,\theta))^TV_i^{-1}(y_i-f(X_i,\theta))} \tag{9} \end {aligned}
최대우도법 (Maximize Likelihood)
칼만필터 뼈대가 되는 Maximize Likelihood 법입니다. 먼저 아래의 영상을 보시면, Likelihood의 작동법에 대하여 잘 나와 있습니다.
Likelihood는 parameter가 주어졌을 때, Data에 대한 확률입니다. 이에 대한 확률을 최대화하는 것이 Maximize Likelihood method가 됩니다.
하지만, "칼만필터"는 노이즈를 최소화 시켜서, 우리가 원하는 방향으로 제어하기 위하여 사용이 됩니다. 최대화와 최소화의 개념인데, 비슷하다고 하니 조금 의아해 하실 수 있습니다.
여기에 대한 해답은 Log 최대 우도법 해석을 해주게되면, 동일한 알고리즘을 가지고 있음을 알 수 있습니다
먼저 식 (9)에 대한 식을 Log를 취하게 되면, 곱셈 operator에서 일반적인 덧셈 형태로 변환을 시켜줄 수 있습니다.
\begin {aligned}log L &=-0.5(log(2\pi)) -0.5log(|det(V_i)|)-0.5{\sum_{i=1}^n(y_i-f(X_i,\theta))^TV_i^{-1}(y_i-f(X_i,\theta))} \\&= -0.5(log(2\pi)) -0.5log(|det(V_i)|)-0.5{\sum_{i=1}^n(e(\theta))^TV_i^{-1}(e(\theta))} \\ \tag{10}\end {aligned}
Error의 최소화
만약에 Variance에 대하여 모두 안다고 보겠습니다. 그러면 L 값을 최대화 하는 것은 Sigma에 있는 e(\theta) 을 최소화 하는 과정이 됩니다.
즉, 최대화 문제가 error의 최소화 문제로 바뀌게 됩니다. 이는 칼만필터 알고리즘과 동일 하죠? 여기서 모든 error들이 independent하고 동일한 Covariance matrix V에 따른다고 보면 위 식은 간단해집니다.
모든 error들이 독립적이니, off diagonal 값은 0이 되고, 각 실험에 대한 값만 존재 하게 됩니다.
그러면 식 (10)의 문제는 간단하게 아래와 같이 표현이 됩니다.
\sum_{i=1}^ne_{i}^T(\theta)V^{-1}e_i(\theta)=Tr(V^{-1}M(\theta)) \\M(\theta)=\sum _{i=1}^n e_i(\theta)e_i(\theta)^T \\ \tag{11} \phi (\theta) \triangleq 0.5Tr(V^{-1} M(\theta))
분산의 최소화
식 (10)을 보면 Variance가 주어졌거나, 아니거나 error에 대한 term을 최소화 시키는 것을 확인할 수 있습니다. 식 (10)을 식 1개만 끌고 와서 다시 써서 해석을 해보겠습니다.
\frac{\partial log L}{\partial V_i}= -\frac{n}{2V_i}+\frac{1}{V_i^2}\sum_{i=1}^ne_i^2(\theta)=0 \\\hat{V_i}=\frac{1}{n} \sum_{i=1}^ne_i^2(\theta) \tag{12}
결론적으로는 (12)의 식은 (11)의 식과 동일하게 error를 최소화 시키는 것으로 나타나게 됩니다.
댓글
댓글 쓰기