Open Source For You — December 2017

(Steven Felgate) #1
http://www.OpenSourceForU.com | OPEN SOURCE FOR YOU | DECEMBER 2017 | 95

Overview For U & Me

Still, as the patterns get even more complex, neural
networks with a small number of layers can become unusable.
The reason is that the number of nodes necessary in each
layer grows exponentially with the number of possible
patterns in the data. Eventually, training becomes way too
expensive and the accuracy starts to suffer. So for an intricate
pattern – like an image of a human face, for example – basic
classification engines and shallow neural nets simply aren’t
good enough. The only practical choice is a deep net.
But what enables a deep net to distinguish these complex
patterns? The key is that deep nets are able to break the
multifaceted patterns down into a series of simpler patterns.
For example, let’s say that a net has to decide whether or
not an image contains a human face. A deep net would first
use edges to detect different parts of the face – the lips,
nose, eyes, ears, and so on – and would then combine the
results together to form the whole face. This important
feature – using simpler patterns as building blocks to
detect complex patterns – is what gives deep nets their
strength. These nets have now become very accurate and,
in fact, a deep net from Google recently beat a human at a
pattern recognition challenge.

What is a deep net platform?
A platform is a set of tools that other people can build on top
of. For example, think of the applications that can be built off
the tools provided by iOS, Android, Windows, MacOS, IBM
Websphere and even Oracle BEA. Deep learning platforms
come in two different forms – software platforms and full
platforms. A deep learning platform provides a set of tools
and an interface for building custom deep nets. Typically, it
provides a user with a selection of deep nets to choose from,
along with the ability to integrate data from different sources,
manipulate data, and manage models through a UI. Some
platforms also help with performance if a net needs to be
trained with a large data set.
There are some advantages and disadvantages of using a
platform rather than using a software library. A platform is an
out-of-the-box application that lets you configure a deep net’s
hyper-parameters through an intuitive UI. With a platform,
you don’t need to know anything about coding in order to
use the tools. The downside is that you are constrained by the
platform’s selection of deep nets as well as the configuration
options. But for anyone looking to quickly deploy a deep

net, a platform is the best way to go. We’ll also look at
two machine learning software platforms called H2O, and
GraphLab Create, both of which offer deep learning tools.
H2O: This started out as an open source machine learning
platform, with deep nets being a recent addition. Besides a set
of machine learning algorithms, the platform offers several
useful features, such as data pre-processing. H2O has built-
in integration tools for platforms like HDFS, Amazon S3,
SQL and NoSQL. It also provides a familiar programming
environment like R, Python, JSON, and several others to
access the tools, as well as to model or analyse data with
Tableau, Microsoft Excel, and R Studio. H2O also provides
a set of downloadable software packages, which you’ll need
to deploy and manage on your own hardware infrastructure.
H2O offers a lot of interesting features, but the website can be
a bit confusing to navigate.
GraphLab: The deep learning project requires graph
analytics and other vital algorithms, and hence Dato’s
GraphLab Create can be a good choice. GraphLab is a
software platform that offers two different types of deep
nets depending on the nature of your input data – one is a
convolutional net and the other is a multi-layer perceptron.
The convolutional net is the default one. It also provides
graph analytics tools, which is unique among deep net
platforms. Just like the H2O platform, GraphLab provides
a great set of data mugging features. It provides built-in
integration for SQL databases, Hadoop, Spark, Amazon S3,
Pandas data frames, and many others. GraphLab also offers
an intuitive UI for model management. A deep net platform
can be selected based on your project.

Deep learning is gaining popularity
Deep learning is a topic that is making big waves at the
moment. It is basically a branch of machine learning that
uses algorithms to, among other things, recognise objects and
understand human speech. Scientists have used deep learning
algorithms with multiple processing layers to make better
models from large quantities of unlabelled data (such as photos
with no descriptions, voice recordings or videos on YouTube).
The three main reasons why deep learning is gaining
popularity are accuracy, efficiency and flexibility. Deep
learning automatically extracts features by which to classify
data, as opposed to most traditional machine learning
algorithms, which require intense time and effort on the part
of data scientists. The features that it manages to extract are
more complex, because of the feature hierarchy possible in a
deep net. They are also more flexible and less brittle, because
the net is able to continue to learn on unsupervised data.

Figure 1: Deep learning and neural networks


Simple Neural Network Deep Learning Neural Network

Input Layer Hidden Layer Output Layer

By: Neetesh Mehrotra
The author works at TCS as a systems engineer. His areas of
interest are Java development and automation testing. You can
contact him at [email protected].
Free download pdf