Stochastic process를 이해하기 위한 중요한 개념 중 하나는 brownian motion이다.
정확히는 Random walk (Wiener process)를 이해하고 보면 좋을 것 같은데 여기에서는 차치하고 설명한다.
Brownian motion은 연속 시간 시스템일 때 다음과 같이 정의된다.
$d\beta = w\; dt$
$w$는 zero mean white noise이다.
이 시스템은 초기값이 0이고 초기 분산이 0이다. $(\beta(0)=0, \operatorname{Var}(\beta)(0)=0)$
$w$가 zero mean white noise이므로 다음과 같은 성질을 만족한다.
$\mathbb{E}[w(t+\tau)w(t)^{\top}]=Q_{c}(t)\delta(\tau)$
여기서 $\delta$는 우리가 알고 있는 그 direc delta function와 동일하다. 또한 $Q_{c}$는 연속 시간 시스템에서 알려진 노이즈의 분산이다.
$\delta(\tau)=\left\{ \begin{matrix} 1 \text{ if }\tau=0 \\ 0 \text{ if }\tau \neq 0 \end{matrix} \right.$
또한 brownian motion에서 state의 variance를 구하면 다음과 같다.
$\begin{gathered}\mathbb{E}\left[\left(\beta\left(\tau \right)-\beta\left(0\right)\right)\left(\beta\left(\tau \right)-\beta\left(0 \right)\right)^T\right]=\mathbb{E} \left[\int_{0}^{\tau} w(\gamma) d \gamma * \int_{0}^{\tau} w(\sigma) d \sigma\right] \\ =\mathbb{E} \left[\int_{0}^{\tau} \int_{0}^{\tau} w(\gamma) w(\sigma) d \gamma d \sigma\right]=\int_{0}^{\tau} \int_{0}^{\tau} Q_{c}(\gamma) \delta(\gamma-\sigma) d \gamma d \sigma \\ =\int_{0}^{\tau} Q_{c}(\gamma) d \gamma=Q_{c}\tau, \text { Assuming Constant } Q_{c}\end{gathered}$
이제 연속시간에서의 brownian motion의 분산이 시간에 비례하게 증가한다는 것을 알았다.
위의 경우는 연속 시간 시스템인 경우이다. 우리가 brownian motion을 이산 시간 시스템으로 생각할 경우를 보면,
$\beta_{k}=\beta_{0}+w_{1}+w_{2}+\cdots+w_{k}$
$\mathbb{E}[w_{k}w_{k}^{\top}]=Q_{d}$라고 하자.
$P_{k}=\mathbb{E}(\beta_{k}\beta_{k}^{\top})=k Q_{d}$
$\mathbb{E}(\beta_{0}\beta_{0}^{\top})=0$이고 노이즈의 경우 $\mathbb{E}(w_{s}w_{k}^{\top})=0 \;(s\neq k)$이므로 위와 같이 스텝 $k$에 따라 분산이 증가하는 것을 알 수 있다.
다시 돌아와서 연속 시간 시스템을 적분하는 것을 생각해보자.
$\beta_{k+1}=\beta_{k}+w_{k}\Delta t$
여기서는 오일러 적분 방식으로 이산화하였다. (이산화 방법에 대해서는 다른 글 참고)
여기서 $\mathbb{E}[w_{k}w_{k}^{\top}]=Q_{s}$라고 하자. $Q_{s}$는 적분하는 시스템에서 우리가 정한 노이즈의 분산이다.
$\mathbb{E}[\beta_{k+1} \beta_{k+1}^{\top}]=\mathbb{E}[\beta_{k} \beta_{k}]+\mathbb{E}[w_{k}w_{k}^{\top}]\Delta t^{2}$
$k Q_{s} \Delta t^{2}=k (Q_{s}\Delta^{2}) = Q_{s}\Delta t * \tau \quad (k\Delta t = tau)$
위의 식에서 연속 시간에서의 분산을 동일하게 맞추려면
$Q_{s}\Delta t = Q_{c}$
$Q_{s}\Delta t^2=Q_{d}$
라는 것을 알 수 있다.
따라서 연속 시간 시뮬레이션을 위해서는 $Q_{s}=\dfrac{Q_{c}}{\Delta t}$로 설정해줘야 한다.
이산 시간 시뮬레이션을 위해서는 $Q_{s}=\dfrac{Q_{d}}{\Delta t^{2}}$으로 설정해줘야 한다.
Example
$\dot{x}=w$를 100,000개의 샘플에 대해서 시뮬레이션을 돌렸을 때 다음과 같다.
$Q_{s}=1$로 동일하다.
1) dt = 0.01 일 때
$Q_{s}=\dfrac{1}{dt}$로 설정하였다.
위 그림을 보면 평균은 계속 0이고, 분산은 $t=10$일 때 $P=10$으로 정확하게 구현된 것을 확인할 수 있다.
2) dt = 0.1일 때
마찬가지로 $Q_{s}=\dfrac{1}{dt}$로 설정하였다.
'확률 및 랜덤프로세스 Random process' 카테고리의 다른 글
[확률] 랜덤 숫자를 생성하는 방법 (1) Uniform distribution (0) | 2023.07.05 |
---|