Deep Learning by Doing arconsis IT-Solutions GmbH
Who? Wolfgang Frank Achim Baier @wolfgangfrank @arconsis
Let’s talk about…
Cucumber
… we will get back to that later!
Why learn about Machine Learning?
Web Search News Search
…maybe more important… Cool & Fun
Inspirational Applications of Deep Learning Source: http://machinelearningmastery.com
Video posted on YouTube by Yann LeCun Yann LeCun's convolutional neural network 1993 10%-20% of all checks in US
Instant Visual Translation Example of instant visual translation, taken from the Google Blog. Automatic Machine Translation
Thomas Samson/AFP/Getty Images Google Translate 103 languages!
Colorization of Black and White Photographs Image taken from Richard Zhang, Phillip Isola and Alexei A. Efros. Automatic Colorization of Black and White Images Very large convolutional neural networks and supervised layers recreate the image with the addition of color.
Example of Object Detection within Photogaphs Taken from the Google Blog. Object Classification and Detection in Photographs
Automatic Image Caption Generation Sample taken from Andrej Karpathy, Li Fei-Fei Automatic Image Caption Generation
Automatic Game Playing Deep reinforcement models learns how to play breakout based only on the pixels on the screen
Real-Time object detection Source: http://pjreddie.com/darknet/yolo/
Self driving vehicles Source: https://electrek.co/2016/12/21/tesla-autopilot-vision-neural-net-data-elon-musk/
Many more examples / applications … Source: deeplearning4j.org
source: https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/ Artificial Intelligence — Human Intelligence Exhibited by Machines Machine Learning — An Approach to Achieve Artificial Intelligence Deep Learning — A Technique for Implementing Machine Learning
“Machine learning is about using examples to develop an expert system that can make useful statements about new inputs.” Machine Learning with TensorFlow MEAP, Manning
Typical principles & algorithms…
Supervised Learning Train a model with known / labeled data to make predictions for new data (regression, classification) regression: continuous value output classification>; discrete value output
Unsupervised Learning Find common structures in unknown / unlabeled data (clustering, patterns, find coherent groups)
Reinforcement Learning Getting an agent to act in the world so as to maximize its rewards (Trial & Error —> construct knowledge —> Map situations to actions)
Famous Algorithms Machine Learning Classic Algorithms Neural Networks Linear Regression Autoencoder Logistic Regression Q Policy NN Softmax Regression Perceptron K-means Convolutional NN Self-organizing map Recurrent NN Viberti Deep NN
A top down approach…
n*log(n) Arrays.sort(int[] a) —> tuned quicksort Arrays.sort(Object[] a) —> modified merge sort
Derive the “ back propagation” equation from first principles and implement it from scratch?
Instead, just call model.fit() on the deep learning API.
Top engineering and academic capabilities do not have to come first, they can come later.
Deep Learning for Industry 4.0 / IOT Japanese cucumber farmer is using deep learning and TensorFlow
https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow
Makoto used the sample TensorFlow code “Deep MNIST for Experts” with minor modifications to the convolution, pooling and last layers, changing the network design to adapt to the pixel format of cucumber images and the number of cucumber classes. https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow
https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow
Typical workflow…
Two phases 1. Learning 2. Inference
learning paradigm Training Data -> Feature Vector -> Learning Algorithm -> Model
inference paradigm “Test” Data -> Feature Vector -> Model -> Prediction
source: Wikipedia - Shoulder of Giants Standing on the shoulders of giants!
Some known DL frameworks
Theano • Python • Easy to learn • Many examples and well known NN available • Difficult for low-level customizations • Hard to debug • Primary developed by Univerity Montreal
Caffe • Python / C++ • Simple interface • Specialized to deal with images • Primarily from Berkley Univeristy
Torch • Lua • Strong support for optimization solvers • Used by Facebook
DL4J - Deeplearning 4 Java • Java / Scala • Spark support for parallelism • Good documentation (now) • Many good examples • Very active community • Works on mobile but slow
Tensorflow • C++ / Python • Growing number of language wrappers, i.e. Java • Works on large-scale GPU as well as Mobile • Very good documentation and example • TensorBoard for visualization • Very fast • Proven to work very well (Google Speech Recognition, Photos, Gmail, …)
Use & re-use existing Models and Networks and Training Data
Transfer Learning
CNN source: https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/
Example: FaceNet —> Google’s Inception-ResNet-v1 model —> Training set 453.450 images over 10.575 identities after face detection
Inference on Mobile!
Training data collection mobile device / desktop / big data server Unlabeled Input data, Training sensors, camera, … data saveTrainingData() upload training data Training API Training API Client
e.g. supervised training mobile device / desktop server Unlabeled Labeled Training Training App Training data data getUnlabeled TrainingData() get saveLabeled unlabeled TrainingData() Training API Training API Client upload labeled
Training on Server server 1. TF performs training on server Training Tensorflow data
Training on Server server 1. TF performs training on server Training Tensorflow data 2. TF saves trained NN saveNN() Trained NN
Training on Server server 1. TF performs training on server Training Tensorflow data 2. TF saves trained NN 3. API provides download of persisted trained NN Trained Training API NN
Inference on Mobile Online mobile device server Input Inference Training Tensorflow data App data fit() Trained Training API NN
Inference on Mobile Offline mobile device server Training Tensorflow data download trained NN Trained Trained Training API NN NN
Inference on Mobile Offline mobile device server Input Inference Training Tensorflow data App data fit() Trained Trained Tensorflow Training API NN NN
Tensorflow on iOS & Android
Getting started… Start CPU only container $ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow Go to your browser on http://localhost:8888/ Start GPU (CUDA) container Install nvidia-docker and run $ nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu Go to your browser on http://localhost:8888/
Android https://github.com/tensorflow/tensorflow/tree/master/ tensorflow/contrib/android iOS https://github.com/tensorflow/tensorflow/tree/master/ tensorflow/contrib/ios_examples
Demo iOS Camera Example
Demo Convolutional Networks: from TensorFlow to iOS BNNS https://paiv.github.io/blog/2016/09/25/tensorflow-to-bnns.html https://github.com/paiv/mnist-bnns
Neural Network as a Service
Predicting car prices Source: http://www.datasciencecentral.com/profiles/blogs/predicting-car-prices-part-2-using-neural-network
Deep Learning on Raspberry Pi
How to build a robot that “sees” with $100 and TensorFlow https://www.oreilly.com/learning/how-to-build-a-robot-that-sees-with-100-and-tensorflow
Takeaways?
Takeaways… 1. Don’t be scared 2. Leverage existing 3. Be a part of the future now
Sources & more info • http://machinelearningmastery.com/deep-learning-for-developers/ • http://www.networkworld.com/article/3025698/microsoft-subnet/ skype-real-time-language-translator-download-windows-ios- android.html • www.datasciencecentral.com/profiles/blogs/predicting-car-prices- part-2-using-neural-network • https://electrek.co/2016/12/21/tesla-autopilot-vision-neural-net-data- elon-musk/ • http://deeplearning4j.org • http://tensorflow.org • https://www.manning.com/books/machine-learning-with-tensorflow
Thank you! Achim Baier Wolfgang Frank @arconsis @wolfgangfrank achim.baier@arconsis.com wolfgang.frank@arconsis.com
Recommend
More recommend