Skip to content

Automatic differentiation of Distributions using Tracker, Zygote, ForwardDiff and ReverseDiff

License

Notifications You must be signed in to change notification settings

TuringLang/DistributionsAD.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DistributionsAD.jl

CI

This package defines the necessary functions to enable automatic differentiation (AD) of the logpdf function from Distributions.jl using the packages Tracker.jl, Zygote.jl, ForwardDiff.jl and ReverseDiff.jl. The goal of this package is to make the output of logpdf differentiable wrt all continuous parameters of a distribution as well as the random variable in the case of continuous distributions.

AD of logpdf is fully supported and tested for the following distributions wrt all combinations of continuous variables (distribution parameters and/or the random variable) and using all defined distribution constructors:

  • Univariate discrete
    • Bernoulli
    • BetaBinomial
    • Binomial
    • Categorical
    • Geometric
    • NegativeBinomial
    • Poisson
    • PoissonBinomial
    • Skellam
  • Univariate continuous
    • Arcsine
    • Beta
    • BetaPrime
    • Biweight
    • Cauchy
    • Chi
    • Chisq
    • Cosine
    • Distributions.AffineDistribution
    • Epanechnikov
    • Erlang
    • Exponential
    • FDist
    • Frechet
    • Gamma
    • GeneralizedExtremeValue
    • GeneralizedPareto
    • Gumbel
    • InverseGamma
    • InverseGaussian
    • Kolmogorov
    • Laplace
    • Levy
    • Logistic
    • LogitNormal
    • LogNormal
    • Normal
    • NormalCanon
    • NormalInverseGaussian
    • Pareto
    • PGeneralizedGaussian
    • Rayleigh
    • Semicircle
    • SymTriangularDist
    • TDist
    • TriangularDist
    • Triweight
    • Uniform
    • Weibull
  • Multivariate continuous
    • MvLogNormal
    • MvNormal
  • Matrix-variate continuous
    • MatrixBeta
    • Wishart
    • InverseWishart

Get Involved

A number of distributions are still either broken or not fully supported for various reasons. See this issue. If you can fix any of the broken ones, a PR is welcome!

About

Automatic differentiation of Distributions using Tracker, Zygote, ForwardDiff and ReverseDiff

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages