Skip to content
0:00 / 0:00

#automaticdifferentiation#haskell#backpropagation

The Simple Essence of Automatic Differentiation - Conal Elliott

Microsoft Research

359K subscribers • 11 videos on Hallway

YouTube
  • Recommended by 3 people: 3 on Hacker News.
  • A classic. People kept recommending it from 2018 to 2022.
  • Presented by Conal Elliott
  • May be out of date. Uploaded 8 years ago, in an area where tools change fast.

Advanced. Deep dive for people who know the field.

17K views8 years ago3 recommendations

AI and machine learningProgramming languagesNeural networks and deep learningFunctional programmingMath for machine learning

Conal Elliott presents a simple, generalized automatic differentiation algorithm derived from a natural specification without graphs or tapes.

Automatic differentiation (AD) in reverse mode (RAD) is a central component of deep learning and other uses of large-scale optimization. Commonly used RAD algorithms such as backpropagation, however, are complex and stateful, hindering deep understanding, improvement, and parallel execution. This paper develops a simple, generalized AD algorithm calculated from a simple, natural specification. The general algorithm is then specialized by varying the representation of derivatives. In particular, applying well-known constructions to a naive representation yields two RAD algorithms that are far simpler than previously known. In contrast to commonly used RAD implementations, the algorithms defined here involve no graphs, tapes, variables, partial derivatives, or mutation. They are inherently parallel-friendly, correct by construction, and usable directly from an existing programming language with no need for new data types or programming style, thanks to use of an AD-agnostic compiler plugin. See more at microsoft.com/en-us/research/video/the-simple-essence-of-aut…

Why it's here

3 people recommend this

What people say. Recommended as a mathematically elegant approach to automatic differentiation that simplifies forward and reverse mode algorithms.

infogulchon Hacker News • Recommends

On “Differentiable Programming – A Simple Introduction”

The most interesting thing I've seen on AD is "The simple essence of automatic differentiation" (2018) 1. See past discussion 2, and talk 3. I think the main idea is that by compiling to categories and pairing up a function with its derivative, the pair becomes trivially composable in forward mode, and the whole structure is easily converted to reverse mode afterwards. 1: link 2: link 3: Talk at Microsoft Research: link to this video Other presentations listed here: link

infogulchon Hacker News • Recommends

On “Automatic Differentiation in Machine Learning: A Survey [pdf]”

Another paper related to AD was posted last month: The Simple Essence of Automatic Differentiation 0. Video presentation 1. I found it pretty awesome, just in case you hadn't seen it. 0: https//news.ycombinator.com/item?id=18306860 1: link to this video

noblethrasheron Hacker News • Recommends

On “Differentiable Programming Manifesto”

He also gave nice presentation on AD: link to this video (surprised that you didn't already mention it, considering the venue ;-))

srikuon Hacker News • Recommends

On “Automatic Differentiation in 38 lines of Haskell”

I'm yet to give reverse mode a second try, but my attempts at forward mode (linked in parent post) were on my own without the paper's help. There's a talk that Conal gives that makes the paper a bit more accessible - link to this video - but only a bit more. I know it'll take effort to wrap my head around the implementation details ... but the paper certainly helped clarify things I was stumbling around about.

bmc7505on Hacker News • Mentions

On “The Simple Essence of Automatic Differentiation [pdf]”

This paper won a best paper award at ICFP 2018. Conal Elliott recently gave a longer talk about it at Microsoft Research: link to this video

eli_gottliebon Hacker News • Mentions

On “Understanding Automatic Differentiation in 30 lines of Python”

AD is just a Cartesian lens of Jacobians and total derivatives in the category of smooth functions, what's the problem? link to this video