Monadic Deep Learning
Bo Yang, Zhihao Zhang Kirisame Marisa, Kai Shi

TL;DR
This paper introduces a novel approach to automatic differentiation in statically typed languages, enabling expressive and type-safe neural network modeling with monads in DeepLearning.scala.
Contribution
It presents a new method for reverse mode automatic differentiation in statically typed functions and designs monads for dynamic neural network construction.
Findings
Enables creation of complex neural networks with type safety
Allows automatic differentiation in statically typed languages
Facilitates concise and expressive neural network code
Abstract
The Java and Scala community has built a very successful big data ecosystem. However, most of neural networks running on it are modeled in dynamically typed programming languages. These dynamically typed deep learning frameworks treat neural networks as differentiable expressions that contain many trainable variable, and perform automatic differentiation on those expressions when training them. Until 2019, none of the learning frameworks in statically typed languages provided the expressive power of traditional frameworks. Their users are not able to use custom algorithms unless creating plenty of boilerplate code for hard-coded back-propagation. We solved this problem in DeepLearning.scala 2. Our contributions are: 1. We discovered a novel approach to perform automatic differentiation in reverse mode for statically typed functions that contain multiple trainable variable, and can…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research
MethodsNone
