HackerPapers

arXiv:1907.07587cs.PL

A Differentiable Programming System to Bridge Machine Learning and Scientific Computing

Mike Innes, Alan Edelman, Keno Fischer, Chris Rackauckas, Elliot Saba, Viral B Shah, Will Tebbutt

Abstract

Scientific computing is increasingly incorporating the advancements in machine learning and the ability to work with large amounts of data. At the same time, machine learning models are becoming increasingly sophisticated and exhibit many features often seen in scientific computing, stressing the capabilities of machine learning frameworks. Just as the disciplines of scientific computing and machine learning have shared common underlying infrastructure in the form of numerical linear algebra, we now have the opportunity to further share new computational infrastructure, and thus ideas, in the form of Differentiable Programming. We describe Zygote, a Differentiable Programming system that is able to take gradients of general program structures. We implement this system in the Julia programming language. Our system supports almost all language constructs (control flow, recursion, mutation, etc.) and compiles high-performance code without requiring any user intervention or refactoring to stage computations. This enables an expressive programming model for deep learning, but more importantly, it enables us to incorporate a large ecosystem of libraries in our models in a straightforward way. We discuss our approach to automatic differentiation, including its support for advanced techniques such as mixed-mode, complex and checkpointed differentiation, and present several examples of differentiating programs.

arXiv comments
Submitted to NeurIPS 2019
Journal reference
DOI
Subjects
cs.PLProgramming Languages cs.LGMachine Learning

On Hacker News

Linked by 4 identifiable commenters in 7 comments across 7 threads, from Aug 2019 to Jun 2020. Found in 1 HN submission from Jul 2019 to Jul 2019. Open submission discussions.

Comments linking this paper, per year.

Discussed in comments7 threads

    • Scientific machine learning. The ability to mix scientific knowledge with machine learning in order to allow it to extrapolate accurately from small amounts of data. As machine learning tries to move towards areas where large-scale data gathering is prohibitively expensive or…

      ChrisRackauckasView on HNParent context

  1. Ode to J 1 comment
    • I think someone has translated this to J, but I am trying on my own to practice my J-fu by implementing it in my own way. Then I usually open it up to the J experts on the mailing list, and my learning takes off. There are some awesomely smart people there who are generous with…

      eggyView on HNParent context

    • The Julia Lab (MIT) | DevOps Engineer (+ More) | Onsite or Remote | Full Time | https://julia.mit.edu/ The Julia Lab is a lab in MIT's CSAIL which focuses on the development of software tooling for solving large-scale scientific problems. Named after it's original result, the…

      ChrisRackauckasView on HNParent context

    • Possibly. On this topic (machine learning, differentiable programming, GPU and parallel computing) I'd recommend the following videos: https://youtu.be/FGfx8CQHdQA https://youtu.be/OcUXjk7DFvU https://arxiv.org/abs/1907.07587 https://youtu.be/7Yq1UyncDNc…

      ChrisRackauckasView on HNParent context

    • It's already been done by another group of researchers.[1] I'm not sure if that was a factor in their choice of Swift. [1] https://arxiv.org/abs/1907.07587

      uoaeiView on HNParent context

    • "A Differentiable Programming System to Bridge Machine Learning and Scientific Computing" https://arxiv.org/abs/1907.07587 https://news.ycombinator.com/item?id=20477873 From the abstract: > We describe Zygote, a Differentiable Programming system that is able to take gradients of…

      carapaceView on HNParent context

    • What are you not sure of with Julia here? There are places in the ecosystem to not be sure of, but this isn't one. Julia has probably the most advanced mathematical optimization right now with JuMP (http://www.juliaopt.org/JuMP.jl/v0.19.2/) and some of the most advanced post-DL…

      ChrisRackauckasView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.