# backpropagation algorithm

### What is a backpropagation algorithm?

Backpropagation, or backward propagation of errors, is an algorithm that is designed to test for errors working back from output nodes to input nodes. It is an important mathematical tool for improving the accuracy of predictions in data mining and machine learning. Essentially, backpropagation is an __algorithm__ used to calculate derivatives quickly.

There are two leading types of backpropagation networks:

**Static backpropagation.**Static backpropagation is a network developed to map static inputs for static outputs. Static backpropagation networks can solve static classification problems, such as optical character recognition (__OCR__).**Recurrent backpropagation.**The recurrent backpropagation network is used for fixed-point learning. Recurrent backpropagation activation feeds forward until it reaches a fixed value.

The key difference here is that static backpropagation offers instant mapping and recurrent backpropagation does not.

### What is a backpropagation algorithm in a neural network?

Artificial neural networks use backpropagation as a learning algorithm to compute a gradient descent with respect to weight values for the various inputs. By comparing desired outputs to achieved system outputs, the systems are tuned by adjusting connection weights to narrow the difference between the two as much as possible.

The algorithm gets its name because the weights are updated backward, from output to input.

The advantages of using a backpropagation algorithm are as follows:

- It does not have any parameters to tune except for the number of inputs.
- It is highly adaptable and efficient and does not require any prior knowledge about the network.
- It is a standard process that usually works well.
- It is user-friendly, fast and easy to program.
- Users do not need to learn any special functions.

The disadvantages of using a backpropagation algorithm are as follows:

- It prefers a matrix-based approach over a mini-batch approach.
- Data mining is sensitive to noise and irregularities.
- Performance is highly dependent on input data.
- Training is time- and resource-intensive.

### What is the objective of a backpropagation algorithm?

Backpropagation algorithms are used extensively to train feedforward neural networks in areas such as deep learning. They efficiently compute the gradient of the loss function with respect to the network weights. This approach eliminates the inefficient process of directly computing the gradient with respect to each individual weight. It enables the use of gradient methods, like gradient descent or stochastic gradient descent, to train multilayer networks and update weights to minimize loss.

The difficulty of understanding exactly how changing weights and biases affect the overall behavior of an artificial neural network was one factor that held back more comprehensive use of neural network applications, arguably until the early 2000s when computers provided the necessary insight.

Today, backpropagation algorithms have practical applications in many areas of artificial intelligence (AI), including OCR, natural language processing and image processing.

### What is a backpropagation algorithm in machine learning?

Backpropagation requires a known, desired output for each input value in order to calculate the loss function gradient -- how a prediction differs from actual results -- as a type of supervised machine learning. Along with classifiers such as Naïve __Bayesian filters__ and decision trees, the backpropagation training algorithm has emerged as an important part of machine learning applications that involve predictive analytics.

### What is the time complexity of a backpropagation algorithm?

The time complexity of each iteration -- how long it takes to execute each statement in an algorithm -- depends on the network's structure. For multilayer perceptron, matrix multiplications dominate time.

### What is a backpropagation momentum algorithm?

The concept of momentum in backpropagation states that previous weight changes must influence the present direction of movement in weight space.

### What is a backpropagation algorithm pseudocode?

The backpropagation algorithm pseudocode represents a plain language description of the steps in a system.

### What is the Levenberg-Marquardt backpropagation algorithm?

The Levenberg-Marquardt method helps adjust the weight and bias variables. Then, the backpropagation algorithm is used to calculate the Jacobian matrix of performance functions considering the weight and bias variables.

*Explore **key differences among AI vs. machine learning vs. deep learning**.*