Edge-Learning-Machine / Autonomous-Edge-Pipeline

AEP is a self-learning autonomous edge learning and inferencing pipeline for resource-constrained embedded system.
1 stars 0 forks source link

AEP

We introduce the Self-Learning Autonomous Edge Learning and Inferencing Pipeline (AEP). AEP is a software system we have developed for resource-constrained devices. Beside the inference capability, the AEP allows autonomous field training, by means of a two stage pipeline, involving a label generation with a confidence measure step and on-device training.

For label generation, AEP implements the following clustering algorithm:

For on-device training, AEP currently implements the following ML algorithms (training and classification) for binary classification problems:

Usage

You can compile the code as an executable or as a static library, using gcc/g++ for a Microcontroller or a desktop (e.g., thorugh Eclipse CDT or Visual Studio Code).

The program must be configured first in main.h, where the user has to specify some #define, such as:

Second, the memory should be configured in pipeline.h, where the user has to choose values for:

Third, the k-means algorithm should be configured in kmeans.h, where the user has to choose values for:

AutoDT

If AutoDT was set, the program must be configured in decision_tree_training.h, where the user has to choose values for:

AutoKNN

If AutoKNN was set, the program must be configured in knn_classification.h, where the user has to choose value for:

main.h exposes the following functions:

Data

Results

The obtained results after running the AEP with the user defined parameters are saved in a text file named log.txt

Reference article for more infomation

F., Sakr, R. Berta, J. Doyle, A. De Gloria, and F., Bellotti, "Self-Learning Pipeline for Low-Energy Resource-Constrained Devices," Energies 2021, 14, 6636. https://www.mdpi.com/1996-1073/14/20/6636