Skip to content

Commit

Permalink
Mention ad's solution to sensitivity confusion.
Browse files Browse the repository at this point in the history
  • Loading branch information
rxwei authored Apr 28, 2018
1 parent 3a779ae commit 09d6f13
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions docs/AutomaticDifferentiation.md
Original file line number Diff line number Diff line change
Expand Up @@ -447,9 +447,12 @@ incorporate these techniques directly into our model.
[Perturbation confusion and sensitivity
confusion](https://arxiv.org/abs/1211.4892) are two common bugs in nested uses
of the differential operator using SCT techniques, and require user attention to
correctly resolve. In order to support higher-order differentiation with sound
semantics and predictable behavior in Swift, we need to teach the compiler to
carefully emit diagnostics and reject non-well-formed cases.
correctly resolve. The application of rank-2 polymorphism in the
[ad](https://hackage.haskell.org/package/ad) package in Haskell defined away
sensitivity confusion, but Swift’s type system does not support that today. In
order to support higher-order differentiation with sound semantics and predictable
behavior in Swift, we need to teach the compiler to carefully emit diagnostics and
reject malformed cases.


### Differentiating opaque closures and dynamic method dispatch
Expand Down

0 comments on commit 09d6f13

Please sign in to comment.