Source: Deep Learning on Medium
Introduction to Deep Learning and Artificial Neural network.
Deep Learning is one of the major branch of Artificial Intelligence, where models will be trained in a different way as compared to machine learning. Before getting into what is Deep Learning and how the deep learning models are trained,I will discuss about one of the question which I faced most of the times “What is the difference between Machine Learning and Deep Learning?”
Data should have a set of features which uniquely defines the labels in case of ML and models will be trained with the help of few ML algorithms.But consider the example of categorizing animal pictures into different classes like cats,dogs etc.if we go with machine learning approach we have to first define the feature set attributes which will classify the animal type,features like shape,eye color, size of nose etc.The drawback of using ML approach for these kind of problem is huge size of feature set. So in order to deal with such a complex decisions, we have to dig a bit more into data and allow the program to identify the pattern in data.It can be achieved by using Deep Learning.
What is Deep Learning?
As usual let’s begin with formal definition of Deep Learning.
“Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.”
One thing can be understood by the above definition is Deep Learning is nothing but a form of machine learning, both will be used for the same purpose.Deep Learning will allow us to come up with the powerful and flexible model compared to Machine Learning. In deep learning models are created by passing the data into a Neural network (a collection of neurons distributed in layers ) continuously, where as Machine Learning models are algorithm driven.In deep learning there is no need of defining the feature sets, the network itself will identifies the feature by making use of the data set provided (Sounds interesting!)
What is Artificial Neural Network?
Ever struggled to remember the image of neuron while writing biology exams(Honestly I failed so many times while doing the same),but in Deep Learning neurons are represented using circle(Wish it was the same during my school days). The inspiration of Deep Learning is human neuron structure.Deep learning mimics the human neuron structure artificially.The human brain processes sensory and other information using billions of interconnected neurons. Over the time connections among the neurons changes by growing stronger or weaker in a feed back loop as the person learns more about his environment. The same is applied in case of artificial neural networks, where the neurons are distributed among the various number of layers. The each neuron in layer is connected with all the neurons of adjacent layers and the thickness of the connection(which is basically called weights and biases) changes as the feedback loop progress. The optimized weights and biases define the quality of the end model.There are various approaches or logic to get these values. Basically these networks has three kind of layers input layer,hidden layers and output layer and the neurons are distributed among these layers.As the name suggests input layer nodes receives the input data and out put layers nodes are equivalent to output class which gives the classification result/decisions.The relationship of weights and biases along with input data and out put labels can be represented with one equation which is familiar to us
where Y is the output class,X is the input data,W and B are the weight and bias correspondingly.Various algorithms are used to obtain the optimized weights and bias.
Most common library used to create these kind of artificial neural network is Tensorflow.
What is Tensorflow?
Tensorflow is one of the most famous deep learning library(one of my favorite opensource library ),which is developed by Google and the source code is available on github. It offers high end APIs to define the neural network structure and train the model,all we have to do is put some NLP logic to get the data in network understandable format(in case of dealing with textual inputs) or pixel level definition of images and feed into the network through input layer. Tensorflow can be installed in two versions CPU and GPU.,but these libraries needs a high end machines to train models(A simple hello world kind of sample may take months to learn).GPU version improves the performance compared to CPU.
Apart from Tensorflow there are other libraries/platform which helps to build our neural network like Theano,Infer.Net, Torch and recently announced Keras(Keras is the high level API written in Python on top of tensorflow)
The above gives an intro about what is Deep Learning and Neural network and difference between ML and DL and its just an introduction.Deep learning is deep as it sounds and an interesting field also.