Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Getting Started with Machine Learning at the Edge on Arm

Arm Education via Coursera

Overview

The age of machine learning has arrived! Arm technology is powering a new generation of connected devices with sophisticated sensors that can collect a vast range of environmental, spatial and audio/visual data. Typically this data is processed in the cloud using advanced machine learning tools that are enabling new applications reshaping the way we work, travel, live and play. To improve efficiency and performance, developers are now looking to analyze this data directly on the source device – usually a microcontroller (we call this ‘the Edge’). But with this approach comes the challenge of implementing machine learning on devices that have constrained computing resources. This is where our course can help! By enrolling in Machine Learning at the Edge on Arm: A Practical Introduction you’ll learn how to train machine learning models and implement them on industry relevant Arm-based microcontrollers. We’ll start your learning journey by taking you through the basics of artificial intelligence , machine learning and machine learning at the edge , and illustrate why businesses now need this technology to be available on connected devices. We’ll then introduce you to the concept of datasets and how to train algorithms using tools like Anaconda and Python. We'll then go on to explore advanced topics in machine learning such as artificial neural networks and computer vision. Along the way, our practical lab exercises will show you how you can address real-world design problems in deploying machine learning applications, such as speech and pattern recognition, as well as image processing, using actual sensor data obtained from the microcontroller. We'll also introduce you to the open source TensorFlow Python library, which is useful in the training and inference of deep neural networks. In the final module you’ll be able to apply what you’ve learned by implementing machine learning algorithms on a dataset of your choice. To be successful in the course, you should have an understanding of embedded systems, C language and Python. You will also need to purchase the ST DISCO-L475E development board used in the lab exercises of this course, which can be purchased directly from our technology partner STMicroelectronics: https://www.st.com/content/st_com/en/campaigns/educationalplatforms/iot-arm-edx-edu.html Through our vast ecosystem, Arm already powers a wide range of devices and applications that rely on machine learning at the edge. Be a part of this vibrant community of developers and start your machine learning journey by enrolling in our course today!

Syllabus

  • Module 1: An Overview of Machine Learning at the Edge
    • In this module, you will be introduced to key concepts in Machine Learning and learn why businesses now need this technology to be available on low-power devices.
  • Module 2: Introduction to Machine Learning on Constrained Devices
    • In this module, you will explore some of the key concepts in machine learning, such as feature extraction and classification models, in the context of signal processing. You will understand the importance of training and evaluation in the machine learning workflow, and the constraints involved when using microcontrollers for this. At the end of the module, you will complete a practical lab exercise, to implement some simple machine learning models for activity recognition, using accelerometer data. To do so, you will be shown how to use Anaconda and Python to work with datasets.
  • Module 3: Explain Artificial Neural Networks
    • This module dives deeper into a powerful and widely used model in Machine Learning: the artificial neural network. These can analyze large quantities of input data in complex ways, in order to solve classification problems, such as identifying objects in an image. In order to run neural networks on small microprocessors, these models need to be as streamlined as possible. So you will also look at the complexity of a typical neural network, and see some techniques to reduce this complexity, such as quantization. In the lab, you will continue building a classifier for activity recognition, but this time using a neural network on an Arm STM32 microprocessor. For this, you will be introduced to the TensorFlow Python library, which is also popular for many applications in machine learning.
  • Module 4: Convolutional Neural Networks
    • Neural networks can be used to solve complex classification problems, as you have already seen. In this module, you’ll discover a more advanced model: the convolutional neural network. These are important for image processing, as they can interpret relationships between adjacent pixels, but they are also used in other applications such as financial modeling. This is a new and modern technique so you’ll be learning about the cutting edge of machine learning, and the recent trends in this field. In the lab, you’ll develop a convolutional neural network for audio processing, and optimize it for both accuracy and performance. This would allow it to give good results on a small device without draining the battery or delaying the response.
  • Module 5: Computer Vision and Models
    • The algorithms used in modern machine learning can be very complex, and require many iterations of innovation and testing by computer scientists. This is especially true for the optimized algorithms required by microprocessors! Thankfully, you do not need to implement these algorithms yourself, as they are available in libraries, such as CMSIS-NN, developed by Arm. This module shows you how this library can be used for machine learning—for example for image processing using convolutional neural networks. In the lab exercise, you also have the opportunity to use CMSIS-NN to develop a simple model for the CIFAR-10 dataset, using CUBE AI.
  • Module 6: Optimizing Machine Learning on Constrained Devices
    • For machine learning to perform well, even on the smallest devices, it is essential to optimize the models to minimize their memory footprint and the number of operations required to perform inference tasks. In practice, this allows portable devices to be more responsive, and extends their battery life. In this last module, you’ll explore some of the cutting-edge techniques used to optimize neural networks, such as using fixed-point arithmetic in place of floating-point arithmetic. To consolidate your learning, you will develop the best machine learning model that you can, that would be able to run on an ArmCortex-M microprocessor, using a toolkit such as CMSIS-NN.

Taught by

Arm Education

Reviews

Start your review of Getting Started with Machine Learning at the Edge on Arm

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.