EECE-4710: IoT and Tiny Machine Learning (Spring 2024)

Course Introduction

Description
This course introduces students to applied tiny machine learning (TinyML) for embedded Internet of Things (IoT) devices.

Instructor
Cristinel Ababei, cristinel.ababei@marquette.edu
Phone: 414-288-5720
Office: Haggerty Hall, #220

Syllabus
For a more detailed course description, objectives, and policies see the Syllabus.

Textbook

[1] Pete Warden and Daniel Situnayake, TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers, O'Reilly Media, 2020.

[2] Vijay Janapa Reddi at Harvard and open-source collaborators, Machine Learning Systems with TinyML, Open-source collaborative-effort book, 2023-present.

[3] Gian Marco Iodice and Ronan Naughton, TinyML Cookbook: Combine artificial intelligence and ultra-low-power embedded devices to make the world smarter, 2022.

[4] Francois Chollet, Deep Learning with Python, Manning, Second Edition, 2021.

Hardware Kit

Arduino Tiny Machine Learning Kit: Arduino Tiny Machine Learning Kit. The kit includes:
[1] Arduino Nano 33 BLE Sense board
[2] OV7675 Camera
[3] Arduino Tiny Machine Learning Shield
[4] USB A to Micro USB Cable


Schedule

Week
Topic
Code+
Assignment
Readings
Week1
Part 1: Foundations of Machine Learning (ML)
About the course and Syllabus (slides w1_1)
Introduction to IoT and TinyML (slides w1_2)
Week_1.zip
W1_Assignment (PDF)
ImageNet Classification (PDF)
Deep Compression (PDF)
Week2
The Machine Learning Paradigm (slides w2_1)
Building Blocks of Deep Learning (DL) - Neural Network (NN) (slides w2_2)
Week_2.zip
W2_Assignment (PDF)
Artificial neural networks: a tutorial (PDF)
Week3
Building Blocks of DL - Regression with Dense NN (slides w3_1)
Building Blocks of DL - Classification with Dense NN (slides w3_2)
Week_3.zip
W3_Assignment (PDF)
HyperNOMAD: Hyperparameter Optimization (PDF)
Week4
Image Classification using CNN (slides w4_1)
Introduction to Edge Impulse – CNN with Cifar-10 (slides w4_2)
Week_4.zip
W4_Assignment (PDF)
Visualizing CNNs (PDF)
Week5
Datasets and Model Performance Metrics (slides w5_1)
Preventing Overfitting (slides w5_2)
Week_5.zip
W5_Assignment (PDF)
VGG16: Very Deep CNNs (PDF)
Week6
Part 2: Sensors
TinyML Kit Overview (slides w6_1)
TinyML Kit Setup (slides w6_2)
TinyML Kit Sensor Testing (slides w6_3)
Week_6.zip
W6_Assignment (PDF)
ML Sensors (PDF)
Chapters 1,2,3 from textbook
Week7
Sensor Testing (slides w7_1)
Sensor Fusion (slides w7_2)
Week_7.zip
W7_Assignment (PDF)
Sensing Data Fusion (PDF)
Week8
Part 3: Applications and Deployment to Microcontrollers (MCUs)
TF-Lite, TFL-Micro, TFL-Micro Hello-World example (slides w8_1)
Week_8.zip
W8_Assignment (PDF)
TinyML Platforms Benchmarking (PDF)
Chapters 4,5,6 from textbook
Week9
Hello-World Example - Code Discussion (slides w9_1)
Week_9.zip
W9_Assignment (PDF)
TensorFlow Lite Micro (PDF)
Chapters 4,5,6 from textbook
Week10
KeyWord Spotting (KWD) Introduction (slides w10_1)
Micro-Speech Example - Code Discussion (slides w10_2)
Week_10.zip
W10_Assignment (PDF)
Speech Commands: A Dataset (PDF)
Chapters 7,8 from textbook
Week11
Micro-Speech Workflow (slides w11_1)
Micro-Speech Example - Model development & testing (Tutorial w11_2)
Week_11.zip
No assignment
On-Device Training Under 256KB Memory (PDF)
Chapters 7,8 from textbook
Week12
KeyWord Spotting (KWD) Application Devel in Edge Impulse (EI) (slides w12_1)
KWD - dataset creation and EI project (Tutorial w12_2)
Week_12.zip
W12_Assignment (PDF)
Keyword Spotting in Any Language (PDF)
Week13
Person-detection Example - Code Discussion (slides w13_1)
Image classification - Reloaded (slides w13_2)
Week_13.zip
W13_Assignment (PDF)
Visual Wake Words Dataset (PDF)
Chapters 9,10 from textbook
Week14 Part 4: Security in IoT
IoT Security Introduction (slides w14_1)
Week_14.zip
No assignment
Decentralized artificial intelligence (PDF)
Week15 Part 5: Energy Harvesting Techniques
Week_15.zip
W15_Assignment (PDF)
W15_Additional_Papers.zip


Resources

Prof. Marcelo Rovai - TinyML - Machine Learning for Embedding Devices, UNIFEI

Prof. Vijay Janapa Reddi - CS249r: Tiny Machine Learning, Applied Machine Learning on Embedded IoT Devices, Harvard

TinyMLedu

tinyML Foundation - non-profit professional organization supporting and connecting the TinyML world.

Select and join a tinyML group near you for free - to stay up to date with new tinyML technologies and upcomming event. Meetup is a social media platform for hosting and organizing in-person and virtual activities, gatherings, and events for people and communities of similar interests, hobbies, and professions.

Jason Brownlee - MachineLearningMastery