Please log in to watch this conference skillscast.
Automatic differentiation is all the rage these days, largely because it is a key enabler for machine learning. But reverse-mode AD (the important kind) is a bit mind bending, and becomes much more so if you want reverse-mode AD for higher order programs (i.e. the kind we love).
In this talk I’ll explain what AD is, and how we can do it for higher order programs, using a series of simple steps that take us a simple-and-obviously-correct version to a weird-but-very-efficient one. At the end of the road we’ll find the Kmett/Pearlmuttter/Siskind ‘ad’ library in Hackage… but I hope we’ll see it with new eyes.
We are honoured to welcome back Simon Peyton Jones to the Haskell eXchange.
Since the very first Haskell eXchange in 2012, we've been lucky to have Simon join us each year to share his unique perspective on everything from front end features to join points , Linear Types, and pattern matching — not to mention last year's very special announcement of the Haskell Foundation.
Check out all of Simon's previous Haskell eXchange talks here.
YOU MAY ALSO LIKE:
Keynote — Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation
Simon Peyton Jones
Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.
After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998.
His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines.
More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.