Skip to content
0:00 / 0:00

#julia#differentiableprogramming#scientificmachinelearning

The impact of differentiable programming: how ∂P is enabling new science in Julia

ACM SIGPLAN

11K subscribers • 61 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Matt Bauman

Intermediate. Assumes working knowledge.

7.4K views5 years ago1 recommendation

AI and machine learningProgramming languagesTraining and serving modelsLanguage design and type systems

Matt Bauman demonstrates how incorporating differentiable programming into Julia enables composability between machine learning and scientific simulation.

Fully incorporating differentiable programming (∂P) into the Julia language has enabled composability between modern machine learning techniques and existing high performance computing (HPC) modeling and simulation without sacrificing expressivity. Most notably, this has meant that small neural networks can be embedded within larger models whose other behaviors are fully understood and can be concretely represented. Smaller neural networks, in turn, are easier to train and interpret. It has also enabled complex computations to be embedded within cost functions for fast and robust reinforcement learning. In this talk, we’ll walk through several concrete examples and demonstrate how the combination of ∂P with Julia’s generic programming has enabled powerful and expressive new models. Presented by Matt Bauman

Why it's here

1 person recommends this

What people say. Recommended as an explanation of what differentiable programming is in the context of complex functions.

u/Nathanfennerin r/ProgrammingLanguages • Recommends

On “What is differentiable programming?”

> What is differentiable programming in the context of more complicated functions? Or is it only applicable for functions that that be simplified into an algebraic expression? The goal is to be applicable to anything. For example, maybe you want to simulate launching a trebuchet, and find parameters that make it hit a target. With the "Differentiable Programming" model, your steps look like: 1. Find a physics library that computes stuff about trebuchets (any library, doesn't matter) 2. Run the simulation and see where the projectile lands. 3. Compute the error in the thing. 4. Compute gradient of all of your trebuchet's parameters (weight, fire-angle, etc.) 5. Adjust your parameters and g…