TENSORFLOW Team 2: Andrey, Daniel, John, Jonas, Ken

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

HIERARCHICAL TEMPORAL MEMORY WHY CANT COMPUTERS BE MORE LIKE THE BRAIN?
Comparing TensorFlow Deep Learning Performance Using CPUs, GPUs, Local PCs and Cloud Pace University, Research Day, May 5, 2017 John Lawrence, Jonas Malmsten,
Gravity Control™: Is the simplest system for complex data search and management Introduces a new generation graphic user interface Handles large amounts.
TensorFlow The Deep Learning Library You Should Be Using.
VisIt Project Overview
Big data classification using neural network
Add Alice to Your Chat How Can I Help You? Beide Wang
TensorFlow CS 5665 F16 practicum Karun Joseph, A Reference:
TensorFlow– A system for large-scale machine learning
Deep Learning Software: TensorFlow
Containers as a Service with Docker to Extend an Open Platform
Getting started with TensorBoard
5/13/2018 1:53 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
DL (Deep Learning) Workspace
Big Data A Quick Review on Analytical Tools
Tensorflow Tutorial Homin Yoon.
基于多核加速计算平台的深度神经网络 分割与重训练技术
Why it is Called Tensor Flow Parallelism in ANNs Project Ideas and Discussion Glenn Fung Presents Batch Renormalizating Paper.
Tohoku University, Japan
VirtualGL.
Enabling machine learning in embedded systems
Deep Learning in HEP Large number of applications:
Artificial Intelligence (CS 370D)
MVC and other n-tier Architectures
TensorFlow on Kubernetes with GPU Enabled
Introduction to .NET Framework Ch2 – Deitel’s Book
Introduction to R Programming with AzureML
Deep Learning Platform as a Service
Deploy Plugins Developer 29 October 2013
Chapter 18 MobileApp Design
Deep Learning Libraries
Intro to NLP and Deep Learning
CS 224S: TensorFlow Tutorial
Introduction CSE 1310 – Introduction to Computers and Programming
Overview of TensorFlow
A VERY Brief Introduction to Convolutional Neural Network using TensorFlow 李 弘
Node.Js Server Side Javascript
Comparison Between Deep Learning Packages
Blazingly Fast Machine Learning Inference
Microsoft Build /8/2018 5:15 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
High Performance Data Scientist
Using Tensorflow to Detect Objects in an Image
Introduction to Deep Learning for neuronal data analyses
INF 5860 Machine learning for image classification
Brain Inspired Algorithms Dr. David Fagan
Deep Learning Packages
Introduction to Tensorflow
An open-source software library for Machine Intelligence
MXNet Internals Cyrus M. Vahid, Principal Solutions Architect,
What's New in eCognition 9
CSC 578 Neural Networks and Deep Learning
The Pitfalls and Guidelines for Mobile ML Benchmarking
Training Module Introduction to the TB9100/P25 CG/P25 TAG Customer Service Software (CSS) Describes Release 3.95 for Trunked TB9100 and P25 TAG Release.
Using Tensorflow to Detect Objects in an Image
Using the Microsoft AI Platform for next generation applications
Long Short Term Memory within Recurrent Neural Networks
CS385T Software Engineering Dr.Doaa Sami
Vinit Shah, Joseph Picone and Iyad Obeid
Integrating Deep Learning with Cyber Forensics
Overview of deep learning
Tensorflow Tutorial Presented By :- Ankur Mali
Educational Computing
TensorFlow: A System for Large-Scale Machine Learning
Deep Learning Libraries
What's New in eCognition 9
What's New in eCognition 9
CSC 578 Neural Networks and Deep Learning
Getting started with TensorBoard
Machine Learning for Cyber
Presentation transcript:

TENSORFLOW Team 2: Andrey, Daniel, John, Jonas, Ken 101

AGENDA - Purpose - Andrey / Danny - Concepts - Andrey / Danny - What is a Tensor? - Danny - What is Tensorflow - Danny - Why Tensorflow? - Benefits and Advantages of Tensorflow over other frameworks - Ken - Tensorflow Criticism - John - How does it work? / DEMO - Jonas - Questions

Purpose of our research Explore various emerging deep learning frameworks Compare various properties of these frameworks: performance, ability to recognize etc.

AI, ML, Deep Learning?

AI, Deep Learning ultimately needs Machine Learning

What is Machine Learning? “Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed" (Arthur Samuel, 1959). Machine learning is closely related to (and often overlaps with) computational statistics, which also focuses in prediction-making through the use of computers. https://en.wikipedia.org/wiki/Machine_learning

What is Deep Learning? Deep learning is type of Machine Learning that enables computational models that are composed of multiple processing layers to learn representations of data with multiple levels of abstraction. Applications where Deep Learning was successful: state-of-the-art in speech recognition visual object recognition object detection many other domains such as drug discovery and genomics INTRODUCTION TO MACHINE LEARNING AN EARLY DRAFT OF A PROPOSED TEXTBOOK Nils J. Nilsson

What is a Tensor? Formally, tensors are multilinear maps from vector spaces to the real numbers ( V vector space, and V* dual space) A scalar is a physical quantity that can be completely described by a real number. The expression of its component is independent of the choice of the coordinate system. Example: Temperature; Mass; Density; Potential…. A vector is a physical quantity that has both direction and length. The expression of its components is dependent of the choice of the coordinate system. Example: Displacement; Velocity; Force; Heat flow; ….

WHAT IS TENSORFLOW? TensorFlow is a powerful library for doing large-scale numerical computation. One of the tasks at which it excels is implementing and training deep neural networks. TensorFlow provides primitives for defining functions on tensors and automatically computing their derivatives. Nodes in a graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. Think of TensorFlow as a flexible data flow based programming model for machine learning.

BACKGROUND TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

WHY TENSORFLOW? •Any individual, company, or organization could build their own Artificial Intelligence (AI) applications using the same software that Google does to fuel everything from photo recognition to automated email replies. •However, while Google stretches its platform across thousands of computer servers, the version it released to the public could run only on a single machine. Thus making TensorFlow considerably less capable for others at one point.

WHY TENSORFLOW? (Con’t) • At this time, the most notable new feature is the ability for TensorFlow to run it on multiple machines at the same time. However, many researchers and startups could benefit from being able to run TensorFlow on multiple machines. •TensorFlow is based on a branch of AI called “Deep Learning”, which draws inspiration from the way that human brain cells communicate with each other. •“Deep Learning” has become central to the machine learning efforts of other tech giants such as Facebook, Microsoft, and Yahoo, all of which are busy releasing their own AI projects into the wild.

TOP 5 ADVANTAGES of TENSORFLOW 1.Flexibility: You need to express your computation as a data flow graph to use TensorFlow. It is a highly flexible system which provides multiple models or multiple versions of the same model, and it can be served simultaneously. The architecture of TensorFlow is highly modular, which means you can use some parts individually or can use all the parts together. Such flexibility facilitates non-automatic migration to new models/versions, and A/B types of testing with experimental models. Lastly, allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. 2.Portability: TensorFlow has made it possible to play around an idea on your laptop without having any other hardware support. It runs on GPUs, CPUs, desktops, servers, and mobile computing platforms. You can a lso deploy a trained model on your mobile, as a part of your product, and that’s how it serves as a true portability feature.

TOP 5 ADVANTAGES of TENSORFLOW (Con’t) 3.Research and Production: It can be used to train and serve models in live mode to real customers. Stated plainly, rewriting codes is not required and the industrial researchers can apply their ideas to products a lot faster. Also, academic researchers can share codes directly with greater reproducibility. In this manner, it helps to carry out research and production processes faster. 4.Auto Differentiation: It has automatic differentiation capabilities which benefits gradient based machine learning algorithms. You can define the computational architecture of your predictive model, combine it with your objective function and add data to it, and TensorFlow manages derivatives computing processes automatically. You can compute the derivatives of some values with respect to some other values results in graph extension and you can see exactly what’s happening.

TOP 5 ADVANTAGES of TENSORFLOW (Con’t) 5.Performance: TensorFlow allows you to make the most of your available hardware with its advanced support for threads, asynchronous computation, and queues.

OTHER FRAMEWORKS Other frameworks that compete, or are compatible to TensorFlow are ‘some’ of the following:: fchollet/keras: Kerras Lasagne Blocks Pylearn2 Theano Caffe

Criticism Doesn’t solve a specific use case? Code isn’t any easier to read than other competing solutions Scalability Performance [1] Only partially open source - hardware, parts of the AI software closed [2] Lack of Symbolic loops ("scan" in Theano) [3] [1] M. Mayo. (2016, 11-11-2016). TensorFlow Disappoints – Google Deep Learning falls shallow. Available: http://www.kdnuggets.com/2015/11/google-tensorflow- deep-learning-disappoints.html/2 [2] (2016, 11-11-2016). TensorFlow. Available: https://www.slant.co/options/14689/~tensorflow-review [3] A. Hibble. (2016, 11-11-2016). What is unique about Tensorflow from the other existing Deep Learning Libraries? Available: https://www.quora.com/What-is- unique-about-Tensorflow-from-the-other-existing-Deep-Learning-Libraries

Criticism May accelerate AI systems that are hard to understand and/or will have difficulties in communication Attention may be focused on experimenting with mathematical trick rather than on understanding human thought processes [2] [4] E. T. Mueller. (2015, 11-11-2016). Google’s TensorFlow Alone Will Not Revolutionize AI. Available: https://www.wired.com/2015/11/tensorflow-alone-will-not- revolutionize-ai/

HOW DOES IT WORK?

DEMO Fastest way to get started with Tensoflow: Installation on Windows 10 Pro using Docker. Tensorflow tutorial using the MNIST dataset: https://www.tensorflow.org/versions/r0.9/tutorials/mnist/beginners/index.html Tensorboard to display graphical layout of machine learning network, and graph progress during learning. Deploy trained model on any device (not part of this demo).

Installation Install Docker for Windows from here (Requires Windows 10 Pro): https://docs.docker.com/docker-for-windows/ Open a command prompt and run: docker run -it -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow DEMO Forward ports 8888 for Jupyter environment, and 6006 for Tensorboard (next slides). Tensorflow running inside a docker container on Windows will not be able to use GPU to accelerate calculations. While Google have announced that a Windows version with GPU support is coming, currently the only way to use GPU acceleration is to run Tensorflow natively on Linux, or inside an NVidia Docker container on native Linux. However, GPU support is not required for simple demo using MNIST.

DEMO Jupyter Environment Open browser and navigate to jupyter at: http://localhost:8888/ Select New | Notebooks: Python 2, as indicated below, to open a python environment. DEMO

In the python 2 notebook, paste the following 2 lines, and press the run button: from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True) This will download the MNIST dataset into the docker instance. An asterisk will appear on the left while program is running. DEMO

Verify that the MNIST dataset has been downloaded in the main Jupyter screen. These steps must be repeated each time the docker instance is restarted, as nothing inside the docker is persistent. There are ways to map external, persistent, drives inside docker, but this is out of scope for this demo. DEMO

Tensorboard Tensorboard is used to visualize what is going on inside a deep learning network. Open a terminal in jupyter and type: tensorboard --logdir data DEMO

DEMO To get something to show in Tensorboard we must create a machine learning network and run it. I will use this code (modified version from the MNIST tutorial): # from tutorial from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) import tensorflow as tf x = tf.placeholder(tf.float32, [None, 784], "x") W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) y_ = tf.placeholder(tf.float32, [None, 10], "y_") cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) # Tensor board graph (was not in tutorial) writer = tf.train.SummaryWriter("log", sess.graph) correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) training_summary = tf.scalar_summary("training_accuracy", accuracy) validation_summary = tf.scalar_summary("validation_accuracy", accuracy) for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) if i % 20 == 0: # Tensor board graph (was not in tutorial) train_acc, train_summ = sess.run( [accuracy, training_summary], feed_dict={x : mnist.train.images, y_ : mnist.train.labels}) writer.add_summary(train_summ, i) valid_acc, valid_summ = sess.run( [accuracy, validation_summary], feed_dict={x : mnist.validation.images, y_ : mnist.validation.labels}) writer.add_summary(valid_summ, i)

Navigate to tensorboard at: http://localhost:6006/ DEMO

Navigate to tensorboard at: http://localhost:6006/ DEMO

Things you can do with Tensorflow https://aiexperiments.withgoogle.com/

QUESTIONS?

Competitors Torch Caffe Theano (Keras, Lasagne) Mxnet

References https://arxiv.org/abs/1603.04467 TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems https://lazyprogrammer.me/tag/tensorflow/ https://arxiv.org/abs/1603.04467 https://www.tensorflow.org/ https://www.wired.com/2016/04/google-supercharging-tensorflow-open-source-ai/ http://www.softwebsolutions.com/resources/tensorflow-googles-artificial-intelligence-system.html