As the number of observations increase in a dataset, machine learning models’ performance tend to decrease. Machine learning models cannot handle large amount of data. Deep learning came into picture to overcome the difficulty to deal with huge data by using the concept of artificial neural networks which consists of various layers in a hierarchy. These models not only deal with large data but also deal with variety of data such as Image, Text, Numbers, etc.
Deep learning is branch of data science where the model uses the concept of artificial neural networks which is inspired by the functioning of human brain, it learns from the huge dataset and produces results for unseen data. The development of such algorithms has contributed significantly in Data science advancement and allows it to be used in various fields.
Machine Learning vs Deep Learning
The major difference between machine learning and deep learning is the ability of feature extraction. In machine learning, human intervention is necessary to choose the proper features needed to train the model whereas in Deep learning, feature extraction is part of building model, model extract features on its own.
Machine learning models work well on small datasets, where deep learning model requires lot of data for training, it performs poorly on smaller datasets.
Types of Neural Net models
- Classical Neural Networks (Multilayer Perceptron)
It consists of multiple layers where neurons are interconnected with neurons of other hidden layers. It consists of input layer, hidden layers and an output layer. It is usually used when we have tabular data which is well formatted. Classification and regression problems can be solved using this.
- Convolution Neural Networks (CNN’s)
The CNN’s are bit complex models compared to classical neural networks; they have few additional operations to perform before feeding the data to the neural network. The convolution and max pooling operations are performed on the input and then the output of these operations is flattened and fed as input to the neural net. CNN’s are mainly built for image related problems such as Image classification, object detection, etc. Even though CNN’s are mostly used for image related problems, they give very good results on non-image datasets as well.
- Recurrent Neural Networks (RNN’s)
RNN’s are used where the output of one layer not only depends on present input but also depends on the previous layers’ output. In short, RNNs’ output has dependency on the previous layers’ output. RNN’s are mainly used for text related problems such as text prediction, text translation, etc where the sequence matters. RNN’s have memory where the output of the previous states is stored. The widely used type of RNN is LSTM.
Tensorflow or Pytorch libraries are used to build these deep learning models with the help of python as scripting language. Tensorflow can also be used to build machine learning models as well. Keras which is built on top of tensorflow provides high level API’s which are easy to use and which run smoothly and continuously on both CPU’s and GPU’s.