The Elements of Differentiable Programming

Mathieu Blondel, Vincent Roulet
3/21/2024
cs.LGcs.AIcs.PL

No official code found. Best implementation: diffprog/code (288 stars, Apache-2.0, last commit 2025-06-21).

Abstract

Artificial intelligence has recently experienced remarkable advances, fueled by large models, vast datasets, accelerated hardware, and, last but not least, the transformative power of differentiable programming. This new programming paradigm enables end-to-end differentiation of complex computer programs (including those with control flows and data structures), making gradient-based optimization of program parameters possible. As an emerging paradigm, differentiable programming builds upon several areas of computer science and applied mathematics, including automatic differentiation, graphical models, optimization and statistics. This book presents a comprehensive review of the fundamental concepts useful for differentiable programming. We adopt two main perspectives, that of optimization and that of probability, with clear analogies between the two. Differentiable programming is not merely the differentiation of programs, but also the thoughtful design of programs intended for differentiation. By making programs differentiable, we inherently introduce probability distributions over their execution, providing a means to quantify the uncertainty associated with program outputs.

View on arXivView PDF

Code Implementations(1)

diffprog/codeCommunity100%
Apache-2.0

Code for the book "The Elements of Differentiable Programming".

28824PythonMar 24, 20241 years agoApache-2.0

Similar Papers

Cite this paper

@article{blondel2024elements,
  title  = {The Elements of Differentiable Programming},
  author = {Mathieu Blondel and Vincent Roulet},
  year   = {2024},
  eprint = {2403.14606},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2403.14606v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2403.14606.svg)](https://codeofpaper.com/paper/2403.14606)

Discussion