Top Banner
Spark Technology Center Convolutional Neural Networks at Scale in MLlib Jeremy Nixon
23

Convolutional Neural Networks at scale in Spark MLlib

Jan 28, 2018

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Convolutional Neural Networks at Scale in MLlib

Jeremy Nixon

Page 2: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

1. Machine Learning Engineer at the Spark Technology Center

2. Contributor to MLlib, dedicated to scalable deep learning.

3. Previously, studied Applied Mathematics to Computer Science and Economics at Harvard

Jeremy Nixon

Page 3: Convolutional Neural Networks at scale in Spark MLlib

Future Work1. Convolutional Neural Networks

a. Convolutional Layer Typeb. Max Pooling Layer Type

2. Flexible Deep Learning API3. More Modern Optimizers

a. Adamb. Adadelta + Nesterov Momentum

4. More Modern activations5. Dropout / L2 Regularization6. Batch Normalization7. Tensor Support8. Recurrent Neural Networks (LSTM)

Page 4: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

1. Framing Deep Learning2. MLlib Deep Learning API3. Optimization4. Performance5. Future Work

Structure

Page 5: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

1. Structural Assumptions2. Automated Feature Engineering3. Learning Representations4. Applications

Framing Convolutional Neural Networks

Page 6: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

- Network depth creates an extraordinary range of possible models.

- That flexibility creates value in large datasets to reduce variance.

Structural Assumptions:

Combinatorial Flexibility

Page 7: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

X = Normalized Data, W1, W2 = Weights

Forward:

1. Multiply data by first layer weights | (X*W1)2. Put output through non-linear activation | max(0, X*W1)3. Multiply output by second layer weights | max(0, X*W1) *

W24. Return predicted output

Structural Assumption:The Model

Page 8: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

- Pixels - Edges - Shapes - Parts - Objects- Learn features that are optimized for the

data- Makes transfer learning feasible

Structural Assumptions:

Hierarchical Abstraction

Page 9: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Structural Assumptions:

Location Invariance

- Convolution is a restriction on the features that can be combined.

- Location Invariance leads to strong accuracy in vision, audio, and language.

colah.github.io

Page 10: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Automated Feature Engineering

Page 11: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Learning Representations

Hidden Layer+

Nonlinearity

http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

Page 12: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

1. CNNs - State of the arta. Object Recognitionb. Object Localizationc. Image Segmentationd. Image Restoratione. Music Recommendation

2. RNNs (LSTM) - State of the Arta. Speech Recognitionb. Question Answeringc. Machine Translationd. Text Summarizatione. Named Entity Recognitionf. Natural Language Generation

g. Word Sense Disambiguationh. Image / Video Captioningi. Sentiment Analysis

Applications

Page 13: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Flexibility. High level enough to be efficient. Low level enough to be expressive.

MLlib Flexible Deep Learning API

Page 14: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Flexibility. High level enough to be efficient. Low level enough to be expressive.

MLlib Flexible Deep Learning API

Page 15: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Modularity enables Logistic Regression, Feedforward Networks.

MLlib Flexible Deep Learning API

Page 16: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Introducing Convolutional and Max-Pooling Layer types.

MLlib Convolutional Neural Network

Page 17: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Optimization

Page 18: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Optimization

Page 19: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Parallel implementation of backpropagation:

1. Each worker gets weights from master node.

2. Each worker computes a gradient on its data.

3. Each worker sends gradient to master.4. Master averages the gradients and

updates the weights.

Distributed Optimization

Page 20: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

● Parallel MLP on Spark with 7 nodes ~= Caffe w/GPU (single node).

● Advantages to parallelism diminish with additional nodes due to communication costs.

● Additional workers are valuable up to ~20 workers.

● See https://github.com/avulanov/ann-benchmark for more details

Performance

Page 21: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Github: https://github.com/JeremyNixon/sparkdl

Spark Package: https://spark-packages.org/package/JeremyNixon/sparkdl

Access

Page 22: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

1. GPU Acceleration (External)2. Keras Integration3. Residual Layers4. Hardening5. Regularization6. Batch Normalization7. Tensor Support

Future Work

Page 23: Convolutional Neural Networks at scale in Spark MLlib

Spark Technology Center

Thank you for your attention!

Questions?