Deep Dive on Deep Learning

Deep Dive on Deep Learning

Deep Dive on Deep Learning Julien Simon Principal Technical Evangelist, AI and Machine Learning @julsimon © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agenda • Deep Learning concepts • Common architectures and use cases • Apache MXNet • Infrastructure for Deep Learning • Demos along the way: MXNet, Gluon, Keras, TensorFlow, PyTorch ☺ Deep Learning concepts The neuron Activation functions l ෍ xi ∗ wi = u i=1 Source: Wikipedia ”Multiply and Accumulate” I features Neural networks x11, x12, …. x1I x x …. x x = 21, 22, 2I … … … m samples xm1, xm2, …. xmI 2 0,0,1,0,0,…,0 y = 0 1,0,0,0,0,…,0 … … m labels, N2 categories 4 0,0,0,0,1,…,0 One-hot encoding I features Neural networks x11, x12, …. x1I x x …. x x = 21, 22, 2I … … … m samples xm1, xm2, …. xmI 2 0,0,1,0,0,…,0 y = 0 1,0,0,0,0,…,0 … … m labels, N2 categories 4 0,0,0,0,1,…,0 One-hot encoding Number of correct predictions Accuracy = Total number of predictions Neural networks Initially, the network will not predict correctly f(X1) = Y’1 A loss function measures the difference between the real label Y1 and the predicted label Y’1 error = loss(Y1, Y’1) For a batch of samples: 푏푎푡푐ℎ 푠푧푒 ෍ loss(Yi, Y’i) = batch error =1 The purpose of the training process is to minimize error by gradually adjusting weights. Training Trained neural network Training data set BackpropagationTraining Batch size Learning rate Hyper parameters Number of epochs Stochastic Gradient Descent z=f(x,y) Imagine you stand on top of a mountain with skis strapped to your feet. You want to get down to the valley as quickly as possible, but there is fog and you can only see your immediate surroundings. How can you get down the mountain as quickly as possible? You look around and identify the steepest path down, go down that path for a bit, again look around and find the new steepest path, go down that path, and repeat—this is exactly what gradient descent does. The « step size » depends on Tim Dettmers the learning rate University of Lugano 2015 https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-history-training/ Local minima and saddle points « Do neural networks enter and escape a series of local minima? Do they move at varying speed as they approach and then pass a variety of saddle points? Answering these questions definitively is difficult, but we present evidence strongly suggesting that the answer to all of these questions is no. » « Qualitatively characterizing neural network optimization problems », Goodfellow et al, 2015 https://arxiv.org/abs/1412.6544 Optimizers SGD works remarkably well and is still widely used. Adaptative optimizers use a variable learning rate. Some even use a learning rate per dimension (Adam). https://medium.com/@julsimon/tumbling-down-the-sgd-rabbit-hole-part-1-740fa402f0d7 Validation Validation accuracy Prediction at Neural network Validation data set the end of each in training (also called dev set) epoch This data set must have the same distribution as real-life samples, or else validation accuracy won’t reflect real-life accuracy. Test Test accuracy Prediction at the Fully trained Test data set end of neural network experimentation This data set must have the same distribution as real-life samples, or else test accuracy won’t reflect real-life accuracy. « Deep Learning ultimately is about finding a minimum Early stopping that generalizes well, with bonus points for finding one fast and reliably », Sebastian Ruder Accuracy Loss 100% Training accuracy Validation accuracy OVERFITTING Loss function Epochs Best epoch Common architectures and use cases Convolutional Neural Networks (CNN) Le Cun, 1998: handwritten digit recognition, 32x32 pixels https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/ Extracting features with convolution Source: http://timdettmers.com Convolution extracts features automatically. Kernel parameters are learned during the training process. Downsampling images with pooling Source: Stanford University Pooling shrinks images while preserving significant information. MXNet Object Detection https://github.com/precedenceguo/mx-rcnn https://github.com/zhreshold/mxnet-yolo MXNet Object Segmentation https://github.com/TuSimple/mx-maskrcnn MXNet Text Detection and Recognition https://github.com/Bartzi/stn-ocr MXNet Face Detection MXNet Face Recognition LFW 99.80%+ Megaface 98%+ with a single model https://github.com/tornadomeet/mxnet-face https://github.com/deepinsight/insightface https://arxiv.org/abs/1801.07698 MXNet Real-Time Pose Estimation https://github.com/dragonfly90/mxnet_Realtime_Multi-Person_Pose_Estimation Long Short Term Memory Networks (LSTM) • A LSTM neuron computes the output based on the input and a previous state • LSTM networks have memory • They’re great at predicting sequences, e.g. machine translation MXNet Machine Translation https://github.com/awslabs/sockeye GAN: Welcome to the (un)real world, Neo PyTorch TF Generating new ”celebrity” faces From semantic map to 2048x1024 picture https://github.com/tkarras/progressive_growing_of_gans https://tcwang0509.github.io/pix2pixHD/ Wait! There’s more! Models can also generate text from text, text from images, text from video, images from text, sound from video, 3D models from 2D images, etc. Apache MXNet Apache MXNet: Open Source library for Deep Learning Programmable Portable High Performance Simple syntax, Highly efficient Near linear scaling multiple languages models for mobile across hundreds of GPUs and IoT Most Open Best On AWS Accepted into the Optimized for Apache Incubator Deep Learning on AWS Anat omy of a Deep Lear ning Model mx. model . FeedFor war d model . f i t Input Output mx. sym. Sof t maxOut put Input Weights 1 0.2 3 -0.1 2 mx. sym. Act i vat i on( dat a, act _t ype=" xxxx" ) ... ... 4 0.7 Image Image Segmentation mx. sym. Ful l yConnect ed( dat a, num_hi dden=128) " si gmoi d" 1 1 1 1 0 1 3 Face Search 0 0 0 " t anh" Video mx. sym. Convol ut i on( dat a, ker nel =( 5, 5) , num_f i l t er =20) " r el u" 4 2 4 2 Neural Art Max = 4 Avg = 2 Speech 2 0 2 0 “ People Riding mx. sym. Pool i ng( dat a, pool _t ype=" max" , ker nel =( 2, 2) , " sof t r el u" Bikes” Image Caption st r i de=( 2, 2) Bicycle, People, Events Road, Sport Image Labels “ People Riding l st m. l st m_unr ol l ( num_l st m_l ayer , seq_l en, l en, num_hi dden, num_embed) “ Οι άνθρωποι Bikes” ιππασίας ποδήλατα” Text 0.2 Machine Translation Queen -0.1 ... cos(w, queen ) = cos(w, k i n g) - cos(w, m an ) + cos(w, w om an ) 0.7 mx. symbol . Embeddi ng( dat a, i nput _di m, out put _di m = k) Declarative Programming ‘define then run’ PROS A = Variable('A') • More chances for optimization B = Variable('B') A B C = B * A • Language independent x 1 D = C + 1 • E.g. TensorFlow, Theano, Caffe, f = compile(D) + MXNet Symbol API d = f(A=np.ones(10), B=np.ones(10)*2) CONS • Less flexible C can share memory with D because C is deleted later • ’Black box’ training DEMO: Symbol API 1 – Fully Connected Neural Network (MNIST) 2 – Convolution Neural Network (MNIST) Imperative Programming ‘define by run’ PROS • Straightforward and flexible. import numpy as np • Take advantage of language native a = np.ones(10) features (loop, condition, b = np.ones(10) * 2 debugger). c = b * a d = c + 1 • E.g. Numpy, PyTorch, MXNet Gluon API CONS • Harder to optimize DEMO: Gluon API Fully Connected Network (MNIST) Gluon CV: classification, detection, segmentation [electric_guitar], with probability 0.671 https://github.com/dmlc/gluon-cv DEMO: Gluon CV https://github.com/awslabs/mxnet-model-server/ https://aws.amazon.com/blogs/ai/announcing-onnx-support-for-apache-mxnet/ Keras-MXNet https://github.com/awslabs/keras-apache-mxnet DEMO: Keras-MXNet Convolutional Neural Network (MNIST) Infrastructure for Deep Learning Amazon EC2 C5 instances C5: Next Generation C4 C5 C o m p u t e - O p t i m i ze d Instances with Intel® Xeon® Scalable Processor 36 vCPUs 72 vCPUs 2X vCPUs AWS Compute optimized instances support the new Intel® AVX - 512 AVX 512 advanced instruction set, enabling “Haswell” “Skylake” you to more efficiently run vector 2X performance processing workloads with single and double floating point precision, such as AI/machine 4 Gbps to EBS 12 Gbps to EBS learning or video processing. 3X throughput 60 GiB memory 144 GiB memory 25% improvement in 2.4X memory price/performance over C4 Faster TensorFlow training on C5 https://aws.amazon.com/blogs/machine-learning/faster-training-with-optimized-tensorflow-1-6-on- amazon-ec2-c5-and-p3-instances/ Amazon EC2 P3 Instances The fastest, most powerful GPU instances in the cloud • P3.2xlarge, P3.8xlarge, P3.16xlarge • Up to eight NVIDIA Tesla V100 GPUs in a single instance • 40,960 CUDA cores, 5120 Tensor cores • 128GB of GPU memory • 1 PetaFLOPs of computational performance – 14x better than P2 • 300 GB/s GPU-to-GPU communication (NVLink) – 9x better than P2 AWS Deep Learning AMI Preconfigured environments to quickly build Deep Learning applications Conda AMI Base AMI AMI with source code For developers who want pre- For developers who want a clean For developers who want preinstalled installed pip packages of DL slate to set up private DL engine DL frameworks and their source code frameworks in separate virtual repositories or custom builds of DL in a shared Python environment. environments. engines. https://aws.amazon.com/machine-learning/amis/ Amazon SageMaker ALGORITHMS K-Means Clustering XGBoost Principal Component Analysis Latent Dirichlet Allocation Neural Topic Modelling Image Classification Factorization Machines Seq2Seq, Linear Learner

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    52 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us