Shining a Light on Deep Learning
It's no secret that deep learning is the hot new kid on the block.
Even as deep learning techniques become more and more well-understood, neural network architectures grow increasingly sophisticated and diverse seemingly every day. This has caused a swell of interest in deep learning (and programming at large), though many potential researchers find themselves dismayed at the lack of tools which are both efficient and expressive. Indeed, for many, it seems impossible to have the best of both worlds!
But no longer.
Lantern is a new, highly expressive, machine learning framework in Scala. Lantern is bassed on two important and well-studied programming language concepts: delimited continuations and multi-stage programming (staging, for short). Delimited continuations provide a very concise view of reverse-mode automatic differentation (AD), which allows for the implementation of reverse-mode AD purely through operator overloading (no auxiliary data structures required!). Staging leads to a highly efficient implementation which combines the performance benefits of deep learning frameworks based on explicit reified computation graphs (à la TensorFlow) with the expressiveness of pure library approaches (à la PyTorch).
Sound too good to be true? Check out any of the links below to learn more about how this is possible, how you can get involved, and how Lantern can light the path into deep learning!