swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Swarm-modeling] Automatic Differentiation of Programs with Discrete


From: Paul Johnson
Subject: Re: [Swarm-modeling] Automatic Differentiation of Programs with Discrete Randomness
Date: Thu, 20 Oct 2022 16:22:07 -0500
User-agent: K-9 Mail for Android

Neat! More importantly, what else going on with Glen?

I left KU, working in business. But I still get calls from time to time asking for agent based models.

I wondered what is the state of the art?

PJ
--
Paul E. Johnson
Senior Data Scientist, H&R Block Corporate Headquarters
Professor Emeritus, University of Kansas


On October 20, 2022 1:11:50 PM CDT, glen e ropella <gepr@agent-based-modeling.com> wrote:

https://arxiv.org/abs/2210.08572

Automatic differentiation (AD), a technique for constructing new programs which compute the derivative of an original program, has become ubiquitous throughout scientific computing and deep learning due to the improved performance afforded by gradient-based optimization. However, AD systems have been restricted to the subset of programs that have a continuous dependence on parameters. Programs that have discrete stochastic behaviors governed by distribution parameters, such as flipping a coin with probability of being heads, pose a challenge to these systems because the connection between the result (heads vs tails) and the parameters (p) is fundamentally discrete. In this paper we develop a new reparameterization-based methodology that allows for generating programs whose expectation is the derivative of the expectation of the original program. We showcase how this method gives an unbiased and low-variance estimator which is as automated as traditional AD mechanisms. We demonstrate unbiased forward-mode AD of discrete-time Markov chains, agent-based models such as Conway's Game of Life, and unbiased reverse-mode AD of a particle filter. Our code is available at this https URL.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]