Derivatives - Important Concept. Simple to grasp in Kotlin
summary
Claims a working prototype that implements automatic differentiation in Kotlin with a lazy, functional DSL that builds a data flow graph and supports reverse-mode AD and forward accumulation. Demonstrates numeric experiments on optimization, physical simulation and machine learning, shows matrix-shape checking at compile time, stores the whole graph to enable higher-order derivatives, and calls the implementation experimental but functional with tradeoffs in memory and Kotlin type-system ergonomics.
AI-written summary · about
chapters (30)
- 0:00Intro
- 1:48Leibniz: derivatives as rate of change
- 2:35Linnainmaa: Reverse mode differentiation
- 3:31Griewank: Algorithmic differentiation
- 4:27An algorithm for minimizing any function
- 6:04Better algorithm Chut more restrictive
- 7:48Still better algorithm (even more restrictive)
- 11:441. Sum rule
- 12:332. Product rule
- 13:382. Chain rule, revisited
- 14:56Forward vs. Reverse mode accumulation
- 16:58Differentiation rules in Kotlin
- 18:37Functions in Kotlin
- 19:56Compile-time shape safety
- 21:04Lazy Composition
- 21:20Dataflow graphs
- 22:58Optimization is just one perspective
- 23:28Continuity: bounded differences
- 24:24Computer science
- 25:13Physicists
- 25:28World is differentiable
- 26:39Nonlinear dynamics: no closed form solution
- 27:47Arbitrarily high order differentiation
- 28:33Type safe vector manipulation
- 29:26Type safe matrix manipulation
- 29:48Type safe currying experimental
- 31:15Code is the interface
- 32:24Differentiable Programming
- 33:11Learn more at
- 33:25Interested in mathematical abstractions?
related talks
39mDifferentiable Functional Programming
36mProgramming Languages for Automatic Differentiation: What Now?
34mFunctional Programming in Kotlin for AndroidDevs
11mAbstract Interpretation for Automatic Differentiation
34mDifferentiable Functional Programming
41mKotlin 102 – Beyond the Basics
29mAutomatic Differentiation via Effects and Handlers in OCaml
30mKotlin DSLs
