The NNParamKolmogorov algorithm

Problems Supported:

  1. ParabolicPDEProblem
HighDimPDE.NNParamKolmogorovType

Algorithm for solving paramateric families of 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] Berner Julius et al. "Numerically solving parametric families of high-dimensional Kolmogorov partial differential equations via deep learning."

source
CommonSolve.solveFunction
solve(
    prob::ParabolicPDEProblem,
    pdealg::NNParamKolmogorov;
    ...
)
solve(
    prob::ParabolicPDEProblem,
    pdealg::NNParamKolmogorov,
    sdealg;
    ensemblealg,
    abstol,
    verbose,
    maxiters,
    trajectories,
    save_everystep,
    use_gpu,
    dps,
    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
  • dps::NamedTuple: The sampling interval for ranges of parameters. Should have keys : p_sigma, 'pmuandpphi`
  • Extra keyword arguments passed to solve will be further passed to the SDE solver.
source

NNParamKolmogorov obtains a

  • terminal solution for parametric families of Forward Kolmogorov Equations of the form:

\[\partial_t u(t,x) = \mu(t, x, γ_mu) \nabla_x u(t,x) + \frac{1}{2} \sigma^2(t, x, γ_sigma) \Delta_x u(t,x)\]

with initial condition given by g(x, γ_phi)

  • or an initial condition for parametric families of 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, γ_phi)

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, γ_phi)]\]