# What is Backpropagation in Neural Network?

All the Key Points...

In this blog post, we are going to explore What is Backpropagation in Neural Network? and how it works in deep learning algorithms.

You may have heard of backpropagation as it’s one of the most common algorithms used in neural networks, but do you know what it actually does? In this article, we’ll cover backpropagation in neural networks and examine how it works.

We’ll also talk about some examples of how backpropagation might be used in the real world and provide an example code snippet that you can use to get started with backpropagation on your own machine.

## Understanding Backpropagation

To understand why it’s called backpropagation, let’s first look at forward propagation. Let’s take a simple 1-layer neural network with 3 nodes: Input (1 node), Hidden (2 nodes), and Output (1 node).

In forward propagation, we have an input vector x, pass it through a nonlinear activation function and get an output y that represents some classification or regression problem we want to solve. That’s represented by our equation y = f(x).

Our goal is to find out what weights need to be used for each of these 2 hidden layers so as to minimize the loss on our training set.

That loss can be defined either as the cost of misclassification or error between output prediction and actual values.

Related Article: Complete Guide: Backpropagation in Machine Learning

## How does Backpropagation Work?

You’ve probably heard of Artificial Neural Networks (ANNs) and their amazing capabilities to do some pretty incredible things.

These deep learning systems are great at making sense of data while adapting to changing circumstances.

But how exactly do they work? And more importantly, how can we use them to make smart business decisions? Let’s start with a little bit of background information on ANNs and then move on to how you can use them effectively within your organization.

Related Article: What is an Artificial Neural Network (ANN)?

## Use of Backpropagation in Deep Learning

Artificial Neural Networks (ANNs) are modeled on biological ones. As such, they employ a technique called backpropagation to determine how much of any loss function should be attributed to every neuron.

Backpropagation also helps us fine-tune our artificial neurons so that they give us better output.

It’s an integral part of most ANN systems. In fact, it was one of those breakthroughs which led to the recent resurgence in the popularity of artificial intelligence and machine learning algorithms. It’s even being used as part of Google’s AlphaGo!

Related Article: What is Q learning? | Deep Q-learning

## Backpropagation in ANN

Backpropagation trains artificial neural networks, or ANNs. It’s a type of gradient descent algorithm (an optimization method) used to train ANNs based on how well they map input data to desired output data.

The goal of training an ANN is to find weights that minimize a loss function and enable our network to perform tasks with greater accuracy than before.

Backpropagation determines which weights need changing, as it computes gradients for all inputs and subtracts them from each neuron’s output.

Related Article: Autoencoders: Introduction to Neural Networks

## Backpropagation in Feedforward Neural Network

Feedforward Neural Network(FNN) can be described as an artificial neuron that accepts a number of inputs and gives out only one output.

These artificial neurons are organized into layers, where each neuron has multiple inputs and only one output that feeds to the next layer.

In simple words, we can say that an FNN consists of multiple layers interconnected with each other and finally we get one output.

The input data is fed to the first layer and then propagated forward to the second layer so on and so forth until it reaches the last or desired layer.

The last layer’s responsibility is to give out an answer as per provided input data.

Related Article: Feed Forward Neural Networks Ultimate Guide Explained

## Backpropagation in Convolution Neural Network

The backward pass of a convolutional neural network (CNN) has two major steps: local gradient descent and nonlinear function approximation.

The former aims to reduce each parameter by a small amount; it employs some nonlinear function approximators such as rectified linear units (ReLUs) and depthwise separable convolutional filters to approximate weight updates.

In practice, however, it is still computationally expensive and slow for training deep CNNs because of its global convergence property that accumulates large errors on mislabeled samples.

In contrast, stochastic gradient descent with momentum often suffers from slow convergence because vanishing gradients get amplified.

## Backpropagation in Recurrent Neural Network

Back-propagation through time (BPTT) is a variation of back-propagation where one steps backwards through discrete time steps instead of continuous values.

The most common application for BPTT is recurrent neural networks (RNNs) that have an internal state, and it’s used to learn from sequences.

This works because, given an input sequence and corresponding output sequence at each step in time, you can predict what happened at previous times from the current state.

Then, by using BPTT to train your network with these specific pairs, you can tweak your RNN’s weights so it makes better predictions with every step forward in time hence its ability to sequence data properly.

More generally speaking, when training an RNN with BPTT, you’re trying to minimize errors overall past input/output pairs (or equivalently future ones).

## Implementation of Backpropagation Algorithm

Backpropagation, also known as reverse propagation or backward propagation, is an algorithm used for supervised machine learning.

The goal of backpropagation is to determine which weights in a neural network should be adjusted to reduce errors by taking advantage of previous computations.

The error is propagated backward through each layer until it reaches a neuron that connects to output variables.

It then calculates how that neuron’s error can be reduced and distributes it throughout its associated hidden layers.

The amount of weight subtracted from each node, referred to as its learning rate, determines how much information will flow into other nodes so they can adjust their own weights accordingly.

Related Article: Singular Value Decomposition – What Is It?

## Applications of Backpropagation in neural network

Backpropagation can be used to train different types of artificial neural network(s), most commonly multi-layer perceptions, and convolutional neural networks.

It’s basically a way of propagating error gradients backward through a layer to find out which node was responsible for it. This allows us to update their weights so that they make fewer errors next time.

There are many different techniques we could use but I’m just going to talk about one: gradient descent with an EMA (exponential moving average) learning rate schedule.

If you’re interested in learning more feel free to look up momentum SGD, Adam, or Nesterov’s updates because of all of these work on top of back-propagation.

## Conclusion

Once we have calculated all of these gradients, we need to go about doing a backward pass through every node of our network.

Backpropagation is just a way of propagating the total loss back into the neural network to know how much of the loss every node is responsible for, and subsequently updating these weights (all those weights, they do not change simultaneously like before) in such a way that minimizes that loss by giving nodes with higher error rates lower weights and vice versa.