UNIVERSITY OF HERTFORDSHIRE
COMPUTER SCIENCE RESEARCH COLLOQUIUM
"Taking Derivatives of Functional Programs:
AD in a Functional Framework"
Jeffrey Mark Siskind
School of Electrical and Computer Engineering
Purdue University, USA
22 November 2005 (TUESDAY!!)
LF231 (Wright Building)
Hatfield, College Lane Campus
3 - 4 pm
Coffee/tea and biscuits will be available.
[Catering Permitting]
Everyone is Welcome to Attend
[Space Permitting]
Abstract:
Algorithm Differentiation (AD) is an established enterprise that seeks to take
the derivatives of functions specified as programs through symbolic
manipulation rather than finite differencing. AD has traditionally been
applied to imperative programs, typically using preprocessors that apply a
source-to-source transformation to derive a program for computing the
derivative of a function from a program that computes the original function.
We present a novel framework for performing AD within modern
functional-programming languages, treating AD operators as first-class
higher-order functions that map first-class function objects to first-class
function objects. Our approach is more modular, allowing a library of
functions based on derivatives to be built compositionally. It allows the
callee to specify the necessary AD, rather than insisting that the caller
provide appropriately transformed functions. Our approach is foundational: we
develop a method for taking the derivative of any lambda-calculus expression
over a basis of standard numeric primitives. Since the lambda calculus is
both the source and target of our transformations, higher-order derivatives
can be constructed naturally, without special mechanisms. In this talk, I
will give a tutorial overview of AD, demonstrate the power and convenience of
the functional formulation of AD by way of a series of small examples, and
sketch the framework underlying our implementation.
(This is joint work with Barak A. Pearlmutter.)
--
Hertfordshire Computer Science Research Colloquium
http://homepages.feis.herts.ac.uk/~nehaniv/colloq