Get this book -> Problems on Array: For Interviews and Competitive Programming

Deep Learning has become quite a buzzword in recent years. It has taken over in all applications from tasks like image recognition, chatbots like Alexa and Google Assistant to defeating world champions in a complex games like Go and Dota 2. So what exactly is deep learning and neural networks all about?

Let's first see where exactly deep learning lies and then let's explore the core of deep learning that comprises of Artificial Neural Networks.

So from the above figure , It's pretty cleared that Deep Learning is the subset of Machine Learning & Artificial Intelligence. Now let's dive into neural networks , so for that first we need to understand a bit of biology.

## What is a Neuron?

A neuron is a cell that carries electrical impulses. They are the fundamental units in our brain. Our brain has nearly a 100 billion neurons which are connected with each other. They can transmit signals to long distances and with each other.

The artificial neuron is an inspiration taken from the biological version. It consists of mainly these functions:-

- Inputs:- It takes in input from other neurons or the given data.
- Weights and Biases :- These terms play the central role in artificial neurons. Biases are the minimum value required to fire(pass the information) a neuron . Weights control how much information should it process from the previous neurons.
- Activation or Processing Unit:- This unit decides whether to pass the information to the next neurons or not and the quantity of the information. (The information is equivalent to the electrical impulses in our brain). Activation is generally a function that increases the non-linearity.
- Outputs:- They send out the output information to the other neurons.

## What is a Artificial Neural Network?

Now we know all about an artificial neuron so let's now look at a artificial neural network which consists of these neurons. The artificial neural networks consists of three parts:-

- Input Layer :- The input neurons for the network. This is where the data is fed into.
- Hidden Layer :- These is the part where the network learns to process information and map output from input.
- Output Layer:- The prediction of our network which can be a single neuron for regression and binary classification or several in number for multi label classification.

Each layer can contain several neurons. The number of neurons in hidden layers and the number of hidden layers have to be chosen experimentally , there is no perfect number available.

## Why Deep Learning?

So you must be wondering why it's called deep learning, the reason is simple the hidden layers can be from a few in number to several thousands. The network has to be really deep to learn on terabytes and petabytes of data. That's the reason it's called deep learning. The first image below consist of only three hidden layer but the next image is a Google's inception network that consists of several layers.

## Why Deep over Machine Learning?

Traditional Machine Leaning algorithms fail to perform better with the increase in data but Deep Learning performs better with increase of data. With the rise of powerful GPU's computation and performance of Deep Learning algorithms have increased by several times. Below there is a figure comparing them both :-

In Machine Learning hand-coded feature extraction is a must to get good performance and several human hours and labor are wasted for it but Deep Learning doesn't require any feature extraction, it learns by itself.

## Applications

- Search Engines.
- Chatbots.
- Image Recognition , Captioning and Segmentation.
- New Drug Discovery and Medical Research.
- Robotics.
- Playing Games like Go, Chess, Dota 2 ,etc.
- Recommendation systems.
- Speech recognition & Music Generation.

With this article at OpenGenus, you must have the complete idea of Neural Network and Deep Learning.