When we offered CS231n (Deep Learning class) at Stanford, we intentionally designed the programming assignments to include explicit calculations involved in backpropagation on the lowest level. The students had to implement the forward and the backward pass of each layer in raw numpy. This is seemingly a perfectly sensible appeal - if you're never going to write backward passes once the class is over, why practice writing them? Are we just torturing the students for our own amusement? Some easy answers could make arguments along the lines of "it's worth knowing what's under the hood as an intellectual curiosity", or perhaps "you might want to improve on the core algorithm later", but there is a much stronger and practical argument, which I wanted to devote a whole post to: The problem with Backpropagation is that it is a leaky abstraction.

Sometimes abbreviated to "backprop," backpropagation is the single most important algorithm in the history of machine learning. The idea behind it was first proposed in 1969, although it only became a mainstream part of machine learning in the mid-1980s. What backpropagation does is to allow a neural network to adjust its hidden layers in the event that the output it comes up doesn't match the one its creator is hoping for. In short, it means that creators can train their networks to perform better by correcting them when they make mistakes. When this is done, backprop modifies the different connections in the neural network to make sure it gets the answer right the next time it faces the same problem.

When we offered CS231n (Deep Learning class) at Stanford, we intentionally designed the programming assignments to include explicit calculations involved in backpropagation on the lowest level. The students had to implement the forward and the backward pass of each layer in raw numpy. This is seemingly a perfectly sensible appeal - if you're never going to write backward passes once the class is over, why practice writing them? Are we just torturing the students for our own amusement? Some easy answers could make arguments along the lines of "it's worth knowing what's under the hood as an intellectual curiosity", or perhaps "you might want to improve on the core algorithm later", but there is a much stronger and practical argument, which I wanted to devote a whole post to: In other words, it is easy to fall into the trap of abstracting away the learning process -- believing that you can simply stack arbitrary layers together and backprop will "magically make them work" on your data.

Xu, Xiaoran, Zu, Songpeng, Zhou, Hanning

In real-world scenarios, it is appealing to learn a model carrying out stochastic operations internally, known as stochastic computation graphs (SCGs), rather than learning a deterministic mapping. However, standard backpropagation is not applicable to SCGs. We attempt to address this issue from the angle of cost propagation, with local surrogate costs, called Q-functions, constructed and learned for each stochastic node in an SCG. Then, the SCG can be trained based on these surrogate costs using standard backpropagation. We propose the entire framework as a solution to generalize backpropagation for SCGs, which resembles an actor-critic architecture but based on a graph. For broad applicability, we study a variety of SCG structures from one cost to multiple costs. We utilize recent advances in reinforcement learning (RL) and variational Bayes (VB), such as off-policy critic learning and unbiased-and-low-variance gradient estimation, and review them in the context of SCGs. The generalized backpropagation extends transported learning signals beyond gradients between stochastic nodes while preserving the benefit of backpropagating gradients through deterministic nodes. Experimental suggestions and concerns are listed to help design and test any specific model using this framework.

Deep Learning has benefited primarily and continues to do so thanks to the pioneering works of Geoff Hinton, Yann Lecun and Yoshua Bengio in the late 1980s. Contributions of Yann Lecun, especially in developing convolutional neural networks and their applications in computer vision and other areas of artificial intelligence form the basis of many products and services deployed across most technology companies today. Here are a few of Yann's groundbreaking research papers that have contributed greatly to this field: The ability of neural networks to generalize can be greatly enhanced by providing constraints from the task domain. As a follow up to his widely popular work on back-prop, in this paper, Yann and his peers demonstrate how such constraints can be integrated into a backpropagation network through the architecture of the network. This approach has been successfully applied to the recognition of handwritten zip code digits provided by the US Postal Service.