# What is Deep Learning ??

*Introduction:*

*Introduction:*

**Deep Learning **simply means; the in depth study of intelligence. This might sound random, but lets just dive **deep **into the topic now. **Deep Learning (DL)** is the study of **Neural Networks**.

# Neural Networks (NNs):

**Neural Networks **as the name suggests are networks of neurons. The neurons that are present in NNs are artificial neurons commonly known as **Perceptrons. **Taking inspiration from the neurons in our brain, these perceptrons are useful for implementing intelligence.

Take the example of a small child, right from his childhood he/she learns from what they see around them and then act accordingly. But the main difference between humans and machines is the ability to think. If we want to incorporate this **ability to think into machines**, then this is known as Deep Learning.

A **network of perceptrons** is known as **Artificial Neural Network (ANNs) . **Artificial Neural Networks consist of many layers and each layer consists of perceptrons. As **ANNs **consist of layers, there are a number of factors that determine, how good an ANN is! **Deep Neural Networks **are also artificial neural networks but they consist of hidden layers. **Hidden layers** are the layers of perceptrons that perform specific functions on the inputs.

When we design a Neural Network, the number of layers and number of neurons are the 2 factors that important along with many others which influence the overall performance of a Neural Net. In general, Deep Learning is being used in the fields of **Computer Vision, Natural Language Processing (NLP)**,etc. with the applications in **Autonomous Driving, Speech Recognition**, **Face Recognition**, etc.

Giving machines the ability to think is not an easy task, this requires Data & surely, lots. **Data **is the food for any Neural Net, without data it is almost impossible to generate intelligence in machines. Neural Networks basically takes the input as a dataset and then processes the data through its layers and then gives an output. If you are wondering, what do these layers do? Then we can say that they simply extract features from the data and learn on their basis.

Each layer generates a better output than the layer before.** For example**: If you are performing the task of **Face Recognition**, then the first hidden layer will start by recognizing , small dots and small lines in the faces; second hidden layer will start detecting some parts of the face; like eyes , lips , nose , ears, etc. Finally the last hidden layer recognizes faces and then it matches the new face with all the faces in the database and accordingly gives an output. When we use NNs then we generate some models and these models perform predictions on the data. Data is normally split into sets, like **training, test and validation sets**. The model trains on the training data. The internal computations that take place in the NNs are mathematical calculations.

# How does a Neural Network work?

**Neural Networks** work with their foundation as **mathematics**(particularly vectors, matrices & calculus). **Simple process:** Inputs supplied to the NN are multiplied by weights(like weightage of each inputs) and some bias(numeric constants) is added to this multiplication and then summed; this sum is then passed to a non-linear function and that function gives an output. The output that is produced, are the predictions that are compared with the ground truth labels.

**Cost Function** is used to calculate the difference between the actual predictions and the expected outputs. The goal is to minimize the cost function and thus get predictions; closer to the expected values.

# How do we implement all this ?

All the information above is just a introduction to this great and huge field. But for implementing NNs and developing models, mostly we use **Python **along with **TensorFlow and Keras**. TensorFlow is a library for Deep Learning along with **Keras, **which is an API that uses TensorFlow as a backend for performing heavy computations. **TensorFlow 2.x** now comes integrated with Keras which makes it really handy & easy to develop models.

*Deep Learning is a vast growing field ; but for starting in this field it is very important to understand the basics right from the mathematics behind each step. **TensorFlow and Keras** really make life easy out there; but concepts are very important. This was a very high level introduction for Deep Learning. Hope you like it !!*

**Happy Coding !!**