Session 1: Gesture Recognition & Machine Learning...

158
Session 1: Gesture Recognition & Machine Learning Fundamentals Nicholas Gillian Responsive Environments, MIT Media Lab IAP Gesture Recognition Workshop Tuesday 8th January, 2013 Tuesday, January 8, 13

Transcript of Session 1: Gesture Recognition & Machine Learning...

Page 1: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Session 1: Gesture Recognition & Machine

Learning Fundamentals

Nicholas GillianResponsive Environments, MIT Media Lab

IAP Gesture Recognition Workshop

Tuesday 8th January, 2013

Tuesday, January 8, 13

Page 2: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

My Research

Tuesday, January 8, 13

Page 3: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

• Gesture Recognition for Musician Computer Interaction

My Research

Tuesday, January 8, 13

Page 4: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

My Research

• Rapid Learning

• Gesture Recognition for Musician Computer Interaction

Tuesday, January 8, 13

Page 5: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

My Research

• Rapid Learning

• Free-air Gestures & Fine-grain Control

• Gesture Recognition for Musician Computer Interaction

Tuesday, January 8, 13

Page 6: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

My Research

• Rapid Learning

• Free-air Gestures & Fine-grain Control

• Creating tools and software that enable a more diverse group of individuals to integrate gesture-recognition into their own interfaces, art installations, and musical instruments

• Gesture Recognition for Musician Computer Interaction

Tuesday, January 8, 13

Page 7: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

My Research

• Rapid Learning

• Free-air Gestures & Fine-grain Control

• Creating tools and software that enable a more diverse group of individuals to integrate gesture-recognition into their own interfaces, art installations, and musical instruments

• Gesture Recognition for Musician Computer Interaction

EyesWeb Gesture Recognition Toolkit

Tuesday, January 8, 13

Page 8: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Schedule

• Machine Learning 101

• Hello World

• Installation & Setup

• Introduction to the Gesture Recognition Toolkit

• Lunch

• Gesture Recognition

• Hands-on Coding Sessions

Tuesday, January 8, 13

Page 9: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Basic Pattern Recognition Problem

Tuesday, January 8, 13

Page 10: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Basic Pattern Recognition Problem

Tuesday, January 8, 13

Page 11: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Basic Pattern Recognition Problem

Might work for simple cases...

Tuesday, January 8, 13

Page 12: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Basic Pattern Recognition Problem

Can be more difficult with multidimensional data!

Tuesday, January 8, 13

Page 13: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Basic Pattern Recognition Problem

Event B

Can be more difficult with multiple events!

Tuesday, January 8, 13

Page 14: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Machine Learning 101

Tuesday, January 8, 13

Page 15: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Dataset

Tuesday, January 8, 13

Page 16: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

ML can automatically infer the underlying behavior/rules of this data

Tuesday, January 8, 13

Page 17: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

These rules can then be used to make predictions about future data

Tuesday, January 8, 13

Page 18: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Tuesday, January 8, 13

Page 19: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Data Collection Learning Prediction

The three main phases of machine learning:

Tuesday, January 8, 13

Page 20: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Machine Learning is commonly used to solve two main problems:

Tuesday, January 8, 13

Page 21: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

Tuesday, January 8, 13

Page 22: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

Tuesday, January 8, 13

Page 23: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

Tuesday, January 8, 13

Page 24: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

Tuesday, January 8, 13

Page 25: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

REGRESSION

Tuesday, January 8, 13

Page 26: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

REGRESSION

Tuesday, January 8, 13

Page 27: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

REGRESSION

Discrete Output, representing the most likely class that the input x belongs to

Tuesday, January 8, 13

Page 28: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

CLASSIFICATION

Machine Learning is commonly used to solve two main problems:

REGRESSION

Discrete Output, representing the most likely class that the input x belongs to

Continuous Output, mapping the N dimensional input vector x to an M dimensional vector y

Tuesday, January 8, 13

Page 29: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Main types of learning:

Tuesday, January 8, 13

Page 30: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

Tuesday, January 8, 13

Page 31: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

Class BClass A

Tuesday, January 8, 13

Page 32: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

UNSUPERVISED LEARNING

Class BClass A

Tuesday, January 8, 13

Page 33: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

UNSUPERVISED LEARNING

Class BClass A

Tuesday, January 8, 13

Page 34: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

UNSUPERVISED LEARNING

Class BClass A

Tuesday, January 8, 13

Page 35: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

UNSUPERVISED LEARNING

many others, such as semi-supervised learning, reinforcement learning, active learning, deep learning, etc..

Class BClass A

Tuesday, January 8, 13

Page 36: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

SUPERVISED LEARNING

Main types of learning:

UNSUPERVISED LEARNING

many others, such as semi-supervised learning, reinforcement learning, active learning, deep learning, etc..

Class BClass A

Tuesday, January 8, 13

Page 37: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Supervised Learning

Tuesday, January 8, 13

Page 38: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Training Data

Tuesday, January 8, 13

Page 39: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Training Data

Tuesday, January 8, 13

Page 40: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Input Vector

Training Data

Tuesday, January 8, 13

Page 41: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Input Vector Target Vector

Training Data

Tuesday, January 8, 13

Page 42: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Input Vector Target Vector

Training Data

Tuesday, January 8, 13

Page 43: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Model

Input Vector Target Vector

Training Data

Tuesday, January 8, 13

Page 44: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Prediction

New Datum

Model

Training Data

Tuesday, January 8, 13

Page 45: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Prediction

New Datum Predicted Class

Class A

Model

Training Data

Tuesday, January 8, 13

Page 46: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Prediction

New Datum Predicted Class

Class A

Model

Training Data

Tuesday, January 8, 13

Page 47: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Prediction

New Datum Predicted Class

Class A

Model

Offline

Training Data

Tuesday, January 8, 13

Page 48: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning

Learning Algorithm

Prediction

New Datum Predicted Class

Class A

Model

Online

Training Data

Tuesday, January 8, 13

Page 49: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Learning Algorithm

Prediction

New Datum Predicted Class

Class A

Model

Training Data

Tuesday, January 8, 13

Page 50: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Tuesday, January 8, 13

Page 51: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessThe Learning Process

Tuesday, January 8, 13

Page 52: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

DECISION BOUNDARY

Tuesday, January 8, 13

Page 53: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

DECISION BOUNDARY

Tuesday, January 8, 13

Page 54: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

DECISION BOUNDARY

Tuesday, January 8, 13

Page 55: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessThere are many

possible decision

boundaries!

How do we choose the best

one?

Tuesday, January 8, 13

Page 56: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Num Correctly Classified Examples

Num Examples

Minimize some error:

Tuesday, January 8, 13

Page 57: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Num Correctly Classified Examples

Num Examples

Minimize some error:

22

32

Error = 0.31

Tuesday, January 8, 13

Page 58: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Num Correctly Classified Examples

Num Examples

Minimize some error:

25

32

Error = 0.22

Tuesday, January 8, 13

Page 59: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Num Correctly Classified Examples

Num Examples

Minimize some error:

28

32

Error = 0.12

Tuesday, January 8, 13

Page 60: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning Process

Stop when this error is small

32

32

Error = 0

Tuesday, January 8, 13

Page 61: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Tuesday, January 8, 13

Page 62: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Complex decision boundary gets a perfect result on the training

data

Tuesday, January 8, 13

Page 63: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Complex decision boundary gets a perfect result on the training

data

But it might fail terribly with new data

Tuesday, January 8, 13

Page 64: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Complex decision boundary gets a perfect result on the training

data

But it might fail terribly with new data

This is know as OVERFITTING

Tuesday, January 8, 13

Page 65: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

A very simple decision boundary might not

work either

Tuesday, January 8, 13

Page 66: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

A very simple decision boundary might not

work either

This is know as UNDERFITTING

Tuesday, January 8, 13

Page 67: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Instead, a less complex decision boundary might work much better, even if it does not perfectly reduce the error on the

training data

Tuesday, January 8, 13

Page 68: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

The Learning ProcessNeed to be careful that we don’t overtrain the model...

Instead, a less complex decision boundary might work much better, even if it does not perfectly reduce the error on the

training data

A model’s ability to correctly predict the

values of unseen data is know as

GENERALIZATION

Tuesday, January 8, 13

Page 69: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Tuesday, January 8, 13

Page 70: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Tuesday, January 8, 13

Page 71: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Instead use a test dataset

Tuesday, January 8, 13

Page 72: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Instead use a test dataset

Dataset

Tuesday, January 8, 13

Page 73: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Instead use a test dataset

Dataset

Random Spilt

Tuesday, January 8, 13

Page 74: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Instead use a test dataset

Dataset

Training Dataset

Random Spilt

Tuesday, January 8, 13

Page 75: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Important not to use the training data to test a model!

Instead use a test dataset

Dataset

Training Dataset

Test Dataset

Random Spilt

Tuesday, January 8, 13

Page 76: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilitySometimes there is not enough data to create a test dataset

Tuesday, January 8, 13

Page 77: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilitySometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Tuesday, January 8, 13

Page 78: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Tuesday, January 8, 13

Page 79: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Random Partition

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Partition Data into K Folds

Tuesday, January 8, 13

Page 80: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Training Dataset

Random Partition

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Fold 1

Tuesday, January 8, 13

Page 81: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Training Dataset

Test Dataset

Random Partition

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Fold 1

Tuesday, January 8, 13

Page 82: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Training Dataset

Test Dataset

Random Partition

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Fold 2

Tuesday, January 8, 13

Page 83: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Dataset

Training Dataset

Test Dataset

Random Partition

Sometimes there is not enough data to create a test dataset

Instead use K-FOLD CROSS VALIDATION

Fold 3

Tuesday, January 8, 13

Page 84: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Num Correctly Classified Examples

Num Test ExamplesClassification Accuracy =

Tuesday, January 8, 13

Page 85: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Num Correctly Classified Examples

Num Test Examples

Num Correctly Classified Examples for Class k

Num Examples Classified as Class k

Classification Accuracy =

Precisionk =

Tuesday, January 8, 13

Page 86: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Num Correctly Classified Examples

Num Test Examples

Num Correctly Classified Examples for Class k

Num Examples Classified as Class k

Num Class k Examples

Num Correctly Classified Examples for Class k

Classification Accuracy =

Precisionk =

Recallk =

Tuesday, January 8, 13

Page 87: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Num Correctly Classified Examples

Num Test Examples

Num Correctly Classified Examples for Class k

Num Examples Classified as Class k

Num Class k Examples

Num Correctly Classified Examples for Class k

Classification Accuracy =

Precisionk =

Recallk =

Precisionk * Recallk

Precisionk + Recallk

F-measurek = 2 *

Tuesday, January 8, 13

Page 88: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Classification Task: Detect the coffee mugs in the image

Tuesday, January 8, 13

Page 89: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

Segmentation algorithm gives us 13 possible candidates

Tuesday, January 8, 13

Page 90: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

The classification algorithm predicts that the following 5 objects are coffee mugs

Tuesday, January 8, 13

Page 91: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

The classification algorithm predicts that the following 5 objects are coffee mugs

Accuracy = ?

Tuesday, January 8, 13

Page 92: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization Ability

10 items were classified correctly, 3 were not

Accuracy = 10/13 = 0.78

Tuesday, January 8, 13

Page 93: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilityAccuracy = 10/13 = 0.78

Precision = ?

Precisionk = Num Correctly Classified Examples as Class k

Num Examples Classified as Class k

Tuesday, January 8, 13

Page 94: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilityAccuracy = 10/13 = 0.78

Precision = 4/5 = 0.8

Precisionk = Num Correctly Classified Examples as Class k

Num Examples Classified as Class k

Tuesday, January 8, 13

Page 95: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilityAccuracy = 10/13 = 0.78

Precision = 4/5 = 0.8

Num Correctly Classified Examples as Class k

Num Class k ExamplesRecallk =

Recall = ?

Tuesday, January 8, 13

Page 96: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilityAccuracy = 10/13 = 0.78

Precision = 4/5 = 0.8

Num Correctly Classified Examples as Class k

Num Class k ExamplesRecallk =

Recall = 4/6 = 0.6

Tuesday, January 8, 13

Page 97: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Testing a Model’s Generalization AbilityAccuracy = 10/13 = 0.78

Precision = 4/5 = 0.8

Num Correctly Classified Examples as Class k

Num Class k ExamplesRecallk =

Recall = 4/6 = 0.6

F-Measure =

2 *0.8 * 0.6

0.8 + 0.6

= 0.69

Tuesday, January 8, 13

Page 98: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

A Simple Classifier Example

Tuesday, January 8, 13

Page 99: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

K-Nearest Neighbor Classifier (KNN)

Tuesday, January 8, 13

Page 100: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Training Data

Training Data:

- M Labelled Training Examples

- Each example is an N-Dimensional Vector

K-Nearest Neighbor Classifier (KNN)

Tuesday, January 8, 13

Page 101: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Learning AlgorithmTraining Data

Training Phase:

- Simply save the labelled training examples

K-Nearest Neighbor Classifier (KNN)

Tuesday, January 8, 13

Page 102: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Learning Algorithm ModelTraining Data

Model:

- Labelled training examples

K-Nearest Neighbor Classifier (KNN)

Tuesday, January 8, 13

Page 103: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Learning Algorithm ModelTraining DataNew Datum Predicted Class

Class ?

Prediction Phase:

- Given a new N-Dimensional Vector, predict which class it

belongs to

K-Nearest Neighbor Classifier (KNN)

Tuesday, January 8, 13

Page 104: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Learning Algorithm ModelTraining DataNew Datum Predicted Class

Class ?

Prediction Phase:

- Given a new N-Dimensional Vector, predict which class it

belongs to

- Find the K Nearest Neighbors in the training examples

- Classify x as the most likely class (i.e. the most common

class in the K Nearest Neighbors)

K-Nearest Neighbor Classifier (KNN)

Likelihood of belonging to Class A = 0.6

Class A: 2 Class B: 1

Tuesday, January 8, 13

Page 105: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Learning Algorithm ModelTraining DataNew Datum Predicted Class

Class ?

Prediction Phase:

- Given a new N-Dimensional Vector, predict which class it

belongs to

- Find the K Nearest Neighbors in the training examples

- Classify x as the most likely class (i.e. the most common

class in the K Nearest Neighbors)

K-Nearest Neighbor Classifier (KNN)

Class A: 4 Class B: 6

Likelihood of belonging to Class B = 0.6Tuesday, January 8, 13

Page 106: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Hello World - KNN Demo

Tuesday, January 8, 13

Page 107: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Tuesday, January 8, 13

Page 108: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Tuesday, January 8, 13

Page 109: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Instead of using the raw data as input to the learning algorithm, we might want to pre-process the data (i.e. scale it, smooth it) and also compute

some features from the data which make the classification task easier for the machine-learning algorithm

Tuesday, January 8, 13

Page 110: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Tuesday, January 8, 13

Page 111: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Tuesday, January 8, 13

Page 112: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Classification Task:

Recognize different postures of a dancer

Tuesday, January 8, 13

Page 113: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Classification Task:

Recognize different postures of a dancer

640 480* = 921600

. . . .Input Vector:

3*Tuesday, January 8, 13

Page 114: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Preprocessing: Background Subtraction

Tuesday, January 8, 13

Page 115: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

640 480* = 307200

. . . .Input Vector:

Preprocessing: Background Subtraction

Tuesday, January 8, 13

Page 116: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Feature Extraction: Bounding Box

Input Vector:

= 2

Tuesday, January 8, 13

Page 117: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Tuesday, January 8, 13

Page 118: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

As well as pre-processing the input to the classification algorithm, we might also want to process the output of the classifier

Tuesday, January 8, 13

Page 119: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Choosing the right features is REALLY IMPORTANT!

Tuesday, January 8, 13

Page 120: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition

Choosing the right features is REALLY IMPORTANT!

Choosing the right ML algorithm is also REALLY IMPORTANT!Tuesday, January 8, 13

Page 121: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Tuesday, January 8, 13

Page 122: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

First you need to categorize your problem:

Tuesday, January 8, 13

Page 123: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Problem Discrete or Continuous

Output?

First you need to categorize your problem:

Tuesday, January 8, 13

Page 124: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Problem Discrete or Continuous

Output?

Continuous

First you need to categorize your problem:

Tuesday, January 8, 13

Page 125: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Problem Discrete or Continuous

Output?

REGRESSION PROBLEMContinuous

First you need to categorize your problem:

Tuesday, January 8, 13

Page 126: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Problem Discrete or Continuous

Output?

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEMContinuous

First you need to categorize your problem:

Tuesday, January 8, 13

Page 127: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Problem Discrete or Continuous

Output?

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

Continuous

First you need to categorize your problem:

Tuesday, January 8, 13

Page 128: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

First you need to categorize your problem:

Problem Discrete or Continuous

Output?

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Continuous

Tuesday, January 8, 13

Page 129: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Tuesday, January 8, 13

Page 130: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Adaptive Naive Bayes Classifier (ANBC)

Tuesday, January 8, 13

Page 131: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Adaptive Naive Bayes Classifier (ANBC)

K-Nearest Neighbor (KNN)

Tuesday, January 8, 13

Page 132: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Adaptive Naive Bayes Classifier (ANBC)

K-Nearest Neighbor (KNN)

AdaBoost

Tuesday, January 8, 13

Page 133: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Adaptive Naive Bayes Classifier (ANBC)

K-Nearest Neighbor (KNN)

AdaBoost

Decision Trees

Tuesday, January 8, 13

Page 134: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Adaptive Naive Bayes Classifier (ANBC)

K-Nearest Neighbor (KNN)

Support Vector Machine (SVM)

AdaBoost

Decision Trees

Tuesday, January 8, 13

Page 135: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Tuesday, January 8, 13

Page 136: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Hidden Markov Model (HMM)

Tuesday, January 8, 13

Page 137: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Hidden Markov Model (HMM)

Dynamic Time Warping (DTW)

Tuesday, January 8, 13

Page 138: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Tuesday, January 8, 13

Page 139: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Continuous

Tuesday, January 8, 13

Page 140: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

ContinuousArtificial Neural Network (ANN)

Tuesday, January 8, 13

Page 141: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

Static Posture

or Temporal Gesture?Discrete

REGRESSION PROBLEM

STATIC CLASSIFICATION PROBLEM

TEMPORAL CLASSIFICATION

PROBLEM

Continuous

Tuesday, January 8, 13

Page 142: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture RecognitionChoosing the right algorithm to solve your problem:

STATIC CLASSIFICATION PROBLEM

Tuesday, January 8, 13

Page 143: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Machine Learning Resources

Witten (2011): Data Mining: Practical Machine Learning Tools and Techniques

Marsland (2009): Machine Learning: An Algorithmic Perspective

Duda (2001): Pattern Classification

Bishop (2007): Pattern Recognition and Machine Learning

Prof. Andrew Ng (Stanford University), Machine Learning Lectures (search for Machine Learning (Stanford) in youtube)

- Online Lectures:

- More detailed books:

- Great books to get started:

Tuesday, January 8, 13

Page 144: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Tuesday, January 8, 13

Page 145: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Regression Modules Artificial Neural Networks

Classification Modules

Support Vector Machine

K-Nearest Neighbor

Adaptive Naive Bayes Classifier

Dynamic Time Warping

Gaussian Mixture Model

Tuesday, January 8, 13

Page 146: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Training Data Structures

Data Structures Matrix

UtilsTimer

Range Tracker

Circular Buffer

Linear Algebra

Random

Regression Modules Artificial Neural Networks

Classification Modules

Support Vector Machine

K-Nearest Neighbor

Adaptive Naive Bayes Classifier

Dynamic Time Warping

Gaussian Mixture Model

Tuesday, January 8, 13

Page 147: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Training Data Structures

Data Structures Matrix

Zero CrossingPre Processing Modules

Filters

Derivative

UtilsTimer

Range Tracker

Circular Buffer

Linear Algebra

Random

Movement Trajectory Features

Feature Extraction Modules

FFT

Peak Detection

Zero Crossing Counter

Class Label Filters

Post Processing Modules

Regression Modules Artificial Neural Networks

Classification Modules

Support Vector Machine

K-Nearest Neighbor

Adaptive Naive Bayes Classifier

Dynamic Time Warping

Gaussian Mixture Model

Tuesday, January 8, 13

Page 148: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Pre Processing Modules

Feature Extraction Modules

Post Processing Modules

Regression Modules

Classification Modules

Tuesday, January 8, 13

Page 149: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

Pre Processing Modules

Feature Extraction Modules

Post Processing Modules

Regression Modules

Classification Modules

Gesture Recognition Pipeline

Tuesday, January 8, 13

Page 150: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you setup a new pipeline and set the classifier

Tuesday, January 8, 13

Page 151: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you would change the classifier

Tuesday, January 8, 13

Page 152: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you setup a more complex pipeline

Tuesday, January 8, 13

Page 153: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you train the algorithm at the core of the pipeline

Tuesday, January 8, 13

Page 154: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you test the accuracy of the pipeline

Tuesday, January 8, 13

Page 155: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

You can then easily access the accuracy, precision, recall, etc.

Tuesday, January 8, 13

Page 156: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

If you want to run k-fold cross validation, then simply state the k-value when you call the train

method and the pipeline will do the rest

Tuesday, January 8, 13

Page 157: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

This is how you perform real-time classification

Tuesday, January 8, 13

Page 158: Session 1: Gesture Recognition & Machine Learning Fundamentalsnickgillian.com/archive/teaching/workshops/mitiap... · Session 1: Gesture Recognition & Machine Learning Fundamentals

Gesture Recognition Toolkit

After the prediction you can then get the predicted class label, predication likelihoods, etc.

Tuesday, January 8, 13