The NNKolmogorov algorithm
Problems Supported:
HighDimPDE.NNKolmogorov — TypeAlgorithm for solving Kolmogorov Equations.
HighDimPDE.NNKolmogorov(chain, opt)Arguments:
chain: A Chain neural network with a d-dimensional output.opt: The optimizer to train the neural network. Defaults toADAM(0.1).
[1]Beck, Christian, et al. "Solving stochastic differential equations and Kolmogorov equations by means of deep learning." arXiv preprint arXiv:1806.00421 (2018).
CommonSolve.solve — Methodsolve(
prob::ParabolicPDEProblem,
pdealg::NNKolmogorov,
sdealg;
ensemblealg,
abstol,
verbose,
maxiters,
trajectories,
save_everystep,
use_gpu,
dt,
dx,
kwargs...
)
Returns a PIDESolution object.
Arguments
sdealg: a SDE solver from DifferentialEquations.jl. If not provided, the plain vanilla DeepBSDE method will be applied. If provided, the SDE associated with the PDE problem will be solved relying on methods from DifferentialEquations.jl, using Ensemble solves viasdealg. Check the availablesdealgon the DifferentialEquations.jl doc.maxiters: The number of training epochs. Defaults to300trajectories: The number of trajectories simulated for training. Defaults to100- Extra keyword arguments passed to
solvewill be further passed to the SDE solver.
NNKolmogorov obtains a
- terminal solution for Forward Kolmogorov Equations of the form:
\[\partial_t u(t,x) = \mu(t, x) \nabla_x u(t,x) + \frac{1}{2} \sigma^2(t, x) \Delta_x u(t,x)\]
with initial condition given by g(x)
- or an initial condition for Backward Kolmogorov Equations of the form:
\[\partial_t u(t,x) = - \mu(t, x) \nabla_x u(t,x) - \frac{1}{2} \sigma^2(t, x) \Delta_x u(t,x)\]
with terminal condition given by g(x)
We can use the Feynman-Kac formula :
\[S_t^x = \int_{0}^{t}\mu(S_s^x)ds + \int_{0}^{t}\sigma(S_s^x)dB_s\]
And the solution is given by:
\[f(T, x) = \mathbb{E}[g(S_T^x)]\]