(Source: putilov_denis- stock.adobe.com)
In our last entry in the Edge Impulse blog series, we began to deep dive into the Create Impulse workflow by learning about the types and purposes of processing blocks. As a quick reminder, processing blocks extract the unique features from the raw data that will, in turn, be fed into the learning blocks to generate a custom machine learning model that will eventually be deployed onto embedded systems for real-time edge inferencing. There are various types of processing blocks, each suited to different kinds of data, such as images, sounds, and accelerometer signals.
In this entry, we will look at learning blocks and the output block as the conclusion of the create impulse workflow. In Edge Impulse, learning blocks refer to the machine learning algorithms that are used to train models on preprocessed data. These algorithms are designed to discover patterns and relationships from the extracted features found in the data and to make predictions or classifications based on that discovery learning.
Various “pre-canned” learning blocks are available for Edge Impulse users that suit different use cases. They can also be stacked to create different outputs (Figure 1). Some of the main learning blocks available by default include:
Figure 1: The final two stages of Impulse Design are setting up the learning blocks and the output block. (Source: Green Shoe Garage)
As with processing blocks, users can create their own custom learning blocks in PyTorch, Keras, or scikit-learn and bring those into the Edge Impulse training pipeline. Edge Impulse supports a range of popular machine learning algorithms, including neural networks, decision trees, and support vector machines. Understanding the nuances of the various machine learning algorithms is crucial as Edge Impulse users can configure various parameters, which in turn can significantly impact the processing block’s performance. Here is a deep dive into the most common machine learning models:
Overall, the learning blocks of Edge Impulse provide a range of machine learning algorithms that are suitable for different types of input data and different use cases. As a result, users can create machine learning models optimized for their specific needs by selecting the appropriate learning block for a given task.
At this point, the impulse training pipeline has been designed. Now the training data can be used to train the neural network, and we can begin to ascertain the performance of our model (Figure 2). The following steps will vary depending on the learning blocks applied.
Figure 2: Each learning block added to an impulse can be analyzed and tweaked. In this example, the performance of an anomaly detection learning block is displayed. (Source: Green Shoe Garage)
In the next part of the Edge Impulse blog series, we will discuss how to use the Edge Impulse training pipeline to analyze spectral components of the raw data and generate features, anomaly detection, and classifiers.
Michael Parks, P.E. is the co-founder of Green Shoe Garage, a custom electronics design studio and embedded security research firm located in Western Maryland. He produces the Gears of Resistance Podcast to help raise public awareness of technical and scientific matters. Michael is also a licensed Professional Engineer in the state of Maryland and holds a Master’s degree in systems engineering from Johns Hopkins University.