CIE – Practical Approach to Deep Learning

Practical Approach to Deep Learning using: Deploying Hardware Accelerator and Software Toolkit

Course Objective:

Background:

Digital Transformation is driving dramatic changes in the technology and business landscape. Artificial Intelligence (AI), Machine Learning (ML) and Deep Learning (DL) are the key underpinnings driving this massive change. Deep Learning has several applications, both industrial and consumer and has permeated into our everyday life (e.g. Google Assistant, Alexa by Amazon, surveillance video camera monitoring, etc.)

To deal with the complexity and to democratize the solutions involving DL, several tech companies have come up with tools/framework and one such example is Intel® OpenVINOTM (short for, Open Visual Inference and Neural network Optimization) toolkit. OpenVINO is open source and available free / no cost.

Preparation work done at PES:

During Jan-May semester 2019, OpenVINO training was conducted by Intel engineers for PES students (participating in Intel ML Contest). CIE initiated a FDP session (Sep27, 2019) conducted by Intel and attended by 15 faculty from ECE, CS, EEE, and MCA. This was followed up with detailed discussions ECE Dept) resulting in inputs on course syllabus/content. Intel (I2R group) has also provided value inputs and feedback on course syllabus and content.

Based on work/experience and inputs from faculty, the course’s objective was crafted to create a broad understanding of DL with a hands-on approach using toolkit/framework to tackle real-world use-cases and applications. In future, this course can be extended to include other open source / free industry tools and also broaden the scope for covering deeper theoretical background.

This 2-credit elective course leverages content from Intel AI Academy.

Specific objectives:

  • Introduction to AI, role of AI in industry/enterprise, data science workflow
  • Introduction to supervised learning and DL
  • Hardware and Software approaches to DL (CPU, GPU, VPU, FPGA)
  • Using the Intel® MovidiusTM Neural Compute SDK (NCSDK)
  • Basics of DL vision applications and model topologies

Course Outcome:

  • How AI can help solve problems in the industry today (with examples)
  • Importance of datasets, data sources, problem-solving with data, and data science workflows
  • The fundamentals of supervised learning and an introduction to the concepts of deep learning
  • Using Intel® hardware and software to solve DL problems; analyze model performance
  • Deploy pretrained networks on the NCS

Who should take this course (Aug 2020: ECE – 7th Semester; later this can be offered to other branches)

  • Self-motivated, curious, creative & willing to stretch – lots of new stuff (HW & SW)!
  • Interested in learning theory but also apply DL for practical applications
  • Interested in learning industry-standard tools/framework to build innovative solutions using DL
  • Comfortable with Python programming, Raspberry Pi – see prerequisite section for details

Course Approach:

  • Mix of interactive lectures and practical sessions; instructors drawn from PES and industry (plan
    to have Intel engineers supporting 1-2 classes to bring in the industry view).
  • Apply concepts learned in class through assignments and project(s)

Course Assessment:

ISA-1 (20%), ISA-2 (20%), Assignment/Mini-Project (20%), Final Project (40%)

Prerequisite Course(s):

For ECE students:
Python, C, Artificial Neural Networks (ANN), Digital Image Processing (DIP)
Familiarity with Raspberry Pi recommended (but not mandatory)

References:

  1. Richard Szeliski, “Computer Vision: Algorithms and Applications,” 1st edition, Springer, 2010
  2. Gonzalez and Woods, “Digital Image Processing”, 2nd edition, Prentice Hall of India, 2004
  3. Ian Goodfellow , Yoshua Bengio, Aaron Courville, ” Deep Learning (Adaptive Computation and Machine Learning series)”, The MIT Press (November 18, 2016)

Online:

  1. Overview – Intel OpenVINO and Neural Compute Stick
  2. Intel OpenVINO – from Edge to Cloud
  3. https://docs.openvinotoolkit.org/latest/index.html
  4. https://software.intel.com/en-us/openvino-toolkit

Course Plan:

Module Description Hours
M1 Intro to AI and its support blocks 2
M2 AI In Industry 2
M3 AI roles/responsibilities in the Enterprise, Machine Learning and Deep Learning overview, Introduction to Supervised learning and Data Collection 2
M4 Supervised Learning, Intuition of Common pitfalls, Introduction to Intel OpenVINO framework, Assignments 1 and 2 introduction 2
M5 Data Collection and Enhancement  + Assignment – 1 evaluation presentation 2
M6 Deep learning, Potential bugs in a neural network and the Intuitive understanding of NN bugs 2
M7 Review (1 hour) + Hands-on demo of OpenVINO capabilities using simple pre-trained models 1
M8 Intel Neural Compute deep dive, NCS-2 internals + Hands-on with pre-trained models 1.5
M9 ISA-1 review of answers + Hands-on with pre-trained models. 1.5
M10 Intuitive deep-dive and fundamentals of CNN, Debugging a neural network + Introduction to the Final project 2
M11 Hands-on introduction to OpenVINO framework/scripts to use, more Intel pre-trained models 2
M12 COVID-19 dataset introduction, when to apply AI/ML/DL and its limitations + Assignment – 3 hands-on 1
M13 Introduction to Advanced keras API / CNN stages, Introduction to Intel Forums 1
M14 Final Project Tips / Hints 1
M15 “Tricks of the Trade” — for understanding/debugging neural network behaviour with rule-of-thumb guidelines 2
M16 FINAL PROJECT Evaluation with external jury 2