When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 3 modules in this course
Machine learning (ML) allows us to teach computers to make predictions and decisions based on data and learn from experiences. In recent years, incredible optimizations have been made to machine learning algorithms, software frameworks, and embedded hardware. Thanks to this, running deep neural networks and other complex machine learning algorithms is possible on low-power devices like microcontrollers.
This course will give you a broad overview of how machine learning works, how to train neural networks, and how to deploy those networks to microcontrollers, which is known as embedded machine learning or TinyML. You do not need any prior machine learning knowledge to take this course. Familiarity with Arduino and microcontrollers is advised to understand some topics as well as to tackle the projects. Some math (reading plots, arithmetic, algebra) is also required for quizzes and projects.
We will cover the concepts and vocabulary necessary to understand the fundamentals of machine learning as well as provide demonstrations and projects to give you hands-on experience.
In this module, we will introduce the concept of machine learning, how it can be used to solve problems, and its limitations. We will also cover how machine learning on embedded systems, such as single board computers and microcontrollers, can be effectively used to solve problems and create new types of computer interfaces. Then, we will introduce the Edge Impulse tool and collect motion data for a "magic wand" demo. Finally, we will examine the various features that can be calculated from this raw motion data, including root mean square (RMS), Fourier transform, and power spectral density (PSD).
In this module, we will look at how neural networks work, how to train them, and how to use them to perform inference in an embedded system. We will continue the previous demo of creating a motion classification system using motion data collected from a smartphone or Arduino board. Finally, we will challenge you with a new motion classification project where you will have the opportunity to implement the concepts learning in this module and the previous module.
Evaluation, Underfitting, and Overfitting•5 minutes
Slides•10 minutes
Using a Model for Inference•5 minutes
Slides•10 minutes
Anomaly Detection•5 minutes
Slides•10 minutes
Project - Motion Detection•120 minutes
Slides•10 minutes
5 assignments•Total 80 minutes
Motion Classification and Anomaly Detection•30 minutes
Neural Networks and Training•15 minutes
Evaluation, Underfitting, and Overfitting•15 minutes
Deploy Model to Embedded System•15 minutes
Anomaly Detection•5 minutes
1 discussion prompt•Total 15 minutes
Share Your Motion Detection Project!•15 minutes
Audio classification and Keyword Spotting
Module 3•6 hours to complete
Module details
In this module, we cover audio classification on embedded systems. Specifically, we will go over the basics of extracting mel-frequency cepstral coefficients (MFCCs) as features from recorded audio, training a convolutional neural network (CNN) and deploying that neural network to a microcontroller. Additionally, we dive into some of the implementation strategies on embedded systems and talk about how machine learning compares to sensor fusion.
Edge Impulse is the leading development platform for machine learning on edge devices, free for developers and trusted by enterprises. Founded in 2019 by Zach Shelby and Jan Jongboom, we are on a mission to enable developers to create the next generation of intelligent devices. We believe that machine learning can enable positive change in society, and we are dedicated to support applications for good.
No hardware is required to complete the course. However, we recommend purchasing an Arduino Nano 33 BLE Sense in order to do the optional projects. Links to sites that sell the board will be provided in the course.
What prior knowledge do I need?
We recommend having some experience with embedded systems (such as programming an Arduino board or other microcontroller) and familiarity with the C/C++ language(s). No prior machine learning knowledge is required (but if you do have some, this course might be a good review). You will be required to use some math (reading plots, arithmetic, and algebra) to complete the quizzes and projects.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.