Pattern Recognition

Spring 2018

 Syllabus for Pattern Recognition Course

– This course mainly for 3rd or 4th level students (Those who didn’t take data science track)

Prerequisite: Math 1, Math 2, Math 3, AI (Introduction to Machine Learning), Python 

Grading criteria:  updated (1/4)
10 points Midterm,
10 points DataCamp activities,
20 points final Project  (You do not need to make a report)
Project guidelines: Project guidelines_Pattern

Midterm MT_ans

The dataset for computer vision Examples 

http://www.vision.ee.ethz.ch/en/datasets/

http://riemenschneider.hayko.at/vision/dataset/index.php?filter=+attribute

http://clickdamage.com/sourcecode/cv_datasets.php

Main Reference:

  • Books:
    • Dipanjan Sarkar, ‎ Raghav Bali, ‎ Tushar Sharma, Practical Machine Learning with Python, A Problem-Solver’s Guide to Building Real-World Intelligent Systems, 2018.
    • Jason Bell, Machine Learning, Hands-On for Developers and Technical Professionals, 2014

Lab Syllabus: (Eng. Wael Eid)

Programming language and open-source libraries:   Python 3.6, Tensorflow 1.4.0, Numpy, Scikit-learn 0.19.1, and Keras: The Python Deep Learning Library.

Tools:                                           Anaconda (Open Data Science Core) , Spyder.

Data—Sets:                                    IRIS , MNIST , CIFAR-10.

 

Main References:

  • Books:
    • Nick McClure “TensorFlow Machine Learning Cookbook”., February 2017.

 

 

 

Course objective:

  1. Understand, Implement and use different machine learning algorithms such as KNN, SVM, ANN, and CNN.
  2. Learn how to install and use data science tools such as Anaconda.
  3. Know what are the up to date data science libraries such as keras and tensorflow in addition to machine learning libraries such as scikit-learn.
  4. Learn the intuition behind data science (extract knowledge from raw data).
  5. Introduce what is the deep learning and why it is important nowadays.

 

Lectures Topics (not limited to) Labs Topics(not limited to)
Lec 1 Lec1 -Introduction to the course.

-Machine learning overview

-Using Computer vision as our applying theme.

Install environment, Numpy basics.
Lec 2,3
Lec2
Lec3
Image Classification

The data-driven approach

K-nearest neighbor

Linear classification I

Introduction to Tensorflow.
Lec 4,5

Lec4

Lec5_ (1)

Loss Functions and Optimization

– Linear classification II

-Higher-level representations, image features

-Optimization, stochastic – – -gradient descent with its updates (Lec5)

Read data-set and split it into training, testing , and validation sets

Working_with_Nearest_Neighbors (Implement t KNN using tensorflow)

Lec 6 Lec6_

 

Introduction to Neural Networks

-Backpropagation (Lec 6)

-Multi-layer Perceptrons (Lec 7)

-The neural viewpoint  (Lec 7)

Implement  KNN using Scikit-learn and introduce the idea of cross-validation(K-fold cross validation) to select hyperparameters.
self-reading Training Neural Networks I

-Activation functions, initialization, dropout, batch normalization

 

Working_with_Linear_SVMs (Implementing  Linear binary classifiers using Tensorflow).
self-reading Training Neural Networks II

-Update rules, ensembles, data augmentation, transfer learning

Using_Multiple_Layers (Implement ANN using Tensorflow)
Lec 7

Lec7

Convolutional Neural Networks

overview

Convolution and pooling

ConvNets outside vision

Implement ANN using Keras To Know the importance of using high levels APIs  such as keras.
self-reading Deep Learning Software

Caffe, Torch, Theano, TensorFlow, Keras, PyTorch, etc && CNN Architectures

AlexNet, VGG, GoogLeNet, ResNet, etc (Just examples)

Implement ANN using Keras  (learn how to create checkpoints to select model that fit our data)

Save the learned weights.

Test the model and evaluate it.

Lec 8

Lec8_ (1)

Detection and Segmentation

Semantic segmentation

Object detection

Instance segmentation

Implement a simple CNN model in Keras.
Lec 9

Lec9_

Visualizing and Understanding

Feature visualization 

Case Study :

AlexNet for image classification and detection.