Search
Duplicate

AI/ Euler Method(Euler Solver)

Euler Method(Euler Solver)

Euler Method(Euler Solver)는 미분 방정식을 수치적으로 적분하는 가장 간단한 방법 중 하나로 다음과 같은 형식으로 정의된다.
xn+1=xn+Δxn\bold{x}_{n+1} = \bold{x}_n + \Delta\bold{x}_n

Ordinary Differential Equation(ODE)

오일러 방법은 다음과 같은 상미분 방정식(ODE)를 풀기 위해 사용될 수 있다. 된다.
Δx=f(x,t)Δt\Delta\bold{x} = \bold{f}(\bold{x},t)\Delta t
여기서 f(x,t)f(\bold{x},t)는 drift라 부르는 시스템의 결정론적 변화를 나타낸다.
ODE에 오일러 방법을 적용한 식은 다음과 같다.
xn+1=xn+f(xn,tn)Δt\bold{x}_{n+1} = \bold{x}_n + \bold{f}(\bold{x}_n, t_n) \Delta t

Stochastic Differential Equation(SDE)

오일러 방법을 다음과 같은 확률 미분 방정식(SDE)을 풀기 위해 확장한 것을 Euler-Maruyama Method라고 한다.
Δx=f(x,t)Δt+g(t)Δw\Delta\bold{x} = \bold{f}(\bold{x},t)\Delta t + g(t) \Delta \bold{w}
첫 번째 항의 f(x,t)\bold{f}(\bold{x},t)를 drift coefficient라 하고 시스템의 결정론적 변화를 나타낸다. 두 번째 항의 g(t)g(t)는 diffusion coefficient라 하고 불확실성이나 노이즈의 영향을 모델링한다. Δw\Delta \bold{w}는 표준 브라운 운동(또는 Wiener Process)를 나타내며 가우시안 화이트 노이즈의 통합된 형태이다.
SDE에 Euler-Maruyama Method를 적용한 식은 다음과 같다.
xn+1=xn+f(xt,tn)Δt+g(tn)Δwn\bold{x}_{n+1} = \bold{x}_n + \bold{f}(\bold{x}_t, t_n)\Delta t + g(t_n)\Delta \bold{w}_n

Probability Flow ODE(PF ODE)

다음과 같이 ODE를 SDE에서처럼 drift와 diffusion 항을 결합하여 사용하는 방법을 Probability Flow ODE(PF ODE)라 부른다. 이것은 diffusion model에서 많이 사용된다.
Δx=[f(x,t)12g(t)2xlogpt(x)]h(x,t)Δt\Delta\bold{x} = \underbrace{\left[ \bold{f}(\bold{x},t) -{1\over2}g(t)^2 \nabla_\bold{x} \log p_t(\bold{x})\right]}_{\bold{h}(\bold{x},t)}\Delta t
여기서 f(x,t)\bold{f}(\bold{x},t)는 drift 항이고 g(t)g(t)는 diffusion 항이다. pt(x)p_t(\bold{x})는 확률 함수이고 logxpt(x)\log_\bold{x} p_t(\bold{x})는 score 함수이다.
PF ODE에 오일러 방법을 적용한 식은 다음과 같다.
xn+1=xn+h(xn,tn)Δt\bold{x}_{n+1} = \bold{x}_n + \bold{h}(\bold{x}_n, t_n)\Delta t

참고