News for hackers. Stuff that matters.
Re:Demystifying Differentiable Programming (2018) by tome on Sunday February 16, 2020 @05:54PM (#22344247)
I don't find this very convincing. Continuations are well known to be completely mystifying. I wrote up what I believe to be a much simpler reverse mode AD transformation that uses only basic concepts:

http://h2.jaguarpaw.co.uk/posts/automatic-differentiation-wo...

Re:Demystifying Differentiable Programming (2018) by samth on Sunday February 16, 2020 @08:21PM (#22344834)
Your notes, while simple, don't cover many of the things the paper does, such as binding or functions or sharing.
Re:Demystifying Differentiable Programming (2018) by tome on Monday February 17, 2020 @02:54AM (#22346211)
You're right they don't cover functions. I don't understand what about binding or sharing they don't deal with though. Could you elaborate?
Re:Demystifying Differentiable Programming (2018) by tiarkrompf on Monday February 17, 2020 @03:40PM (#22350526)
For starters, what if you want to differentiate through code that traverses a collection, for example:

    val x = ...
    ys.map(y => y + x)
Each loop iteration needs to contribute a gradient update to x, which is defined in an outer scope. And what if y => y + x is not given as an inline lambda, but defined elsewhere. It doesn't seem like your blog posts discusses any such cases.
Re:Demystifying Differentiable Programming (2018) by tome on Tuesday February 18, 2020 @03:37AM (#22354433)
Correct, it doesn't discuss that case, indeed it doesn't treat user-defined functions at all. I just don't understand in what sense it doesn't treat binding or sharing.
Re:Demystifying Differentiable Programming (2018) by bjz_ on Monday February 17, 2020 @06:03AM (#22346817)
> Continuations are well known to be completely mystifying.

Could you elaborate on what leads you to think this?

Re:Demystifying Differentiable Programming (2018) by tome on Monday February 17, 2020 @06:57AM (#22347052)
I don't believe that continuations are a corner of programming language theory that is well-loved and and well-understood by programmers at large, are they? Even amongst experienced functional programmers they seem to be thought of as rather difficult. Oleg Kiselyov has written extensively on them but his work has not been brought to the masses in the same way that his work in iteratees has.

http://okmij.org/ftp/continuations/index.html

Re:Demystifying Differentiable Programming (2018) by bjz_ on Monday February 17, 2020 @07:59AM (#22347343)
Ahhh! Right! See, the context here is important. Continuations are pretty widely known and important in the context of programming language implementation and theory, which is why I was confused by your comment. In the context where this paper was presented (to programming language researchers), making the link between delimited continuations _would_ demystify a bunch, and could allow for transferring of knowledge and techniques between the fields.
Re:Demystifying Differentiable Programming (2018) by tome on Monday February 17, 2020 @08:17AM (#22347435)
Having looked again, the authors do explain why they believe that continuations (as opposed to simply higher-order functions) are necessary. See my other comment at https://news.ycombinator.com/item?id=22347428.