Beautiful differentiation
Conal Elliott
LambdaPix
1 September, 2009 ICFP
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 1 / 32
Beautiful differentiation Conal Elliott LambdaPix 1 September, - - PowerPoint PPT Presentation
Beautiful differentiation Conal Elliott LambdaPix 1 September, 2009 ICFP Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 1 / 32 Differentiation Differentiation Conal Elliott (LambdaPix) Beautiful
LambdaPix
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 1 / 32
Differentiation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 2 / 32
Differentiation
◮ optimization ◮ root-finding ◮ surface normals ◮ curve and surface tessellation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 3 / 32
Differentiation
◮ Numeric ◮ Symbolic ◮ “Automatic” (forward & reverse modes)
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 4 / 32
Differentiation
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 5 / 32
Differentiation
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 5 / 32
Differentiation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 6 / 32
Differentiation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 7 / 32
Differentiation
◮ Computes function & derivative values in tandem ◮ “Exact” method ◮ Numeric, not symbolic
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 8 / 32
Differentiation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 9 / 32
Differentiation
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 9 / 32
Differentiation
◮ What does AD mean? ◮ How does a correct implementation arise? ◮ Where else might these answers take us?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 10 / 32
What does AD mean?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 11 / 32
What does AD mean?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 12 / 32
How does a correct implementation arise?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 13 / 32
How does a correct implementation arise?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 14 / 32
How does a correct implementation arise?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 14 / 32
How does a correct implementation arise?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 14 / 32
Where else might these answers take us?
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 15 / 32
Where else might these answers take us?
◮ Prettier definitions ◮ Higher-order derivatives ◮ Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 16 / 32
Where else might these answers take us? Prettier definitions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 17 / 32
Where else might these answers take us? Prettier definitions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 18 / 32
Where else might these answers take us? Higher-order derivatives
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 19 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 20 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 20 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
ε→0
ε→0
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 20 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 21 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 21 / 32
Where else might these answers take us? Higher-dimensional functions
ε→0
ε→0
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 21 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 22 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 22 / 32
Where else might these answers take us? Higher-dimensional functions
∗ β = D β (α ⊲ ∗(α ⊸ β))
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 23 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 24 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 24 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 24 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 25 / 32
Where else might these answers take us? Higher-dimensional functions
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 26 / 32
Automatic differentiation – naturally
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 27 / 32
Automatic differentiation – naturally
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 28 / 32
Automatic differentiation – naturally
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 29 / 32
Automatic differentiation – naturally
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 30 / 32
Automatic differentiation – naturally
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 31 / 32
Automatic differentiation – naturally
◮ Specification as a structure-preserving semantic function. ◮ Implementation derived systematically from specification. ◮ Prettier implementation via functions-as-numbers. ◮ Infinite derivative towers with nearly no extra code. ◮ Generalize to differentiation over vector spaces. ◮ Even simpler specification/derivation via naturality.
Conal Elliott (LambdaPix) Beautiful differentiation 1 September, 2009 ICFP 32 / 32