AI, Machine Learning and Deep Learning Sujit Pal, Abhishek Sharma
Outline • Artificial Intelligence • AI vs ML vs DL • Machine Learning o Example – Character recognition o Another Example o General Flow o Need for Deep Learning • Deep Learning • Learn more ? • References Footer Text 2
Artificial Intelligence • “ [The automation of] activities that we associate with human thinking, activities such as decision-making, problem solving, learning ..."(Bellman, 1978) • "A field of study that seeks to explain and emulate intelligent behavior in terms of computational processes" (Schalkoff, 1 990) • “The capability of a machine to immitate intellignet human behavior”. (merriam-webster) Footer Text 3
Artificial Intelligence • Examples: o Movie/ Songs recommendation o Fraud Detection – credit card purchases o Smart home devices o Facebook – tagging friends o Video Games o Virtual Personal Assistants: Siri, Cortana Footer Text 4
AI vs Machine Learning vs Deep Learning 0 20 40 60 80 100 120 8/20/11 8/20/12 8/20/13 8/20/14 8/20/15 Artificial intelligence: (Worldwide) Machine LEarning: (Worldwide) deep learning: (Worldwide) Google trends Footer Text 5
AI vs Machine Learning vs Deep Learning Artificial Intelligence Machine Learning Deep Learning Footer Text 6
Machine Learning • Algorithms that do the learning without human intervention. • Learning is done based on examples (aka dataset). • Goal: o learning function f: x  y to make correct prediction for new input data • Choose function family (logistic regression, support vector machines) • Optimize parameters on training data: Minimize Loss ∑(f(x) - y)² Footer Text 7
Character Recognition o Dataset: notMNIST • collection of extracted glyphs from publicly available fonts notMNIST dataset: http://yaroslavvb.blogspot.com/2011/09/notmnist-dataset.html Footer Text 8
Character Recognition function = LogisticRegression() features_testset = test_dataset.reshape(test_dataset.shape[0], 28 * 28) labels_testset = test_labels feature_trainingset = train_dataset[:sample_size].reshape(sample_size, 28*28) labels_traininigset = train_labels[:sample_size] function.fit(feature_trainingset, labels_traininigset) function.score(features_testset, labels_testset) Accuracy: 0.856199 prepare model; learn weights prediction/ inference evaluation *Library: Scikit-learn Footer Text 9
Behind the scenes: • Training phase: o Feature Extraction o Data Normalization Extract features; normalize data 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 Footer Text 10
Behind the scenes: is actually 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 Saved as pickle (python; serializes objects); plotted used pyplot Footer Text 11
Behind the scenes: • Training phase: o Model • Learn weights/ parameters based on training data o Goal: Minimize loss • Function: Logistic Regression (aka logit) o y = wTx + b • w: weights ; x: features ; b: bias terms used for regularization • y: predicted value • Minimize: gradient descent approach/ stochastic gradient descent o Iterative process Footer Text 12
Gradient Descent Picture: en.wikipedia.org/Creative Commons • Assume locally convex Loss function. • Initialize weight vector W with random values. • Compute L(w) • Randomly change one (or some, or all values of W) • Compute new L(w) and difference. • Update W with the difference multiplied by learning rateη. • Repeat until W converges or Footer Text 13
Behind the scenes: • Inference phase: o Run the model against test data o predicting how the model performs on new input data (data which it did not encounter during training phase) o Accuracy: 0.856199 Footer Text 14
Another example • Classify email as spam or not o https://github.com/abhi21/Spam-Classifier-NB Footer Text 15
General ML approach o Training Phase: Training data Feature Extraction Model ML Algorithm Footer Text 16
General ML approach o Testing Phase: Test data Model (learnt during training phase) predictions Footer Text 17
Need for Deep Learning • Pros • Automatic Feature Selection. • Ability to re-use basic building blocks to compose models tailored to different applications. • Cons • Tendency to over fit. • Requires lots of data. Footer Text 18
Motivating Example • Typical Classification Problem – given n training examples each with m features, we need to find a mapping F that produces the “best” predictions ŷ. • “Best” == minimize difference between ŷ and label y. • Loss function quantifies notion of “best”. Footer Text 19
Loss Function • Visualization of Loss function for a system with 2 features. • Convex functions can be solved analytically. • Real life functions rarely convex. • Gradient Descent is a numerical optimization method to find optimal points in the space. • Guaranteed to find the global optima for convex functions. • Guaranteed to find local optima for non-convex functions. • Local optima usually “good enough” for high dimensional space. Pictures: en.wikipedia.org/Creative CommonsFooter Text 20
Linear Model • Matrix Formulation: where: • y is a (n, 1) vector of predicted values. • X is the (n, m) input matrix • W is the (m, 1) weight vector – corresponds to the final coefficients of the model. • b is a constant – corresponds to the intercept of the model. Footer Text 21
Perceptron • The Perceptron is an early Neural Network model. • Each Perceptron takes multiple inputs and outputs a binary value (0 or 1). • Uses step function to compute binary output. • Network of Connected Perceptrons make up model. Picture: commons.wikimedia.org/Creative Commons Footer Text 22
Sigmoid Neurons • Similar to Perceptron neurons, but can output a continuous value between 0 and 1. • Output is differentiable, so back-propagation is possible. • Called Activation Function in the literature. • Other Activation Functions in use now as well. Footer Text 23
Popular Toolkits • Comprehensive List in the PyImageSearch blog My Top 9 Favorite Python Deep Learning Libraries from Adrian Rosenbrock. • I use the following. o Caffe – written in C++, network architectures defined using JSON, has Python interface for training and running networks. Very mature and has many prebuilt models. o Keras – Python wrapper that exposes very minimal and easy to use interface. Useful if you are composing your architectures from existing models. o Tensorflow – written in C++ but Python API gives you full control over the network. Useful if you are building new architectures (or those not available already) Footer Text 24
Handling Non Linear Data • Demo - universality of Deep Learning techniques. • Build and run progressively more complex networks to handle datasets like these. Footer Text 25
Building Blocks • Fully Connected Networks o First network model to become popular in Deep Learning. o Has been applied to classification, generating embeddings for natural language vocabularies, etc. • Convolutional Neural Networks o Exploits the geometry of the input. o Applied to computer vision (image and video), classification and natural language processing. • Recurrent Neural Networks o Exploits the temporal nature of the input. o Applied to classification, audio and speech applications, natural language processing, machine translation, image captioning, etc. Footer Text 26
Fully Connected Networks • Inspired by biology – axons. • Every node in a layer is connected to every node in the layer following it. • Input to a layer is output of previous layer. • Weight vector shared within each layer. • Gradient of loss propagate backward to update weights in each layer. Picture: commons.wikimedia.org/Creative Commons Footer Text 27
FCN (cont’d) • Demo – MNIST digit recognition. Classify handwritten digits into 10 classes. Footer Text 28
Convolutional Neural Networks • Inspired by biology – visual cortex. • Input is broken up into multiple small regions and processed by individual small networks. • Alternating sequence of convolution and pooling. • Convolution filter weights shared across image. Picture: en.wikipedia.org/Creative Commons Footer Text 29
CNN (cont’d) • Convolution • Pooling – max pooling over (2, 2) regions • Alternate layers of convolution and pooling result in production of “higher order features”. • FCN Layers classify higher order features into scores and classes with Softmax. Footer Text 30
CNN (cont’d) • Demo – classify MNIST digits, but this time using CNN to exploit the geometry of the input data. Footer Text 31
Recurrent Neural Network • Biological inspiration: memory. • Input at time step is combined with input from all previous time steps. • Weights shared between all networks in chain. Footer Text 32
RNN (cont’d) • RNN have vanishing gradient problem because of inputs from many time steps back. • LSTM (Long Short Term Memory) – designed to fix the vanishing gradient problem, but performance intensive. • GRU (Gated Recurrent Unit) – simplifies LSTM, results in better performance. • Good discussion on RNNs can be found here: o Understanding LSTM Networks by Christopher Olah o Recurrent Neural Network Tutorial, Parts 1-4 on the WildML blog. Footer Text 33
RNN (cont’d) • Demo #1 – generative language model (example of many to many type 1). • Demo #2 – machine translation example (example of many to many type 2). • Demo #3 – sentiment classification (example of many to one architecture). Footer Text 34
Conclusion Artificial Intelligence Machine Learning Deep Learning Footer Text 35
Learn More! Note: many concepts were not covered! • Machine Learning (Tom M. Mitchell) • Pattern Recognition and Machine Learning (Christopher Bishop) • MOOCs: o Machine Learning – covers almost all the important concepts in Machine Learning o Deep Learning on Udacity – good coverage of the basics of Deep Learning and Tensorflow. o CS224d on Stanford – Deep Learning for Natural Language Processing, taught by Richard Socher. o CS231n on Stanford – Convolutional Neural Networks for Visual Recognition. • Deep Learning Enthusiasts meetup group Footer Text 36
References • Google Trends • notMNIST Dataset: http://yaroslavvb.blogspot.com/2011/09/notmnist-dataset.html • http://www.cs.princeton.edu/courses/archive/spr08/cos511/scribe_no tes/0204.pdf • https://classroom.udacity.com/courses/ud730/ Footer Text 37

Artificial Intelligence, Machine Learning and Deep Learning

  • 1.
    AI, Machine Learningand Deep Learning Sujit Pal, Abhishek Sharma
  • 2.
    Outline • Artificial Intelligence •AI vs ML vs DL • Machine Learning o Example – Character recognition o Another Example o General Flow o Need for Deep Learning • Deep Learning • Learn more ? • References Footer Text 2
  • 3.
    Artificial Intelligence • “[The automation of] activities that we associate with human thinking, activities such as decision-making, problem solving, learning ..."(Bellman, 1978) • "A field of study that seeks to explain and emulate intelligent behavior in terms of computational processes" (Schalkoff, 1 990) • “The capability of a machine to immitate intellignet human behavior”. (merriam-webster) Footer Text 3
  • 4.
    Artificial Intelligence • Examples: oMovie/ Songs recommendation o Fraud Detection – credit card purchases o Smart home devices o Facebook – tagging friends o Video Games o Virtual Personal Assistants: Siri, Cortana Footer Text 4
  • 5.
    AI vs MachineLearning vs Deep Learning 0 20 40 60 80 100 120 8/20/11 8/20/12 8/20/13 8/20/14 8/20/15 Artificial intelligence: (Worldwide) Machine LEarning: (Worldwide) deep learning: (Worldwide) Google trends Footer Text 5
  • 6.
    AI vs MachineLearning vs Deep Learning Artificial Intelligence Machine Learning Deep Learning Footer Text 6
  • 7.
    Machine Learning • Algorithmsthat do the learning without human intervention. • Learning is done based on examples (aka dataset). • Goal: o learning function f: x  y to make correct prediction for new input data • Choose function family (logistic regression, support vector machines) • Optimize parameters on training data: Minimize Loss ∑(f(x) - y)² Footer Text 7
  • 8.
    Character Recognition o Dataset:notMNIST • collection of extracted glyphs from publicly available fonts notMNIST dataset: http://yaroslavvb.blogspot.com/2011/09/notmnist-dataset.html Footer Text 8
  • 9.
    Character Recognition function =LogisticRegression() features_testset = test_dataset.reshape(test_dataset.shape[0], 28 * 28) labels_testset = test_labels feature_trainingset = train_dataset[:sample_size].reshape(sample_size, 28*28) labels_traininigset = train_labels[:sample_size] function.fit(feature_trainingset, labels_traininigset) function.score(features_testset, labels_testset) Accuracy: 0.856199 prepare model; learn weights prediction/ inference evaluation *Library: Scikit-learn Footer Text 9
  • 10.
    Behind the scenes: •Training phase: o Feature Extraction o Data Normalization Extract features; normalize data 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 Footer Text 10
  • 11.
    Behind the scenes: isactually 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 Saved as pickle (python; serializes objects); plotted used pyplot Footer Text 11
  • 12.
    Behind the scenes: •Training phase: o Model • Learn weights/ parameters based on training data o Goal: Minimize loss • Function: Logistic Regression (aka logit) o y = wTx + b • w: weights ; x: features ; b: bias terms used for regularization • y: predicted value • Minimize: gradient descent approach/ stochastic gradient descent o Iterative process Footer Text 12
  • 13.
    Gradient Descent Picture: en.wikipedia.org/CreativeCommons • Assume locally convex Loss function. • Initialize weight vector W with random values. • Compute L(w) • Randomly change one (or some, or all values of W) • Compute new L(w) and difference. • Update W with the difference multiplied by learning rateη. • Repeat until W converges or Footer Text 13
  • 14.
    Behind the scenes: •Inference phase: o Run the model against test data o predicting how the model performs on new input data (data which it did not encounter during training phase) o Accuracy: 0.856199 Footer Text 14
  • 15.
    Another example • Classifyemail as spam or not o https://github.com/abhi21/Spam-Classifier-NB Footer Text 15
  • 16.
    General ML approach oTraining Phase: Training data Feature Extraction Model ML Algorithm Footer Text 16
  • 17.
    General ML approach oTesting Phase: Test data Model (learnt during training phase) predictions Footer Text 17
  • 18.
    Need for DeepLearning • Pros • Automatic Feature Selection. • Ability to re-use basic building blocks to compose models tailored to different applications. • Cons • Tendency to over fit. • Requires lots of data. Footer Text 18
  • 19.
    Motivating Example • TypicalClassification Problem – given n training examples each with m features, we need to find a mapping F that produces the “best” predictions ŷ. • “Best” == minimize difference between ŷ and label y. • Loss function quantifies notion of “best”. Footer Text 19
  • 20.
    Loss Function • Visualizationof Loss function for a system with 2 features. • Convex functions can be solved analytically. • Real life functions rarely convex. • Gradient Descent is a numerical optimization method to find optimal points in the space. • Guaranteed to find the global optima for convex functions. • Guaranteed to find local optima for non-convex functions. • Local optima usually “good enough” for high dimensional space. Pictures: en.wikipedia.org/Creative CommonsFooter Text 20
  • 21.
    Linear Model • MatrixFormulation: where: • y is a (n, 1) vector of predicted values. • X is the (n, m) input matrix • W is the (m, 1) weight vector – corresponds to the final coefficients of the model. • b is a constant – corresponds to the intercept of the model. Footer Text 21
  • 22.
    Perceptron • The Perceptronis an early Neural Network model. • Each Perceptron takes multiple inputs and outputs a binary value (0 or 1). • Uses step function to compute binary output. • Network of Connected Perceptrons make up model. Picture: commons.wikimedia.org/Creative Commons Footer Text 22
  • 23.
    Sigmoid Neurons • Similarto Perceptron neurons, but can output a continuous value between 0 and 1. • Output is differentiable, so back-propagation is possible. • Called Activation Function in the literature. • Other Activation Functions in use now as well. Footer Text 23
  • 24.
    Popular Toolkits • ComprehensiveList in the PyImageSearch blog My Top 9 Favorite Python Deep Learning Libraries from Adrian Rosenbrock. • I use the following. o Caffe – written in C++, network architectures defined using JSON, has Python interface for training and running networks. Very mature and has many prebuilt models. o Keras – Python wrapper that exposes very minimal and easy to use interface. Useful if you are composing your architectures from existing models. o Tensorflow – written in C++ but Python API gives you full control over the network. Useful if you are building new architectures (or those not available already) Footer Text 24
  • 25.
    Handling Non LinearData • Demo - universality of Deep Learning techniques. • Build and run progressively more complex networks to handle datasets like these. Footer Text 25
  • 26.
    Building Blocks • FullyConnected Networks o First network model to become popular in Deep Learning. o Has been applied to classification, generating embeddings for natural language vocabularies, etc. • Convolutional Neural Networks o Exploits the geometry of the input. o Applied to computer vision (image and video), classification and natural language processing. • Recurrent Neural Networks o Exploits the temporal nature of the input. o Applied to classification, audio and speech applications, natural language processing, machine translation, image captioning, etc. Footer Text 26
  • 27.
    Fully Connected Networks •Inspired by biology – axons. • Every node in a layer is connected to every node in the layer following it. • Input to a layer is output of previous layer. • Weight vector shared within each layer. • Gradient of loss propagate backward to update weights in each layer. Picture: commons.wikimedia.org/Creative Commons Footer Text 27
  • 28.
    FCN (cont’d) • Demo– MNIST digit recognition. Classify handwritten digits into 10 classes. Footer Text 28
  • 29.
    Convolutional Neural Networks •Inspired by biology – visual cortex. • Input is broken up into multiple small regions and processed by individual small networks. • Alternating sequence of convolution and pooling. • Convolution filter weights shared across image. Picture: en.wikipedia.org/Creative Commons Footer Text 29
  • 30.
    CNN (cont’d) • Convolution •Pooling – max pooling over (2, 2) regions • Alternate layers of convolution and pooling result in production of “higher order features”. • FCN Layers classify higher order features into scores and classes with Softmax. Footer Text 30
  • 31.
    CNN (cont’d) • Demo– classify MNIST digits, but this time using CNN to exploit the geometry of the input data. Footer Text 31
  • 32.
    Recurrent Neural Network •Biological inspiration: memory. • Input at time step is combined with input from all previous time steps. • Weights shared between all networks in chain. Footer Text 32
  • 33.
    RNN (cont’d) • RNNhave vanishing gradient problem because of inputs from many time steps back. • LSTM (Long Short Term Memory) – designed to fix the vanishing gradient problem, but performance intensive. • GRU (Gated Recurrent Unit) – simplifies LSTM, results in better performance. • Good discussion on RNNs can be found here: o Understanding LSTM Networks by Christopher Olah o Recurrent Neural Network Tutorial, Parts 1-4 on the WildML blog. Footer Text 33
  • 34.
    RNN (cont’d) • Demo#1 – generative language model (example of many to many type 1). • Demo #2 – machine translation example (example of many to many type 2). • Demo #3 – sentiment classification (example of many to one architecture). Footer Text 34
  • 35.
  • 36.
    Learn More! Note: manyconcepts were not covered! • Machine Learning (Tom M. Mitchell) • Pattern Recognition and Machine Learning (Christopher Bishop) • MOOCs: o Machine Learning – covers almost all the important concepts in Machine Learning o Deep Learning on Udacity – good coverage of the basics of Deep Learning and Tensorflow. o CS224d on Stanford – Deep Learning for Natural Language Processing, taught by Richard Socher. o CS231n on Stanford – Convolutional Neural Networks for Visual Recognition. • Deep Learning Enthusiasts meetup group Footer Text 36
  • 37.
    References • Google Trends •notMNIST Dataset: http://yaroslavvb.blogspot.com/2011/09/notmnist-dataset.html • http://www.cs.princeton.edu/courses/archive/spr08/cos511/scribe_no tes/0204.pdf • https://classroom.udacity.com/courses/ud730/ Footer Text 37