Over the last decade, deep learning has attracted quite a lot of attention from researchers in the computer and data science industry. This is because it is making a huge impact in a number of different areas such as natural language processing and computer vision.
What is deep learning?
Also referred to as "end to end learning", deep learning is a technique of machine learning in which tasks and features are learned directly from the available data. This data can be of various forms such as text, sound files, or images.
Deep learning can be considered as a general artificial intelligence approach, in which there are a number of artificial intelligence algorithms coordinating together.
Let us take an example involving the classification of sound data and consider a speech recognition algorithm. To start with, we have a set of sound files each involving a person speaking a different language. A deep learning algorithm will make use of neural networks to recognize and classify each language as the output. Further, it might invoke another deep learning algorithm that is currently learning to recognize different accents of each of those classified languages. Even further, a highly specialized artificial intelligence might make use of the final results to teach itself a particular language dialect.
Another use case of deep learning would be object recognition. Many deep learning algorithms are capable of recognizing various objects present in a larger image. For instance, they may be capable of recognizing a stop sign, a ball, a dog, or a human face. A common example of deep learning is photo tag suggestions in social networking sites like Facebook.
The widespread use of deep learning has exploded over the last decade for three prime reasons:
- We can now make use of GPUs to train deep neural networks with ease and in less time.
- Deep learning algorithms and methods have now become far more accurate at classifying data.
- We can now access large amounts of data required for deep learning.
What are neural networks?
A neural network used in deep learning algorithms is somewhat analogous to the way information flows in the human mind through a network of neurons. In a neural network, the input layer of nodes receives the raw input information. This information is passed on to successive hidden layers of nodes, and each node in a successive layer receives the information from the ones in the preceding layer. After passing through these hidden layers, the information is received by the nodes in the output layer. Modern deep neural networks can have as many as hundreds of hidden layers.
The most basic neural networks are built upon the concept of weighting the inputs. Each node weighs the importance of the input that it receives from the preceding node, based on the weight of the input stream. In this model, the inputs that can have a greater contribution to the right answer have higher weights.
Neural networks adapt and train themselves as they absorb more and more information/data with each run. This way, they learn over time resulting in an increased accuracy.
Deep Learning Devbox
The use of GPUs indeed contributed a lot to the training ease of neural networks. The deep neural networks training time decreases to only few days rather than collecting data over a span of months. Machines such as the DIGITS devbox by NVIDIA have certainly made the job of researchers and data scientists much easier. The devbox contains four TITAN X GPUs and each of these GPUs hold 12 GB of memory. Moreover, the devbox comes pre-installed with the software that you need to design and train complex neural networks. Since it comes with the most commonly used deep learning frameworks--Torch, Theano, and Caffe--it is the whole deep learning package.
Nowadays, deep learning is a hot area of study among researchers in the field of computer science and artificial intelligence. Its applications are vast and range from image recognition to self-driving cars and the development of highly intelligent human-like robots.