When taking a Linux Academy course, you may feel like you’re doing some deep learning as you’re absorbing the knowledge and gaining the skills of a new subject. But there’s another kind of deep learning attracting attention these days, in which algorithms are used to understand data.
Deep learning is a type of machine learning. Machine learning is the use of algorithms to find patterns in data. There are a wide variety of algorithms that are each tuned to a particular purpose. Deep learning algorithms have the ability not only to analyze data sets having a large number of features, but also to analyze binary data like images, videos, and audio files. Deep learning is typically based on the use of neural networks, which contain several layers of processing nodes that each build upon the learning of the previous layer.
Deep learning is being employed successfully in numerous applications. Google uses it to improve the functionality of Google Translate and of photo search. Facial recognition in Facebook is powered by deep learning. Facebook has also built a text understanding engine called DeepText to understand user comments and their intent and sentiment. An example use of it might be when a user comments that they want to buy something; Facebook could then direct them to a place where they could buy it. Twitter utilizes deep learning to rank the most relevant tweets on a user’s timeline. Researchers at MIT have developed a system that has learned the sounds made by various objects in videos. The software can generate sounds that accompany the actions being shown in videos. This software might also be used to help autonomous robots understand their environment. Recent Kaggle competitions involving deep learning include providing labels to videos, using satellite images to track the human footprint in the Amazon basin, and counting sea lions in NOAA aerial photos. Cloud platforms also provide deep learning functionality, such as AWS Rekognition image analysis as described in a previous Linux Academy blog entry.
If you have experience with machine learning and want to give deep learning a try, several open source frameworks are available.
TensorFlow is a popular deep learning library released by Google. It can be run in environments ranging from a single laptop to a large cluster of GPU nodes. TensorFlow is written for use with Python and also has libraries available for Java, C, and Go. Writing TensorFlow code involves setting up and running a data flow graph. Each node in the graph contains a function for performing a computation on the data. The output of a node flows to be used as input for other nodes, as specified in the initial set up of the graph. In this way, a neural network of several layers of nodes can be designed to process the data. The tensors, referred to in the name TensorFlow, are the sets of data that flow between nodes. A tensor in a neural network may consist of a complex arrangement of multidimensional arrays of data. While TensorFlow is well suited for running neural networks, it can also perform conventional machine learning as well as any kind of data processing that one may want to code into the nodes. Additionally, TensorFlow users have developed and released several pre-trained models, which are reusable models that can be downloaded and used for specific purposes like image captioning, image classification, text processing, and much more.
Other open source deep learning frameworks include Amazon’s Deep Scalable Sparse Tensor Network Engine (DSSTNE), Facebook’s Caffe2, Microsoft’s Cognitive Toolkit, H2O’s Deep Learning, and Skymind’s DeepLearning4J. While the neural networks utilized by most deep learning libraries are conceptually similar, though not exactly the same, as the functionality of groups of neurons in the brain, another company, Numenta, has undertaken a mission of building software that actually works like the brain and has released a framework designed to function in the same way as several layers of the neocortex.
Deep learning is producing proven results. Most deep learning tools can also perform conventional machine learning so it could happen that deep learning frameworks eventually become the standard machine learning tools. It will be interesting to watch the ongoing progress of deep learning.