Byte Academy Blog

A Beginner's Guide to Deep Learning

Written by Byte | Aug 17, 2020 9:15:02 AM

As long as there has been Science Fiction, the idea that machines are smarter than humans has always captivated our collective imagination. But while Artificial Intelligence (AI) has not reached that level yet, we have made considerable advances towards developing machine intelligence, as evidenced by Google, Tesla, and Uber experimenting with self-driven cars. The reason why AI has successfully burst out of universities and research labs into product is largely due to the scalability and usefulness of Deep Learning, the Machine Learning technique making this technological progress possible.

This article is a field guide for all the data enthusiasts who wish to learn more about deep learning, its scope, and its future prospects.

Why Does Deep Learning Matter?

Just how the automobile changed the technology industry forever, Artificial Intelligence is now impacting not just the technology industry but also seemingly disparate fields ranging from transport to healthcare. As AI grows, it is also bound to have unwanted externalities like an increase in unemployment rate across all domains to issues of data ethics. This makes the growth of AI important enough for us to understand, and deep learning an import component to consider.

What’s It All About?

Broadly speaking, deep learning is a subclass of machine learning algorithms that utilizes artificial neural networks to learn from the data and provide an output. This output depends on the problem being worked on, but some classic examples include handwritten digit classification and Facebook's facial recognition system

A neural network consists of several layers of neurons where individual neurons receive a specific input, with different weights provided to each input. Consequently, this system produces an output according to the rules encoded by the weights. This holds parallel to the human brain which consists of a dense network of neurons that fire a signal when activated by a particular trigger.

At the lowest layer, the network focuses on patterns of local contrast. If we take the popular MNIST dataset of 60,000 handwritten digits, it will be looking for patterns of local contrast within the entire dataset. The second layer starts focusing on looking for patterns of loops and lines involved in these digits. Finally, the top layer is able to apply these features to the number templates. It composes more and more complex features with each added layer that helps it understand the data right from its basic units. Deep Learning algorithms capture these abstract variations in data as factors with the focus of deep architecture being to automatically discover such statistical variations, from low-level features to the higher level concepts.

How is it different?

Data scientists often use a technique known as feature engineering in many of their data analysis problems. Feature engineering is the process of deciding which dependent variables, i.e. features, are to be included in any predictive model. For supervised learning algorithms, it is a process that involves a lot of trial and error, business intelligence, and data science experience. However, like unsupervised learning algorithms, deep learning employs feature learning where the neural networks automatically represent the data in different forms that are meaningful to understanding their pattern. It is the only technique with the ability to create meaning out of the smallest units of information - be it a single pixel, a single frequency or a single letter. Moreover, deeper architectures are usually more efficient as fewer computational units are needed to represent the same functions, giving greater efficiency.

While this feat might seem trivial to the layman, deep learning has made it possible to solve many of computer science’s greatest problems such as speech recognition, image identification, and automated driving.

Common Frameworks Used

Deep Learning has several open source frameworks used to implement artificial neural networks. In this section, we'll provide an overview of widely used modules in industry. 

  1. Theano is a Python library used to define, optimize, and evaluate mathematical expressions with multi-dimensional arrays. Technically, Theano is not a machine learning library since it doesn't provide pre-built models to train on your data. Instead, it's a mathematical library that provides you with tools to build these machine learning models. Theano accomplishes this through its own data structures integrated with NumPy and the transparent use of the GPU. More specifically, Theano figures out which computational portions should be moved to the GPU.
  2. TensorFlow is an open source library for numerical computation using data flow graphs. Unlike Theano, however, TensorFlow handles distributed computing through the use of multiple-GPUs. TensorFlow has grown a large amount of traction, largely due to its association with Google.
  3. Lasagne is a lightweight Python module used to construct and train networks in Theano. Lasagne does this by providing an API for constructing layers of a network and using Theano expressions that represent output, loss, and more components of deep learning neural networks.
  4. Keras is an incredibly powerful, easy to use Python library for building neural networks and deep learning networks. Keras can be used to run on top of either TensorFlow or Theano because it was developed with a desire to enable fast computations.
  5. Caffe is a deep learning framework written in C++. Because of its usage of this lower language, Caffe is incredibly fast and the architecture behind this module is very well developed.

 

Getting Started With Deep Learning

Interested in learning more about deep learning? Join our Data Science course to get a practical, immersive experience in the field and make your job AI proof.