This library provides Inverse Laplace Transform (ILT) algorithms implemented in PyTorch. Backpropagation through differential equation (DE) solutions in the Laplace domain is supported using the Riemann stereographic projection for better global representation of the complex Laplace domain. For usage for DE representations in the Laplace domain in deep learning applications, see reference [1].
To install latest stable version:
pip install torchlaplace
To install the latest on GitHub:
pip install git+https://github.com/samholt/NeuralLaplace.git
Examples are placed in the examples
directory.
We encourage those who are interested in using this library to take a look at examples/simple_demo.py
for understanding how to use torchlaplace
to fit a DE system.
This library provides one main interface laplace_reconstruct
which uses a selected inverse Laplace transform algorithm to reconstruct trajectories from a provided parameterized Laplace representation functional
Where
This can be used by
from torchlaplace import laplace_reconstruct
laplace_reconstruct(laplace_rep_func, p, t)
where laplace_rep_func
is any callable implementing the parameterized Laplace representation functional p
is a Tensor encoding the initial state of shape t
is a Tensor of shape
Note that this is not numerically stable for all ILT methods, however should probably be fine with the default fourier
(fourier series inverse) ILT algorithm.
The parameterized Laplace representation functional laplace_rep_func
, ilt_algorithm
.
The biggest gotcha is that laplace_rep_func
must be a nn.Module
when using the laplace_rep_func
function. This is due to internally needing to collect the parameters of the parameterized Laplace representation.
To replicate the experiments in [1] see the in the experiments
directory.
-
recon_dim
(int): trajectory dimension for a given time point. Corresponds to dim$d_{\text{obs}}$ . If not explicitly specified, will use the same last dimension ofp
, i.e.$\text{K}$ . -
ilt_algorithm
(str): inverse Laplace transform algorithm to use. Default:fourier
. Available are {fourier
,dehoog
,cme
,fixed_tablot
,stehfest
}. See api documentation on ILTs for further details. -
use_sphere_projection
(bool): this uses thelaplace_rep_func
in the stereographic projection of the Riemann sphere. DefaultTrue
. -
ilt_reconstruction_terms
(int): number of ILT reconstruction terms, i.e. the number of complex$s$ points inlaplace_rep_func
to reconstruct a single time point.
ILT algorithms implemented:
fourier
Fourier Series Inverse [default].dehoog
DeHoog (Accelerated version of Fourier) - Slower inference in comparison.cme
Concentrated Matrix Exponentials.fixed_tablot
Fixed Tablot.stehfest
Gaver-Stehfest.
For most problems, good choices are the default fourier
. However other ILT algorithms may be more appropriate when using higher ILT reconstruction terms, such as the cme
algorithm. Some allow trade-offs between speed and accuracy, for example dehoog
is very accurate if the representation is known or exact, however is slow and can be unstable to use when learning the correct representation.
For detailed documentation see the official docs.
Take a look at our FAQ for frequently asked questions.
For usage for DE representations in the Laplace domain and leveraging the stereographic projection and other applications see:
[1] Samuel Holt, Zhaozhi Qian, and Mihaela van der Schaar. "Neural laplace: Learning diverse classes of differential equations in the laplace domain." International Conference on Machine Learning. 2022. [arxiv]
If you found this library useful in your research, please consider citing.
@inproceedings{holt2022neural,
title={Neural Laplace: Learning diverse classes of differential equations in the Laplace domain},
author={Holt, Samuel I and Qian, Zhaozhi and van der Schaar, Mihaela},
booktitle={International Conference on Machine Learning},
pages={8811--8832},
year={2022},
organization={PMLR}
}
- 💻 Neural Laplace Control: Neural Laplace Control for Continuous-time Delayed Systems - an offline RL method combining Neural Laplace dynamics model and MPC planner to achieve near-expert policy performance in environments with irregular time intervals and an unknown constant delay.