**Term :**August – December 2022

** Instructor : **Dr. Chetan Singh Thakur

**Class Schedule : **Lecture : Monday , Tuesday 5-6 pm, Lab: Thursday 2-5 PM.

**TA : **Banhimitra Kundu , Adithya M D

**Credits : **2:1

**Course Summary:**

Overview of machine learning hardware systems, motivation and trends, Less Math’s oriented and more Intuition development of matrix operations like projection, higher dimensions, eigen values and vectors. Constrained Optimization. Fundamentals of digital hardware – FPGA, power and speed estimation, accelerating linear algebra, machine learning system concepts – (SVM and Deep Learning Neural Networks), feature extraction (PCA, filtering), inference engine, matrix vector multiplication (sparsity), non-linearity and pooling, resolution-performance trade-off, training optimization engines (cost function, regularization), online and stochastic training, forward-backward propagation, emerging hardware architectures, memristor based designs, spiking architectures

**Prerequisites:**

Basics of linear algebra, calculus, probability.

- Familiarity with basics of C/C++
- Familiarity with basics of Python and libraries like NumPy.
- Optional: Basic knowledge of embedded systems boards like (Arduino / Esp32 ) would be helpful in the course.

**References:**

Current literature

**Announcements:**

First Day of Class: 08.08.22 Midterm: There are no midterms or final exams in the course. Emphasis and grading will be given on assignments, lab sessions and Project.

Assignments:

Assignment1: First week of October

Assignment2: First week of November

Project Presentations along with): 1st week of December (Tentative). Demonstration of models in the hardware is mandatory.

**Lecture Notes and Handouts: **Will be given during the duration of the course to the students

**Development on the Software:** GoogleColab / Pycharm / Jupyter / Spyder can be used to develop the ML model in python

**Development on the Hardware:**The simulations and implementation of the libraries developed onto an embedded microcontroller. This will require the use of Arduino, which includes Arduino libraries for camera, microphone etc. in C/C++ programming language. Tutorials will be conducted in the Lab Timings for students to get started on the tool operations. Students are urged to install the Arduino IDE and get familiar with the libraries. We will be using Arduino / ESP32 for implementation.

**Attendance and Conduct in Class:
**Students are expected to attend classes and be attentive and responsive to all class discussions. It is the student’s responsibility to get notes and handouts for any missed class.

**Grading:
**The grades will be assigned according to the following credit table. Class and Lab participation (10%), Assignment1 (20%), Assignment2(20%), Final Project Demonstration (50%)

**Project:
**As part of the project, a group of 2 students will design systems using software algorithms (ML, Neuromorphic or Neural Networks). The final project presentation should involve clear distinctions of the software algorithms ported as Libraries using C, C++ and their integration with the larger system as a product using Embedded Software Framework. Finally implementing these on Arduino for prototyping. Final Project Grading will be based on the project presentation, report, simulation, and prototyping of the system.