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 availablesdealg
on the DifferentialEquations.jl doc.maxiters
: The number of training epochs. Defaults to300
trajectories
: The number of trajectories simulated for training. Defaults to100
- Extra keyword arguments passed to
solve
will 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)]\]