Pharos University ME 253 Fluid Mechanics II - ppt video online download

Pharos University ME 253 Fluid Mechanics II - ppt video online download : External External Flows Bodies in motion, experience fluid forces and moments. Examples include: aircraft, automobiles, buildings, ships, submarines, turbo machines. Fuel economy, speed, acceleration, stability, and control are related to the forces and moments. Airplane in level steady flight: drag = thrust & lift = weight.

칼만 필터 최적화

이전에 칼만 필터 알고리즘에 대해 다뤘습니다. 오늘은 이에 대한 추가 내용을 다뤄 보고자 합니다. Defense 때문에 공부할 시간이 너무 부족했던 ㅜㅜ… 아무튼, 칼만 필터 최적화 과정은 KL Divergence, Cross Entropy 까지 연관이 되니 매우 중요한 내용이 됩니다.

칼만 필터 최적화 과정

칼만 필터 최적화 과정을 통해, 칼만 필터가 어떻게 Update가 되는지? 어떠한 의미를 가지고 있는지 보여드리고자 합니다.

칼만 게인

먼저, 칼만 게인은 다음과 같이 정의 됩니다. (칼만 필터를 얻는 식)

\begin {align}K_k &=\Sigma_0(\Sigma_0+\Sigma_1)^{-1} \\K_k &=P_k^-H^T(HP_k^-H^T+R_k)^{-1} \\\text{ for scalar case   } K_k &=\frac{P_k^-H^T}{(HP_k^-H^T+R_k)}\\\end {align}

(1)의 컨셉을 가지고, 칼만 게인은 (2)식으로 얻어집니다. 여기서 H가 하나 사라지는 것을 볼 수 있는데, 이는 P_k 식을 구하는 과정에서 약분되기 때문입니다. 식 (2)에서 (3)으로 넘어가는 것은 쉽게 해석을 하기 위함입니다. Matrix보다는 스칼라 값을 이용하는 것이 해석적인 측면에서 매우 유리합니다.

최적화 알고리즘
\begin{align}f(x) &\sim f(x_i)+\braket{\nabla f(x_i),x-x_i} +\frac{1}{2}\braket{x-x_i,H(x-x_i)} \end{align}

여기에서 최소점은 Gradient가 0이되는 포인트가 됩니다. 그러면 최적점 x^*에 대해서 식 (5)와 같은 Update 방식을 가지게 됩니다.

\begin {align}\nabla f(x)&=0= \nabla f(x_i)+ H(x-x_i) \Rightarrow x^*=x_i-H^{-1}\nabla f(x_i)\end{align}

칼만 필터 최적화

칼만 필터는 공분산을 최소화 하고, error 값을 최소화 하는 것을 목표로 합니다. 먼저 error를 최소화 하기 위한 Loss function을 다음과 같이 정의 해보도록 하겠습니다.

\begin {align}L(x_k) &= \frac{1}{2} (y_k -Hx_k)^TR_k^{-1}(y_k-Hx_k)+\frac{1}{2} (x_k-x_k^-)^T(P_k^-)^{-1}(x_k-x_k^-) \end {align}

식(6)에 ln과 exp를 취하고,다음과 같은 형태로 변형할 수 있습니다.

\begin {align}L(x_k) &= ln(exp(\frac{1}{2} (y_k -Hx_k)^TR_k^{-1}(y_k-Hx_k)))+ln(exp(\frac{1}{2} (x_k-x_k^-)^T(P_k^-)^{-1}(x_k-x_k^-) ))\end {align}

식 (7)에 Normalization 관련된 상수 (분산)를 더해주면, 최대우도법에서 상사용되는 loss function이 나오게 됩니다.

\begin {align}\bar{L}(x_k) &= -L(x_k)-log\sqrt{2\pi R_k}-log\sqrt{2\pi P_k^-} \\\end {align}

여기서 R_k, P_k^- 는 각각 output과 input(state)에서 발생하는 Noise에 대한 공분산 입니다. error가 없이 볼때는 보통, 평균 값으로 보게 됩니다. y_k=Hx_k+v_k로 정의하면, v_k 는 error가 됩니다.

\begin {align}\mathbb{E}[y_k|x_k] &= \mathbb{E} [Hx_k+v_k]=Hx_k, Cov[y_k|x_k]=R_k \\\therefore p(y_k|x_k) &=\frac{1}{\sqrt{2\pi R_k}}exp(-\frac{1}{2}(y-Hx_k)^TR_k^{-1}(y-Hx_k)) \\\mathbb{E}[x_k|\mathcal{Y}_{k-1}] &= \mathbb{E} [Ax_{n-1}+w_{n-1}]=A\hat{x}_{n-1}, Cov[x_k|\mathcal{Y}_{k-1}]=P_n^- \\\therefore p(x_k|\mathcal{Y}_{k-1}) &=\frac{1}{\sqrt{2\pi P_k^-}}exp(-\frac{1}{2}(x_k-x_k^-)^T(P_k^-)^{-1}(x_k-x_k^-)) \\\end {align}

식 (9)의 의미는 주어진 state에서 y의 관측 값 및 공분산의 표현 방법입니다. 식 (10)의 경우 평균이 주어졌고, 분산을 알 고 있으니 Gaussian 분포를 통해 y_k 가 어떻게 나올지에 대한 예측을 하는 과정이 되겠습니다.

식 (11) 은 반대로, 이전까지의 데이터set에서 다음 state의 x_k 값을 예측하고, 이때 발 생할 수 있는 error들을 예측하고자 하는 과정이 됩니다. 여기에서 x_k 는 state로 예측을 해야하는 값이 됩니다. 반면, y_k 는 실제 측정이 가능한 data입니다.

Bayesian Estimator

posterior =  \frac{likelihood \cdot Prior }{Evidence} \\p(x_k|\mathcal{Y}_{k}) : Posteiror, p(x_k|\mathcal{Y_{k-1}}) : Likelihood, p(y) \\

Bayesian 추론은 이전 사건분포 및 가능도를 이용해서, 현재의 사건에 대한 확률 분포를 예측하는 과정이 됩니다. 이전 사건 분포를 Prior distribution, 가능도를 Likelihood, 현재 사건에 대한 확률 분포를 posterior라고 불러줍니다. 이 posterior는 사후 분포라고 말합니다. 의미로는 사건 후 분포입니다.

관점에서 식 (10)은 Likelihood라고 말해줍니다. 식 (10)을 prior 분포라고 말해줍니다. Likelihood란 가능도라고 하며, 우리가 추정하고자 하는 Parameter를 찾을 때에는 "이럴수도 있다" 라는 것을 의미합니다.

식 (10)은 주어진 x_k 에서 y_k 를 예측하는 분포가 됩니다. 여기서 prior 라는 것은 먼저라는 뜻이 있으며, 사전 분포라고 해석이 되기도 합니다.

이때의 posterior는 식 (13)과 같이 정의되며 (14)의 형태로 비례되는 식을 가지고 있습니다.

칼만필터 & Bayesian Estimator

\begin{align}p(x_k|\mathcal{Y}_{k}) & \propto p(y_k|x_k)p(x_k|\mathcal{Y}_{k-1}) \\& \propto 1/Z\cdot (-\frac{1}{2}(y_k-Hx_k)^TR_k^{-1}(y_k-Hx_k)+(x_k-x_k^-)^T(P_k^-)^{-1}(x_k-x_k^-))\end{align}

해당과정을 조금 더 설명해보자면, 다음의 식을 따르기 때문에 (13)같이 정의 됩니다. 식 (18)의 분모의 경우 분자를 -무한대에서 무한대까지 적분해준 결과입니다. 이에 정규화 상수라고 불러줘서 Z라고 써줍니다.

\begin {align}p(x_k|\mathcal{Y}_k) & =\frac{p(x_k,\mathcal{Y}_k)}{p(\mathcal{Y}_k)} =\frac{p(x_k,y_k,\mathcal{Y}_{k-1})}{p(y_k,\mathcal{Y}_{k-1})} \\p(x_k,y_k,\mathcal{Y}_{k-1}) & = p(y_k|x_k)p(x_k|\mathcal{Y_{k-1}}p(\mathcal{Y_{k-1}})) \\ \therefore p(x_k|\mathcal{Y}_k) & = \frac{ p(y_k|x_k)p(x_k|\mathcal{Y_{k-1}}p(\mathcal{Y_{k-1}}))}{p(y_k,\mathcal{Y}_{k-1}) }=  \frac{ p(y_k|x_k)p(x_k|\mathcal{Y_{k-1}}p(\mathcal{Y_{k-1}}))}{p(y_k|\mathcal{Y}_{k-1})p(\mathcal{Y}_{k-1}) } \\& = \frac{ p(y_k|x_k)p(x_k|\mathcal{Y_{k-1}})}{p(y_k|\mathcal{Y}_{k-1})} \end {align}

Optimal Filtering

Filter를 이용해서 최적화에서 사용되는 Mean square error에 대한 평균 값은 식 (19)와 같이 써줄 수 있게 됩니다. 여기서 평균 값을 구할때, 사용하는 확률분포가 바로 칼만 필터로 얻어진 확률 분포가 됩니다.

\begin{align}\mathbb{E}(||x_k-\hat{x}_k||^2|\mathcal {Y}_k) &= \int ||x_k-\hat{x}_k ||^2p(x_k|\mathcal{Y}_k)dx_k \\\hat{x} &=\mathbb{E}(x_k|\mathcal{Y}_k) = \int x_k p(x_k|\mathcal{Y}_k) dx_k \\\end {align}

KL Divergence and Cross entropy

cross entropy는 식 (21)처럼 표현할 수 있습니다. 이는 log\frac{1}{\hat{p}(x|y)} 값이 확률 p(x,y)를 Filter를 통해서 나오는 값입니다. 어떻게 보면 p(x,y)로 projection 시켰다고 볼 수 있습니다.

\begin {align}\mathbb{E}_{p(x,y)}[-log\hat{p}(x|y)] &= \int p(x,y)log\frac{1}{\hat{p}(x|y)}dxdy \\\end {align}

여기서 KL Divergence의 정의는 식 (22)로 정의 됩니다. 이는 두가지 확률이 얼마나 닮았는지를 보여주는 것입니다. p(x,y)(log(p(x,y))-log(\hat{p}(x,y))) 의 식을 보면 이해가 되실 겁니다.

\begin {align}KL & = \int p(x,y)log \frac{p(x,y)}{p(x|y)p(x)}dxdy\\&= \int p(x,y)logp(x,y)-p(x,y)log\hat{p}(x,y)dxdy \\& = H(\hat p(x,y))-H(p(x,y)),where, H \triangleq - \int p(x,y) log p(x,y)  dxdy\end {align}

즉 (24)식을 칼만 게인과 같이 본다면, 칼만 Gain 분포와 우리가 원하는 분포를 대입할 수 있습니다. 이에 우리가 원하고자 하는 error를 최소화 할 수 있는 filter를 만들 수 있습니다.

댓글

이 블로그의 인기 게시물

[Introduction to Topology] 위상수학 Chapter1 집합 이론

UE5, 위젯 간 파라미터 패싱 하는법! ( parmeter Passing widget to widget) How to Cast !), Widget Blueprint and MenuAnchor