Submitted by ChrisRackauckas t3_y74w8j in MachineLearning
Sharing our paper accepted at NeurIPS: Automatic Differentiation of Programs with Discrete Randomness
A summary is given in a Twitter thread. It goes into a high-level of how the method works. The core idea behind the paper is the following: if we treat a program as a random variable X(p), can we come up with a similar number definition such that we get two random variables, (X(p),Y(p)), such that E[Y(p)] = dE[X(p)]/dp? We give a detailed derivation of how to do this properly.
This method gives an unbiased, low variance, and fully automatic method for automatic differentiation of such programs.
A fairly optimized implementation of the method is available as an open-source package:
https://github.com/gaurav-arya/StochasticAD.jl
There are still many things to do in this area. For example, from this it should be easy to train neural networks to generate differential equations of mean behavior over time which match the statistics of an agent-based model, but we can't say we've tried all of the applications. Also, there's a lot more to do in terms of compiler optimizations for this new AD system.
But, even if you don't use it, the idea is fun and cool and you should check it out!
EmmyNoetherRing t1_isswkjx wrote
This seems really neat! Just to make sure I understand correctly, do you have a link to an example of what you’re thinking about when you say “agent based model”? I tend to associate that with classical AI where there’s often a discrete and generally finite set of states and transitions, and the agent model is a policy on which transitions to use in which states.