This lesson is still being designed and assembled (Pre-Alpha version)

Deep Learning in the Real World

Overview

Teaching: 0 min
Exercises: 0 min
Questions
  • What kinds of layer can be built into a neural network?

  • Based on different questions, what kind of layers should we used?

Objectives
  • Learning more advanced layer design

Neural Networks in Realistic Applications

Today, deep learning has been applied in many sophisticated applications which were previously thought impossible to do by computers. These include

In cybersecurity, neural-network models have been deployed to filter spam emails, network intrusion and threat detection, detection of malware on a computer system, among other uses. Some real-world examples are listed in the following articles: “Five Amazing Applications of Deep Learning in Cybersecurity”; as well as “Google uses machine learning to catch spam missed by Gmail filters”.

These sophisticated applications call from more complex network architectures, which include additional types of layers to help these networks in identifying patterns from spatial data points (2-D or 3-D images), learning from sequences of data points (event correlation analysis, voice and video analysis). In this episode, we will briefly touch on various layers (beyond traditional dense neuron layers) that are used in state-of-the-art neural network models. We will also present an overview of network architectures and their applications.

Types of Layers in Neural Networks

In order to build a neural network, one needs to know the different kinds layers which make up the building block of a neural network. In addition to the fully connected neuron layer (described in the previous episode), which constitutes the “thinking” part of the network, there are other types of layers that can provide spatial or temporal perception, “memory”, etc.

Activation Functions

There are several types of activation functions that can be used in modeling the neurons.

Some popular activation functions

(credit: Medium user @krishnakalyan3)

Sigmoid function is the classic choice in the older days of neural network. Recently, the ReLU (rectified linear unit) function has gained popularity because it is much cheaper to compute. Even more recently, however, the ELU (exponential linear unit) gained more popularity as it has been shown to perform best on some benchmark data. We will be using ELU in our hands-on.

Building a Neural Network

Building an appropriate network for a given task requires intuition and many experimentations to pick the best network. We are not going to build a network in this training, as it requires more knowledge on how each layer works, and how the combinations work together.

There are many tutorials and courses on deep learning which covers this topic (see the References section). A brief article by Jason Brownlee covers some of the approach, with some pointers for further reading.

In reality, it will take a lot of trial-and-error to build a network that perform best for a certain task. An article by Naoki Shibuya, titled Pipelines, Mind Maps and Convolutional Neural Networks, demonstrates the discipline that a data scientist had to exert over himself and his impulses so that he could reach his end-goal more efficiently.

Other neural network architectures

There are some more advanced layers which we will mention because it will be used in some exercises:

Here are cheetsheets of convolutional neural network and Recurrent Neural Network from Stanford University.

A Zoo of Neural Networks

There is an interesting chart by Fjodor Van Veen for well-known neural network types. A nice brief explanation on each one of them can be found in this article.

Key Points

  • Layer design