schmidtjonathan / pnmol-experiments Goto Github PK
View Code? Open in Web Editor NEWProbabilistic Numerical Method of Lines (PNMOL): Implementation and Experiments
License: MIT License
Probabilistic Numerical Method of Lines (PNMOL): Implementation and Experiments
License: MIT License
PNMOL with independent prior dimensions and a polynomial kernel should equal the output of a traditional ODE filter.
It seems like it does not.
Why?
Linting and tests
It would be useful to have a method PDEProblem.to_tornadox_ivp()
which removes the "PN" from "PNMOL". We can use it to benchmark pnmol against tornadox.
One difficulty will be the boundary conditions. We cannot just transfer f, df, t0, etc., but have to do the padding-with-zeros-or-the-last-row as in tornadox for the "new" IVP problem.
We need PDE problems to test PNMOL solves on:
There are two hacks left, one in each solver, that overfit the implementation to a system of PDEs with 3 states (the SIR model)
There are still a few numpy imports. I suggest we use only jax.numpy, because this way we can go all in with jit and vmap (the latter will be quite important I guess)
I think we need a few more PDE problem classes. As far as I can judge at the moment, we should have
And for each of those, we can implement EK0 and EK1 cleverly.
This is too little explored territory for PNMOL thus far. Let's only initialise y, \dot y, and \ddot y (while conditioning y on the boundary conditions?) and hope for the best.
Currently, RK init is implemented in a way that exploits the Kronecker structure in the system matrices a little too much -- it assumes cov = cov \otimes I_d, which in the PNMOL case seems wrong to me.
While it is not clear what the perfect input scale should be (see the figure in the paper), I think it is a decent estimate to use the maximum likelihood estimate based on the initial condition? This is easy to implement (via a grid search, for example; this is used to generate figure 2)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.