Deep Learning Interview Questions
Deep learning is a subset of machine learning that is entirely based on artificial neural networks. These neural networks attempt to simulate the behavior of the human brain—albeit far from matching its ability—allowing it to “learn” from large amounts of data. While a neural network with a single layer can still make approximate predictions, additional hidden layers can help to optimize and refine for accuracy.
Deep learning drives many artificial intelligence (AI) applications and services that improve automation, performing analytical and physical tasks without human intervention. Deep learning technology lies behind everyday products and services (such as digital assistants, voice-enabled TV remotes, and credit card fraud detection) as well as emerging technologies (such as self-driving cars).
If you are a deep learning engineer, you need to have a thorough understanding not only of coding but also of each of the components that go into creating a successful deep learning algorithm. 
Example: "The primary function of a neural network is to receive a set of inputs, perform complex calculations and then use the output to solve the problem. A neural network is used for a range of applications. One example is classification; there are many classifiers available today, such as random forest, decision trees, support vector, logistic regression and so on, and of course neural networks."
The most common Neural Networks consist of three network layers :
* An input layer
* A hidden layer (this is the most important layer where feature extraction takes place, and adjustments are made to train faster and function better)
* An output layer 
Each sheet contains neurons called “nodes,” performing various operations. Neural Networks are used in deep learning algorithms like CNN, RNN, GAN, etc.
Following are some of the applications of deep learning :
* Pattern recognition and natural language processing.
* Recognition and processing of images.
* Automated translation.
* Analysis of sentiment.
* System for answering questions.
* Classification and Detection of Objects.
* Handwriting Generation by Machine.
* Automated text generation.
* Colorization of Black and White images.
Following are the advantages of neural networks :
* Neural networks are extremely adaptable, and they may be used for both classification and regression problems, as well as much more complex problems. Neural networks are also quite scalable. We can create as many layers as we wish, each with its own set of neurons. When there are a lot of data points, neural networks have been shown to generate the best outcomes. They are best used with non-linear data such as images, text, and so on. They can be applied to any data that can be transformed into a numerical value.
* Once the neural network mode has been trained, they deliver output very fast. Thus, they are time-effective.
Following are the disadvantages of neural networks :
* The "black box" aspect of neural networks is a well-known disadvantage. That is, we have no idea how or why our neural network produced a certain result. When we enter a dog image into a neural network and it predicts that it is a duck, we may find it challenging to understand what prompted it to make this prediction.

* It takes a long time to create a neural network model.

* Neural networks models are computationally expensive to build because a lot of computations need to be done at each layer.

* A neural network model requires significantly more data than a traditional machine learning model to train.
Supervised learning is a system in which both input and desired output data are provided. Input and output data are labeled to provide a learning basis for future data processing.

Unsupervised procedure does not need labeling information explicitly, and the operations can be carried out without the same. The common unsupervised learning method is cluster analysis. It is used for exploratory data analysis to find hidden patterns or grouping in data.
Both shallow and deep networks are good enough and capable of approximating any function. But for the same level of accuracy, deeper networks can be much more efficient in terms of computation and number of parameters. Deeper networks can create deep representations. At every layer, the network learns a new, more abstract representation of the input.
Overfitting is the most common issue which occurs in deep learning. It usually occurs when a deep learning algorithm apprehends the sound of specific data. It also appears when the particular algorithm is well suitable for the data and shows up when the algorithm or model represents high variance and low bias.
Backpropagation is a training algorithm which is used for multilayer neural networks. It transfers the error information from the end of the network to all the weights inside the network. It allows the efficient computation of the gradient.
Backpropagation can be divided into the following steps : 
* It can forward propagation of training data through the network to generate output.
* It uses target value and output value to compute error derivative concerning output activations.
* It can backpropagate to compute the derivative of the error concerning output activations in the previous layer and continue for all hidden layers.
* It uses the previously calculated derivatives for output and all hidden layers to calculate the error derivative concerning weights.
* It updates the weights.
Machine Learning forms a subset of Artificial Intelligence, where we use statistics and algorithms to train machines with data, thereby, helping them improve with experience.
Deep Learning is a part of Machine Learning, which involves mimicking the human brain in terms of structures called neurons, thereby, forming neural networks.