| Literature DB >> 32380766 |
Fouad Sakr1, Francesco Bellotti1, Riccardo Berta1, Alessandro De Gloria1.
Abstract
This paper presents the Edge Learning Machine (ELM), a machine learning framework for edge devices, which manages the training phase on a desktop computer and performs inferences on microcontrollers. The framework implements, in a platform-independent C language, three supervised machine learning algorithms (Support Vector Machine (SVM) with a linear kernel, k-Nearest Neighbors (K-NN), and Decision Tree (DT)), and exploits STM X-Cube-AI to implement Artificial Neural Networks (ANNs) on STM32 Nucleo boards. We investigated the performance of these algorithms on six embedded boards and six datasets (four classifications and two regression). Our analysis-which aims to plug a gap in the literature-shows that the target platforms allow us to achieve the same performance score as a desktop machine, with a similar time latency. ANN performs better than the other algorithms in most cases, with no difference among the target devices. We observed that increasing the depth of an NN improves performance, up to a saturation level. k-NN performs similarly to ANN and, in one case, even better, but requires all the training sets to be kept in the inference phase, posing a significant memory demand, which can be afforded only by high-end edge devices. DT performance has a larger variance across datasets. In general, several factors impact performance in different ways across datasets. This highlights the importance of a framework like ELM, which is able to train and compare different algorithms. To support the developer community, ELM is released on an open-source basis.Entities:
Keywords: ANN; ARM; STM32 Nucleo; SVM; X-Cube-AI; decision trees; edge analytics; edge computing; embedded devices; k-NN; machine learning
Year: 2020 PMID: 32380766 PMCID: PMC7249132 DOI: 10.3390/s20092638
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Block diagram of the Edge Learning Machine system architecture.
Figure 2Supported workflow.
Common configuration parameters.
| Common Parameters |
|---|
| Algorithm type (SVM, k-NN, DT, ANN) |
| Dataset |
| Content format (dataset start and end column, target column, etc.) |
| Number of classes (if classification) |
| Testing set size |
| Regression (True or False) |
| PCA (a specific number of features or MLE algorithm) |
| Normalization (standard or minmax) |
| K-fold cross-validation |
| Scoring metrics (accuracy, R2) |
Algorithm-specific configuration parameters.
| Algorithm-Specific Configuration | |||
|---|---|---|---|
| ANN | Linear SVM | k-NN | DT |
| Layer Shape | C | K (number of neighbors) | Splitting criterion |
| Activation Function | Training set size for targets | max_depth | |
| Dropout | min_samples_split | ||
| Loss metrics | min_samples_leaf | ||
| Number of epochs | max_leaf_nodes | ||
| Batch size | |||
| Number of repeats | |||
Microcontroller specifications.
| Microcontroller | Flash Memory | SRAM | Processor Speed Used (MHz) | Processor Cost ($) | Board Cost ($) |
|---|---|---|---|---|---|
| F091RC | 256 Kb | 32 Kb | 48 (max: 48) | 4.8 | 10.32 |
| F303RE | 512 Kb | 80 Kb | 72 (max: 72) | 7.72 | 10.32 |
| F401RE | 512 Kb | 96 Kb | 84 (max: 84) | 6.43 | 13 |
| F746ZG | 1 Mb | 340 Kb | 96 (max: 216) | 12.99 | 23 |
| H743ZI2 | 2 Mb | 1 Mb | 96 (max: 480) | 13.32 | 27 |
| L452RE | 512 Kb | 160 Kb | 80 (max: 80) | 7.03 | 14 |
Dataset specifications.
| Dataset | Samples Features | Type |
|---|---|---|
| Heart | 303 × 13 | Binary Classification |
| Virus | 24736 × 13 | Binary Classification |
| Sonar | 209 × 60 | Binary Classification |
| Peugeot 207 * | 8615 × 14 | Multiclass Classification |
| EnviroCar | 47077 × 5 | Regression |
| AQI | 367 × 8 | Regression |
* For Peugeot 207, we considered two different labels.
Research questions.
| Research Questions (RQ) | Description |
|---|---|
| 1. Performance | Score (accuracy, R2) and inference time |
| 2. Scaling | Effect of scaling data |
| 3. PCA | Effect of dimensionality reduction on score |
| 4. ANN Layer Configuration | Different layer shapes (depth and thickness) |
| 5. ANN Activation Function | Effect of different neuron activation functions |
| 6. ANN Batch Size | Effect of batch size on score and time |
| 7. ANN Epochs | Effect of number of epochs in training |
| 8. ANN Dropout | Effect of a regularization technique to avoid overfitting |
| 9. SVM Regularization Training Time | SVM training time with different values of the “C” regularization parameter |
| 10. DT Parameters | Tuning the decision tree |
Artificial Neural Network (ANN) performance.
| ANN | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| DatasetDataset | Performance | Desktop | MCUs | ||||||
| Type | Name | Python | F0 | F3 | F4 | F7 | H7 | L4 | |
| Binary | Heart | Accuracy | 84% | * | 84% | 84% | 84% | 84% | 84% |
| Inf. Time | <1 ms | * | 3 ms | 1 ms | <1 ms | <1 ms | 1 ms | ||
| Virus | Accuracy | 99% | * | 99% | 99% | 99% | 99% | 99% | |
| Inf. Time | <1 ms | * | 5 ms | 3 ms | 1 ms | 1 ms | 4 ms | ||
| Sonar | Accuracy | 87% | * | 87% | 87% | 87% | 87% | 87% | |
| Inf. Time | <1 ms | * | 16 ms | 8 ms | 3 ms | 3 ms | 10 ms | ||
| Multiclass | Peugeot_Target 14 | Accuracy | 99% | * | 99% | 99% | 99% | 99% | 99% |
| Inf. Time | <1 ms | * | 2 ms | 1 ms | <1 ms | <1 ms | 1 ms | ||
| Peugeot_Target 15 | Accuracy | 99% | * | 99% | 99% | 99% | 99% | 99% | |
| Inf. Time | <1 ms | * | 18 ms | 10 ms | 4 ms | 4 ms | 12 ms | ||
| Regression | Enviro Car | R2 | 0.99 | * | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 |
| Inf. Time | <1 ms | * | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| AQI | R2 | 0.86 | * | 0.86 | 0.86 | 0.86 | 0.86 | 0.86 | |
| Inf. Time | <1 ms | * | 4 ms | 2 ms | 1 ms | 1 ms | 3 ms | ||
*: F0 not supported by the STM X-Cube-AI package.
ANN corresponding configurations.
| Dataset | Best Configuration ( | ||||
|---|---|---|---|---|---|
| AF | LC | PCA | Dropout | Scaling | |
| Heart | Tanh | [500] | 30% | 0 | StandardScaler |
| Virus | Tanh | [100,100,100] | None | 0 | StandardScaler |
| Sonar | ReLU | [300,200,100,50] | 30% | 0 | MinMaxScaler |
| Peugeot_Target 14 | ReLU | [500] | None | 0 | StandardScaler |
| Peugeot_Target 15 | Tanh | [300,200,100,50] | None | 0 | StandardScaler |
| EnviroCar | Tanh | [50] | mle | 0 | MinMaxScaler |
| AQI | ReLU | [300,200,100,50] | None | 0 | MinMaxScaler |
Activation Function (AF), Layer Configuration (LC), Principal Component Analysis (PCA).
Linear Support Vector Machine (SVM) performance.
| Linear SVM | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Dataset | Score | Desktop | MCUs | |||||||
| Type | Name | Python | C | F0 | F3 | F4 | F7 | H7 | L4 | |
| Binary | Heart | Acc. | 84% | 84% | 84% | 84% | 84% | 84% | 84% | 84% |
| Inf. Time | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| Virus | Acc. | 94% | 94% | 94% | 94% | 94% | 94% | 94% | 94% | |
| Inf. Time | <1 ms | <1 ms | 1 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| Sonar | Acc. | 78% | 78% | 78% | 78% | 78% | 78% | 78% | 78% | |
| Inf. Time | <1 ms | <1 ms | 3 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| Multiclass | Peugeot_Target 14 | Acc. | 91% | 91% | 91% | 91% | 91% | 91% | 91% | 91% |
| Inf. Time | <1 ms | <1 ms | 2 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| Peugeot_Target 15 | Acc. | 90% | 90% | 90% | 90% | 90% | 90% | 90% | 90% | |
| Inf. Time | <1 ms | <1 ms | 2 ms | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| Regress | EnviroCar | R2 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 |
| Inf. Time | <1 ms | <1 ms | 5 ms | 3 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
| AQI | R2 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | |
| Inf. Time | <1 ms | <1 ms | 5 ms | 3 ms | <1 ms | <1 ms | <1 ms | <1 ms | ||
Linear SVM corresponding configuration.
| Dataset | Best Configuration ( | ||
|---|---|---|---|
| C | PCA | Scaling | |
| Heart | 0.1 | 30% | StandardScaler |
| Virus | 1 | None | StandardScaler |
| Sonar | 0.01 | None | StandardScaler |
| Peugeot_Target 14 | 0.1 | mle | StandardScaler |
| Peugeot_Target 15 | 10 | mle | StandardScaler |
| EnviroCar | 0.1 | None | StandardScaler |
| AQI | 1 | mle | StandardScaler |
SVM regularization parameter (C), Principal Component Analysis (PCA).
k-Nearest Neighbors (k-NN) performance.
| k-NN | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Dataset | Score | Desktop | MCUs | |||||||
| Type | Name | Python | C | F0 | F3 | F4 | F7 | H7 | L4 | |
| Bin. | Heart | Acc. | 83% | 83% | 83% | 83% | 83% | 83% | 83% | 83% |
| Inf Time | <1 ms | <1 ms | 366 ms | 71 ms | 7 ms | 4 ms | 4 ms | 8 ms | ||
| Virus | Acc. | 99% | 99% | 95% | 95% | 95% | 95% | 95% | 95% | |
| Inf Time | <1 ms | <1 ms | 199 ms | 38 ms | 4 ms | 3 ms | 3 ms | 4 ms | ||
| Sonar | Acc. | 92% | 92% | 76% | 92% | 92% | 92% | 92% | 92% | |
| Inf Time | <1 ms | <1 ms | 329 ms | 140 ms | 14 ms | 10 ms | 10 ms | 14 ms | ||
| Multi | Peugeot_Target 14 | Acc. | 98% | 98% | 88% | 88% | 88% | 88% | 98% | 88% |
| Inf Time | <1 ms | <1 ms | 205 ms | 39 ms | 4 ms | 3 ms | 200 ms | 4 ms | ||
| Peugeot_Target 15 | Acc. | 97% | 97% | 86% | 86% | 86% | 86% | 97% | 86% | |
| Inf Time | <1 ms | <1 ms | 204 ms | 39 ms | 4 ms | 3 ms | 200 ms | 4 ms | ||
| Regr | Enviro | R2 | 0.99 | 0.99 | 0.97 | 0.97 | 0.97 | 0.97 | 0.97 | 0.97 |
| Inf Time | <1 ms | <1 ms | 125 ms | 30 ms | 3 ms | 2 ms | 2 ms | 4 ms | ||
| AQI | R2 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | 0.73 | |
| Inf Time | <1 ms | <1 ms | 414 ms | 85 ms | 9 ms | 6 ms | 6 ms | 10 ms | ||
k-NN corresponding configurations.
| Dataset | Best Configuration ( | |||
|---|---|---|---|---|
| K | PCA | Scaling | Notes | |
| Heart | 10 | mle | StandardScaler | This configuration fits all targets |
| Virus | 1 | None | StandardScaler | In all MCUs K = 1, training set cap = 100 |
| Sonar | 1 | None | MinMaxScaler | In F0 K = 1, training set cap = 50 |
| Peugeot_Target 14 | 1 | mle | MinMaxScaler | In F0, F3, F4, F7, L4 K = 4, training set cap = 100 |
| Peugeot_Target 15 | 1 | mle | MinMaxScaler | In F0, F3, F4, F7, L4 K = 3, training set cap = 100 |
| EnviroCar | 3 | mle | MinMaxScaler | In all MCUs K = 2, training set cap = 100 |
| AQI | 1 | mle | StandardScaler | This configuration fits all targets |
Number of neighbors (K), Principal Component Analysis (PCA).
Desktop (DT) performance.
| DT | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Dataset | Score | Desktop | MCUs | |||||||
| Type | Name | Python | C | F0 | F3 | F4 | F7 | H7 | L4 | |
| Bin. | Heart | Accuracy | 78% | 78% | 78% | 78% | 78% | 78% | 78% | 78% |
| Inf. Time | <1 ms | <1 | <1 | <1 | <1 | <1 | <1 | <1 | ||
| Virus | Accuracy | 99% | 99% | 99% | 99% | 99% | 99% | 99% | 99% | |
| Inf. Time | <1 ms | <1 | <1 | <1 | <1 | <1 | <1 | <1 | ||
| Sonar | Accuracy | 76% | 76% | 76% | 76% | 76% | 76% | 76% | 76% | |
| Inf. Time | <1 ms | <1 | <1 | <1 | <1 | <1 | <1 | <1 | ||
| Multi | Peugeot_Target 14 | Accuracy | 99% | 99% | 99% | 99% | 99% | 99% | 99% | 99% |
| Inf. Time | <1 ms | <1 | <1 | <1 | <1 | <1 | <1 | <1 | ||
| Peugeot_Target 15 | Accuracy | 98% | 98% | 98% | 98% | 98% | 98% | 98% | 98% | |
| Inf. Time | <1 ms | <1 | <1 | <1 | <1 | <1 | <1 | <1 | ||
| Regr | Enviro | R2 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 | 0.99 |
| Inf. Time | <1 | <1 | 2 | 2 | <1 | <1 | <1 | <1 | ||
| AQI | R2 | 0.65 | 0.65 | 0.65 | 0.65 | 0.65 | 0.65 | 0.65 | 0.65 | |
| Inf. Time | <1 ms | <1 | 2 | 2 | <1 | <1 | <1 | <1 | ||
DT corresponding configurations. Time is in ms (omitted for reasons of space).
| Dataset | Best Configuration ( | |||||
|---|---|---|---|---|---|---|
| Max | Min Sample Split | Min Sample Leaf | Max Leaf Nodes | PCA | Notes | |
| Heart | 7 | 2 | 10 | 80 | mle | * |
| Virus | None | 5 | 1 | 80 | None | * |
| Sonar | 7 | 2 | 10 | 80 | mle | * |
| Peugeot_Target 14 | None | 2 | 3 | 80 | None | * |
| Peugeot_Target 15 | None | 2 | 1 | 200 | None | * |
| EnviroCar | None | 2 | 1 | 5000 | None | Max leaf nodes = 1000 in F3, F4, L4; max leaf nodes = 200 for F0 |
| AQI | None | 10 | 3 | 80 | None | * |
Principal Component Analysis (PCA). * This configuration fits all targets.
Performance and configuration of ANN with no scaling.
| ANN | ||||
|---|---|---|---|---|
| Dataset | None | Configuration | ||
| AF | LC | PCA | ||
| Heart | 78% | ReLU | [500] | mle |
| Virus | 74% | Tanh | [100, 100, 100] | mle |
| Sonar | 85% | ReLU | [100, 100, 100] | mle |
| Peugeot_Target 14 | 95% | Tanh | [500] | mle |
| Peugeot_Target 15 | 92% | ReLU | [100, 100, 100] | mle |
| EnviroCar | 0.97 | Tanh | [50] | mle |
| AQI | 0.70 | ReLU | [300, 200, 100, 50] | None |
Activation Function (AF), Layer Configuration (LC), Principal Component Analysis (PCA).
Performance and configuration of ANN with MinMax scaling.
| ANN | ||||
|---|---|---|---|---|
| Dataset | MinMax | Configuration | ||
| AF | LC | PCA | ||
| Heart | 80% | Tanh | [300, 200, 100, 50] | 30% |
| Virus | 99% | ReLU | [100, 100, 100] | None |
| Sonar | 87% | ReLU | [300, 200, 100, 50] | 30% |
| Peugeot_Target 14 | 99% | ReLU | [100, 100, 100] | mle |
| Peugeot_Target 15 | 98% | Tanh | [300, 200, 100, 50] | mle |
| EnviroCar | 0.99 | ReLU | [50] | mle |
| AQI | 0.86 | ReLU | [300, 200, 100, 50] | None |
Activation Function (AF), Layer Configuration (LC), Principal Component Analysis (PCA).
Performance and configuration of ANN with StandardScaler normalization.
| ANN | ||||
|---|---|---|---|---|
| Dataset | Std | Configuration | ||
| AF | LC | PCA | ||
| Heart | 84% | Tanh | [500] | 30% |
| Virus | 99% | Tanh | [100, 100, 100] | None |
| Sonar | 86% | ReLU | [100, 100, 100] | mle |
| Peugeot_Target 14 | 99% | ReLU | [500] | None |
| Peugeot_Target 15 | 99% | Tanh | [300, 200, 100, 50] | None |
| EnviroCar | 0.99 | Tanh | [50] | mle |
| AQI | 0.84 | ReLU | [300, 200, 100, 50] | None |
Activation Function (AF), Layer Configuration (LC), Principal Component Analysis (PCA).
Performance and configuration of SVM for different scaling techniques.
| SVM | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dataset | None | Configuration | MinMax | Configuration | Std | Configuration | |||
| C | PCA | C | PCA | C | PCA | ||||
| Heart | 78% | 0.01 | mle | 79% | 1 | mle | 84% | 0.1 | 30% |
| Virus | 71% | 0.01 | mle | 94% | 100 | None | 94% | 1 | None |
| Sonar | 77% | 0.1 | mle | 73% | 0.1 | None | 78% | 0.01 | None |
| Peugeot_Target 14 | 50% | 0.1 | mle | 91% | 10 | mle | 91% | 0.1 | mle |
| Peugeot_Target 15 | 76% | 0.01 | mle | 90% | 10 | mle | 90% | 10 | mle |
| EnviroCar | 0.97 | Slow | mle | 0.98 | 0.1 | None | 0.99 | 0.1 | None |
| AQI | 0.7 | 100 | mle | 0.62 | 100 | 30% | 0.73 | 1 | mle |
SVM regularization parameter (C), Principal Component Analysis (PCA).
Performance and configuration of k-NN for different scaling techniques.
| k-NN | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dataset | None | Configuration | MinMax | Configuration | Std | Configuration | |||
| K | PCA | K | PCA | K | PCA | ||||
| Heart | 63% | 3 | mle | 75% | 3 | None | 83% | 10 | mle |
| Virus | 95% | 1 | mle | 99% | 1 | None | 99% | 1 | None |
| Sonar | 77% | 1 | mle | 92% | 1 | None | 87% | 1 | None |
| Peugeot_Target 14 | 91% | 1 | mle | 98% | 1 | mle | 97% | 1 | mle |
| Peugeot_Target 15 | 89% | 2 | mle | 97% | 1 | mle | 97% | 1 | None |
| EnviroCar | 0.98 | 5 | mle | 0.99 | 3 | mle | 0.99 | 3 | None |
| AQI | 0.73 | 4 | mle | 0.7 | 3 | mle | 0.73 | 6 | mle |
Number of neighbors (K), Principal Component Analysis (PCA).
SVM performance and configuration for various PCA values.
| SVM | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dataset | PCA = None | PCA = 30% | PCA = mle | ||||||
| Score | Configuration | Score | Configuration | Score | Configuration | ||||
| C | Scaling | C | Scaling | C | Scaling | ||||
| Heart | 78% | 0.01 | Std | 84% | 0.1 | Std | 79% | 0.1 | Std |
| Virus | 99% | 1 | Std | 86% | 100 | MinMax | 94% | 0.1 | Std |
| Sonar | 78% | 0.01 | Std | 75% | 100 | Std | 77% | 0.01 | Std |
| Peugeot_Target 14 | 91% | 10 | MinMax | 83% | 0.1 | MinMax | 91% | 0.1 | Std |
| Peugeot_Target 15 | 90% | 10 | MinMax | 86% | 10 | MinMax | 90% | 10 | Std |
| EnviroCar | 0.99 | 0.1 | Std | 0.94 | 0.1 | MinMax | 0.98 | 0.1 | MinMax |
| AQI | 0.73 | 10 | Std | 0.71 | 100 | Std | 0.73 | 1 | Std |
SVM regularization parameter (C).
k-NN performance and configuration for various PCA techniques.
| k-NN | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dataset | PCA = None | PCA = 30% | PCA = mle | ||||||
| Score | Configuration | Score | Configuration | Score | Configuration | ||||
| K | Scaling | K | Scaling | K | Scaling | ||||
| Heart | 77% | 3 | Std | 76% | 13 | Std | 83% | 10 | Std |
| Virus | 99% | 1 | Std | 99% | 1 | Std | 99% | 1 | Std |
| Sonar | 92% | 1 | MinMax | 84% | 1 | MinMax | 97% | 1 | Std |
| Peugeot Targ 14 | 98% | 1 | MinMax | 92% | 3 | MinMax | 98% | 1 | Std |
| Peugeot Targ 15 | 97% | 1 | MinMax | 90% | 6 | MinMax | 97% | 1 | Std |
| EnviroCar | 0.99 | 3 | MinMax | 0.99 | 9 | Std | 0.99 | 3 | MinMax |
| AQI | 0.73 | 6 | Std | 0.57 | 3 | MinMax | 0.73 | 6 | Std |
Number of neighbors (K).
ANN performance and configuration for PCA = None.
| ANN | ||||
|---|---|---|---|---|
| Dataset | Score | Configuration | ||
| AF | LC | Scaling | ||
| Heart | 81% | Tanh | [100, 100, 100] | Std |
| Virus | 99% | Tanh | [100, 100, 100] | Std |
| Sonar | 84% | ReLU | [50] | Std |
| Peugeot_Target 14 | 99% | ReLU | [500] | Std |
| Peugeot_Target 15 | 99% | Tanh | [300, 200, 100, 50] | Std |
| EnviroCar | 0.99 | Tanh | [50] | MinMax |
| AQI | 0.86 | ReLU | [300,200,100,50] | MinMax |
Activation Function (AF), Layer Configuration (LC).
ANN performance and configuration for PCA = 30%.
| ANN | ||||
|---|---|---|---|---|
| Dataset | Score | Configuration | ||
| AF | LC | Scaling | ||
| Heart | 84% | Tanh | [500] | Std |
| Virus | 98% | ReLU | [100, 100, 100] | Std |
| Sonar | 87% | ReLU | [300, 200, 100, 50] | MinMax |
| Peugeot_Target 14 | 92% | ReLU | [50] | MinMax |
| Peugeot_Target 15 | 90% | ReLU | [50] | MinMax |
| EnviroCar | 0.98 | ReLU | [50] | MinMax |
| AQI | 0.71 | ReLU | [100,100,100] | MinMax |
Activation Function (AF), Layer Configuration (LC).
ANN performance and configuration for PCA = mle.
| ANN | ||||
|---|---|---|---|---|
| Dataset | Score | Configuration | ||
| AF | LC | Scaling | ||
| Heart | 83% | Tanh | [300,200,100,50] | Std |
| Virus | 99% | Tanh | [100,100,100] | Std |
| Sonar | 86% | ReLU | [100,100,100] | Std |
| Peugeot_Target 14 | 99% | Tanh | [100,100,100] | Std |
| Peugeot_Target 15 | 99% | Tanh | [300,200,100,50] | Std |
| EnviroCar | 0.99 | Tanh | [50] | MinMax |
| AQI | 0.82 | Tanh | [300,200,100,50] | MinMax |
Activation Function (AF), Layer Configuration (LC).
DT performance and configuration for PCA = None.
| DT | |||||
|---|---|---|---|---|---|
| Dataset | Score | Configuration | |||
| Max-Depth | Min_Sample_Split | Min_Sample_Leaf | Max_Leaf_Nodes | ||
| Heart | 67% | 7 | 2 | 10 | 80 |
| Virus | 99% | None | 5 | 1 | 80 |
| Sonar | 65% | 7 | 2 | 10 | 80 |
| Peugeot_Target 14 | 99% | None | 2 | 3 | 80 |
| Peugeot_Target 15 | 98% | None | 2 | 1 | 200 |
| EnviroCar | 0.99 | None | 2 | 1 | 5000 |
| AQI | 0.65 | None | 10 | 3 | 80 |
DT performance and configuration for PCA = 30%.
| DT | |||||
|---|---|---|---|---|---|
| Dataset | Score | Configuration | |||
| Max-Depth | Min_Sample_Split | Min_Sample_Leaf | Max_Leaf_Nodes | ||
| Heart | 62% | 3 | 2 | 1 | 80 |
| Virus | 96% | None | 2 | 1 | 1000 |
| Sonar | 75% | 7 | 2 | 3 | 80 |
| Peugeot_Target 14 | 84% | None | 2 | 1 | 200 |
| Peugeot_Target 15 | 87% | 7 | 2 | 10 | 80 |
| EnviroCar | 0.98 | None | 2 | 10 | 1000 |
| AQI | 0.62 | 7 | 10 | 1 | 80 |
DT performance and configuration for PCA = mle.
| DT | |||||
|---|---|---|---|---|---|
| Dataset | Score | Configuration | |||
| Max-Depth | Min_Sample_Split | Min_Sample_Leaf | Max_Leaf_Nodes | ||
| Heart | 78% | 7 | 2 | 10 | 80 |
| Virus | 99% | None | 2 | 1 | 200 |
| Sonar | 76% | 7 | 2 | 10 | 80 |
| Peugeot_Target 14 | 93% | None | 5 | 1 | 80 |
| Peugeot_Target 15 | 92% | None | 10 | 1 | 80 |
| EnviroCar | 0.98 | None | 2 | 10 | 5000 |
| AQI | 0.49 | 7 | 5 | 1 | 80 |
Results for layer configuration LC = [50] and LC = [500]. We have omitted columns with all zero Dropout values.
| Dataset | LC = [50] | Configuration | LC = [500] | Configuration | ||||
|---|---|---|---|---|---|---|---|---|
| AF | PCA | Scaling | AF | PCA | Scaling | |||
| Heart | 83% | Tanh | 30% | Std | 84% | Tanh | 30% | Std |
| Virus | 98% | ReLU | None | Std | 98% | ReLU | None | Std |
| Sonar | 84% | ReLU | None | Std | 81% | ReLU | mle | Std |
| Peugeot_Target 14 | 98% | ReLU | mle | Std | 99% | ReLU | None | Std |
| Peugeot_Target 15 | 98% | ReLU | mle | Std | 98% | ReLU | None | Std |
| EnviroCar | 0.99 | Tanh | mle | MinMax | 0.99 | ReLU | mle | MinMax |
| AQI | 0.76 | Tanh | mle | MinMax | 0.78 | ReLU | mle | MinMax |
Activation Function (AF), Principal Component Analysis (PCA).
Layer configuration LC = [100,100,100] results.
| Dataset | LC = [100,100,100] | Configuration | |||
|---|---|---|---|---|---|
| AF | PCA | Scaling | Dropout | ||
| Heart | 84% | Tanh | 30% | Std | 0 |
| Virus | 99% | Tanh | None | Std | 0 |
| Sonar | 87% | ReLU | 30% | Std | 0 |
| Peugeot Target 14 | 99% | ReLU | mle | Std | 0 |
| Peugeot Target 15 | 98% | Tanh | mle | Std | 0.1 |
| EnviroCar | 0.99 | Tanh | mle | MinMax | 0 |
| AQI | 0.80 | ReLU | mle | MinMax | 0 |
Activation Function (AF), Principal Component Analysis (PCA).
Layer Configuration (LC) = [300,200,100,50] results.
| Dataset | LC = [300,200,100,50] | Configuration | ||
|---|---|---|---|---|
| AF | PCA | Scaling | ||
| Heart | 84% | Tanh | 30% | Std |
| Virus | 99% | ReLU | None | Std |
| Sonar | 87% | ReLU | 30% | MinMax |
| Peugeot Target 14 | 99% | ReLU | mle | MinMax |
| Peugeot Target 15 | 99% | Tanh | None | Std |
| EnviroCar | 0.99 | Tanh | mle | MinMax |
| AQI | 0.86 | ReLU | None | MinMax |
Activation Function (AF), Principal Component Analysis (PCA).
ReLU activation function results.
| Dataset | Score | Best Configuration | ||
|---|---|---|---|---|
| LC | PCA | Scaling | ||
| Heart | 83% | [500] | 30% | Std |
| Virus | 99% | [100,100,100] | mle | Std |
| Sonar | 87% | [300,200,100,50] | 30% | MinMax |
| Peugeot_Target 14 | 99% | [500] | None | Std |
| Peugeot_Target 15 | 99% | [300,200,100,50] | None | Std |
| EnviroCar | 0.99 | [50] | mle | MinMax |
| AQI | 0.86 | [300,200,100,50] | None | MinMax |
Layer Configuration (LC), Principal Component Analysis (PCA).
Tanh activation function results.
| Dataset | Score | Best Configuration | |||
|---|---|---|---|---|---|
| LC | PCA | Scaling | Dropout | ||
| Heart | 84% | [500] | 30% | Std | 0 |
| Virus | 99% | [100,100,100] | None | Std | 0 |
| Sonar | 81% | [50] | 30% | MinMax | 0 |
| Peugeot_Target 14 | 99% | [100,100,100] | mle | Std | 0 |
| Peugeot_Target 15 | 99% | [300,200,100,50] | None | Std | 0 |
| EnviroCar | 0.99 | [50] | mle | MinMax | 0 |
| AQI | 0.82 | [300,200,100,50] | mle | MinMax | 0.1 |
Layer Configuration (LC), Principal Component Analysis (PCA).
Performance on difference batch size.
| Dataset | Epoch = 20 | ||
|---|---|---|---|
| Batch Size = 1 | Batch Size = 10 | Batch Size = 20 | |
| Heart | 84% | 84% | 84% |
| Virus | 99% | 99% | 99% |
| Sonar | 87% | 87% | 84% |
| Peugeot_Target 14 | 98% | 99% | 98% |
| Peugeot_Target 15 | 97% | 99% | 99% |
| EnviroCar | 0.99 | 0.99 | 0.99 |
| AQI | 0.63 | 0.86 | 0.76 |
Figure 3Accuracy vs. Epochs for (a) Heart, (b) Virus, (c) Sonar, (d) Peugeot target 14, and (e) Peugeot target 15.
Figure 4Mean Squared Error vs. Epochs for (a) EnviroCar, and (b) air quality index (AQI).
Dropout effect on ANN.
| Dataset | Dropout | |
|---|---|---|
| 0 | 0.1 | |
| Heart | 84% | 84% |
| Virus | 99% | 99% |
| Sonar | 87% | 83% |
| Peugeot_Target 14 | 99% | 99% |
| Peugeot_Target 15 | 99% | 99% |
| EnviroCar | 0.99 | 0.99 |
| AQI | 0.86 | 0.82 |
Training time for different values of the C parameter.
| Dataset | C Parameter | ||||
|---|---|---|---|---|---|
| 0.01 | 0.1 | 1 | 10 | 100 | |
| Heart | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms |
| Virus | 100 ms | 300 ms | 500 ms | 600 ms | 600 ms |
| Sonar | <1 ms | <1 ms | <1 ms | <1 ms | <1 ms |
| Peugeot_Target 14 | <1 ms | 100 ms | 200 ms | 300 ms | 400 ms |
| Peugeot_Target 15 | <1 ms | 100 ms | 300 ms | 300 ms | 300 ms |
| EnviroCar | 100 ms | 100 ms | 100 ms | 100 ms | 100 ms |
| AQI | <1 ms | <1 ms | <1 ms | <1 ms | 300 ms |
Figure 5Number of occurrences of each DT parameter.