Pattern Recognition

Spring 2018

Tentative 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: 10 points Midterm, 15 points DataCamp activities, 5 points Lab Participation, 20 points final Project.

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
Image Classification

The data-driven approach

K-nearest neighbor

Linear classification I

Introduction to Tensorflow.
Lec 4,5 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,7 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.
Lec 8 Training Neural Networks I

-Activation functions, initialization, dropout, batch normalization

Working_with_Linear_SVMs (Implementing  Linear binary classifiers using Tensorflow).
Lec 9 Training Neural Networks II

-Update rules, ensembles, data augmentation, transfer learning

Using_Multiple_Layers (Implement ANN using Tensorflow)
Lec 10,11 Convolutional Neural Networks


Convolution and pooling

ConvNets outside vision

Implement ANN using Keras To Know the importance of using high levels APIs  such as keras.
Lec 12 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 13 Detection and Segmentation

Semantic segmentation

Object detection

Instance segmentation

Implement a simple CNN model in Keras.
Lec 14 Visualizing and Understanding

Feature visualization and inversion

Adversarial examples

DeepDream and style transfer

Case Study :

AlexNet for image classification and detection.