1. Scale of data: Deep Learning algorithms work efficiently on high amount of data (both structured and unstructured). If there is less amount of data, deep learning algorithms may not perform well as compared to machine learning algorithms. Deep learning algorithms are best suited for unstructured data like images, videos, voice, natural language processing etc. Machine Learning algorithms are not capable of dealing with unstructured data.
2. Scale of computation: Deep Learning algorithms require high computational power. Deep Learning algorithms need high-end machines like GPUs as these heavily perform complex operations like matrix multiplications.
3. Feature Extraction: In machine learning, we need to manually identify the features from the dataset based on the domain knowledge and expertise. This takes a huge amount of time and effort. Also, there are a lot of chances that we can miss some of the important features which are crucial for prediction.
For example, while image processing in machine learning, you need to extract the feature manually in the image like the eyes, nose, lips, pixel values, shape, textures, position, orientation and so on. Those extracted features are then fed to the machine learning model. The performance of most of the machine learning algorithms depends on how accurately the features are identified and extracted.
Deep learning solves this issue automatically using convoluted layers in CNN. The first layer of a neural network will learn small details from the picture like edges, lines etc; the next layers will combine the previous knowledge to make more complex information.
4. Training Data: Deep Learning algorithms usually require more training data as compared to machine learning algorithms.
5. Data Augmentation: Creating new data by making reasonable modifications to the existing data is called data augmentation. Lets take an example of our MNIST dataset (hand written digits). We can easily generate thousands of new similar images by rotating, flipping, scaling, shifting, zooming in and out, cropping, changing or varying the color of the existing images.
We can use data augmentation technique when our model is overfitting due to less data.
In many cases in deep learning, increasing the amount of data is not a difficult task as we discussed above the case of MNIST dataset. In machine learning, this task is not that easy as we need labelled data which is not easily available.
6. Training Time: Deep Learning algorithms usually take a longer time to train as compared to machine learning algorithms as there are a lot of computations involved inside the hidden layers.
7. Testing Time: Deep Learning algorithms take much less testing time as compared to machine learning algorithms.
8. Interpretability: Machine Learning algorithms are more interpretable as compared to deep learning algorithms. Deep learning models mostly act as black box.
For example, decision tree in machine learning can be easily interpreted by human beings and they can easily get to know how the final values are computed. On the other hand, it is very hard to know what calculations happened inside the hidden layers of neural networks, how convoluted layers in CNN identified the various portions of the images etc.
Let’s take another example. Suppose we use deep learning to give automated scoring to essays. The performance it gives in scoring is quite excellent and is near human performance. But there’s is an issue. It does not reveal why it has given that score. Indeed mathematically you can find out which nodes of a deep neural network were activated, but we don’t know what there neurons were supposed to model and what these layers of neurons were doing collectively. So we fail to interpret the results.
9. Dimensionality: As the dimension of the data increases, efficiency of machine learning algorithms starts degrading. Although we have some dimensionality reduction techniques in machine learning like PCA, t-SNE, SVD, MDS etc but deep learning takes care of dimensionality very well.
10. Computer Vision: Deep Learning algorithms help in solving a lot of computer vision problems like:
A) Image Classification
B) Image Classification With Localization
C) Object Detection
D) Object Segmentation
E) Image Style Transfer
F) Image Colorization
G) Image Reconstruction
H) Image Super-Resolution
I) Image Synthesis
For more details on computer vision, please visit this article.
Machine Learning algorithms have limited capacity and efficiency in resolving these computer vision problems while convolutional neural networks are very efficient in handling these tasks.