The NNKolmogorov algorithm

Problems Supported:

  1. ParabolicPDEProblem
HighDimPDE.NNKolmogorovType

Algorithm 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 to ADAM(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).

source
CommonSolve.solveMethod
solve(
    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 via sdealg. Check the available sdealg on the DifferentialEquations.jl doc.
  • maxiters: The number of training epochs. Defaults to 300
  • trajectories: The number of trajectories simulated for training. Defaults to 100
  • Extra keyword arguments passed to solve will be further passed to the SDE solver.
source

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)]\]