Next Article in Journal
System for Game-like Therapy in Balance Issues Using Audiovisual Feedback and Force Platform
Next Article in Special Issue
The Diversification and Enhancement of an IDS Scheme for the Cybersecurity Needs of Modern Supply Chains
Previous Article in Journal
Deep Learning-Based Consensus Control of a Multi-Agents System with Unknown Time-Varying Delay
Previous Article in Special Issue
FPGA-Based Convolutional Neural Network Accelerator with Resource-Optimized Approximate Multiply-Accumulate Unit
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Universal Reconfigurable Hardware Accelerator for Sparse Machine Learning Predictive Models

by
Vuk Vranjkovic
†,‡,
Predrag Teodorovic
*,‡ and
Rastislav Struharik
Faculty of Technical Sciences, University of Novi Sad, 21000 Novi Sad, Serbia
*
Author to whom correspondence should be addressed.
Current address: Trg Dositeja Obradovica 6, 21000 Novi Sad, Serbia.
These authors contributed equally to this work.
Electronics 2022, 11(8), 1178; https://doi.org/10.3390/electronics11081178
Submission received: 1 March 2022 / Revised: 18 March 2022 / Accepted: 25 March 2022 / Published: 8 April 2022
(This article belongs to the Special Issue Energy-Efficient Processors, Systems, and Their Applications)

Abstract

:
This study presents a universal reconfigurable hardware accelerator for efficient processing of sparse decision trees, artificial neural networks and support vector machines. The main idea is to develop a hardware accelerator that will be able to directly process sparse machine learning models, resulting in shorter inference times and lower power consumption compared to existing solutions. To the author’s best knowledge, this is the first hardware accelerator of this type. Additionally, this is the first accelerator that is capable of processing sparse machine learning models of different types. Besides the hardware accelerator itself, algorithms for induction of sparse decision trees, pruning of support vector machines and artificial neural networks are presented. Such sparse machine learning classifiers are attractive since they require significantly less memory resources for storing model parameters. This results in reduced data movement between the accelerator and the DRAM memory, as well as a reduced number of operations required to process input instances, leading to faster and more energy-efficient processing. This could be of a significant interest in edge-based applications, with severely constrained memory, computation resources and power consumption. The performance of algorithms and the developed hardware accelerator are demonstrated using standard benchmark datasets from the UCI Machine Learning Repository database. The results of the experimental study reveal that the proposed algorithms and presented hardware accelerator are superior when compared to some of the existing solutions. Throughput is increased up to 2 times for decision trees, 2.3 times for support vector machines and 38 times for artificial neural networks. When the processing latency is considered, maximum performance improvement is even higher: up to a 4.4 times reduction for decision trees, a 84.1 times reduction for support vector machines and a 22.2 times reduction for artificial neural networks. Finally, since it is capable of supporting sparse classifiers, the usage of the proposed hardware accelerator leads to a significant reduction in energy spent on DRAM data transfers and a reduction of 50.16% for decision trees, 93.65% for support vector machines and as much as 93.75% for artificial neural networks, respectively.

1. Introduction

Until recent discoveries of convolutional neural networks and the other deep learning architectures, multi layer perceptron (MLP) artificial neural networks (ANNs), decision trees (DTs) and support vector machines (SVMs) were recognized as the most popular predictive models in the field of machine learning (ML). Although CNNs have replaced ANNs, DTs and SVMs in the fields of computer vision and natural language processing, ANNs, DTs and SVMs are still among the most widely used predictive models in the field of data mining [1,2,3].
A predictive model based on DTs was first presented in the literature in 1984 [4], while axis-parallel DTs were introduced a few years later [5]. SVMs were first introduced in 1995 [6], while ANNs were presented as a predictive model in [7], even though the computational model for ANNs was proposed a long time ago in [8]. Although ANNs, DTs and SVMs have long been known by the scientific community, they are still widely used for discovering patterns in large datasets (data mining) [1,2,3]. There are numerous software platforms used for this purpose, such as RapidMiner [9], R project [10] or Pentaho/WEKA [11]. However, when machine learning classifiers are used for solving large scale classification problems, like data mining, or in real time data processing applications, such as network anomaly detection [12] or real-time trading [13,14], the instance classification duration becomes a critical metric for the classifier performance evaluation. One way to improve the instance classification duration is to implement ML classifiers directly in hardware.
A significant effort has been made by the scientific community in this direction. Regarding DTs, a number of FPGA DT implementations were presented in the literature [15,16,17,18,19,20]. These proposed architectures dealt with the acceleration of the axis-parallel, oblique or nonlinear DTs and the ensembles of dense DTs. There are numerous SVM hardware implementations presented in the literature [21,22,23,24,25,26,27], while ANNs is, arguably, the predictive model with the most hardware implementations [28,29,30,31,32].
Even though the above-mentioned hardware implementations of ML predictive models outperform corresponding software solutions by several orders of magnitude, all of them can implement only a single type of the classifier: DT, SVM or ANN. In [33], the authors presented the universal coarse-grained reconfigurable hardware accelerator for hardware implementation of three ML predictive model types: ANNs, DTs and SVMs. The implementation is based on the fact that the DOT product of two multi-dimensional vectors, as the core data processing operation, is common for all three supported ML models. The same authors extended their solution to homogeneous and heterogeneous ensemble classifiers in [34].
Another way to improve classifier throughput performance is to compress and reduce the size of the predictive model, by using different sparsification approaches. Sparsification techniques have been mainly explored in the field of ANNs and convolutional neural networks (CNNs) [35,36,37,38,39,40] and have resulted in the significant reduction in model size. Compression has been significantly less explored in the fields of DTs and SVMs. Authors in [41,42] recognized the benefits of minimizing the number of non-zero hyperplane coefficients in oblique DTs. However, the focus in these studies was a feature/attribute selection and detection of irrelevant and noisy features and not the reduction in model size or inference process acceleration. Compression of the SVM size by using a smart selection of support vectors during the training was presented in [43], while in [44] authors proposed the complementary idea for the SVM size reduction through the removal of attributes from support vectors.
The benefits of having a sparse predictive model are fully exploited only when the model is being executed on a hardware accelerator that can process sparsified models. In the field of CNN accelerators this has been heavily exploited, resulting in numerous solutions being proposed [45,46,47,48,49]. Surprisingly, in the field of DTs, SVMs and ANNs, only a handful of hardware accelerators capable of directly processing sparse models have been proposed in [44,50], despite the obvious benefits of accelerating sparse ML predictive models. A hardware accelerator of sparse oblique DTs was presented in [50], where it was reported that oblique DT sparsification led to both instance processing speedup and memory reduction. A hardware accelerator for sparse SMVs was proposed in [44], with similar benefits regarding the improvements in inference speed.
To the best of our knowledge, there is no published result concerned with the development of a hardware accelerator capable of accelerating different sparse ML model types, like DTs, SVMs and ANNs. This could be of a great interest for the applications relying on using hybrid-classifier systems, for example, [51,52,53,54,55,56].
In this study, we present the Sparse Reconfigurable Machine Learning Classifier, SRMLC—an application specific hardware accelerator for efficient processing of sparsified decision trees, support vector machines and artificial neural networks. The SRMLC is based on the implementation proposed in [33] where the underlying core operation is MAC (multiply and accumulate); however, it is optimized in order to support the acceleration of sparse predictive models in which the majority of model weights are set to zero. Consequently, without any performance degradation in terms of classifier accuracy, the SRMLC processing latency is significantly reduced, as a result of skipping numerous MAC operations with zero-valued operands. Compared to previously published results in [33], there are five major contributions of our approach:
  • Sparsification—our design is the first universal reconfigurable machine learning classifier accelerator which is optimized to support sparse data representations and which benefits from such sparse data manipulations.
  • Scalability—one of the major design goals during the development of the SRMLC architecture was supporting better scalability on FPGA platforms. This is feasible due to the fact that one MAC unit, a basic building block within the SRMLC, uses one DSP, one BRAM and 300 LUTs, compared to previously published RMLC [33], where scalability was constrained by using too many BRAM blocks per one DSP.
  • Improved throughput—as a result of the classifier sparsification, the SRMLC has significantly improved throughput for DTs and SVMs. Regarding MLP ANNs, throughput is improved as a result of the fact that a single layer can be assigned to multiple MAC units for processing, which is not possible in the architecture proposed in [33].
  • Reduced processing latency—the SRMLC introduces a huge reduction in instance processing latency, as it allows for the usage of multiple MAC blocks for processing a single classification instance. The latency is reduced for all supported classifier types.
  • Energy efficiency—since the SRMLC uses sparse data representation, it suffers much less from the well known issue of power hungry data transfer between the DRAM and the accelerator. Improved energy efficiency is a consequence of the significantly reduced amount of data that needs to be transferred between the external DRAM and the accelerator core.
To the best of our knowledge, the SRMLC is the first reported hardware accelerator for sparse classifiers of this kind. In order to demonstrate functionality of the SRMLC, in this study we will also present algorithms for the training of sparse ANNs, SVMs and DTs and translate the compressed trained models into the sparse binary format, which can be directly handled by the SRMLC.
The remainder of this study is organized in the following way. In Section 2, we will present training algorithms for sparse classifiers which can be used to obtain predictive models that are significantly reduced in size. Three algorithms are presented: one for sparse ANN training, another for sparse DT induction and the third for sparse SVM training. In Section 3, a universal reconfigurable hardware accelerator for sparse classifiers is introduced. The proposed hardware accelerator benefits from the sparsity in predictive models and performs faster classifications by computing only multiplication operations with non-zero operands. In Section 4, we report the experimental results of the benchmarking of our SRMLC architecture performance using datasets from the UCI machine learning repository. The conclusion and final remarks are given in the Section 5.

2. Training of Sparse Predictive Models

In order to provide a sparse representation that will be efficiently processed by the SRMLC, a classifier’s training process is modified by removing model parameters, according to the desired level of compression. However, the reduction in predictive model size has to take into account the resulting model accuracy drop. Usually, in the available literature, 1% of the absolute accuracy drop is acceptable when sparsifying the predictive model, so we have used this as a reference during our training process: model sparsification stops when the absolute accuracy of the sparse model is more than 1% below the absolute accuracy of a non-sparsified model. The same approach is used for all three classifiers, even though the training process itself is significantly different for each classifier type.

2.1. Pruning of ANN Model during Training

First, we will present a pruning algorithm of ANN model, which is used during the ANN training phase, in order to obtain sparse ANN model.
An ANN can be considered as a weighted directed graph, where nodes are artificial neurons, which are connected by directed weighted edges. Recurrent ANNs are ANNs which allow feedback connections, while feed-forward ANNs do not. In Multi-Layer Perceptron, a widely used type of feed-forward ANNs, individual neurons are organized into layers and the only connections that are allowed are the ones between adjacent layers of the network. Besides that, neurons are connected in a feed-forward manner, with no connections between neurons of the same layer and no feedback connections between the layers. The structure of the MLP ANN is shown in Figure 1.
Three types of layers exist in MLP ANN: input, hidden and output. The input layer is composed of N input neurons, where N is the number of problem attributes. The output layer calculates the output values of the MLP ANN, while all layers between the input and the output are considered as hidden. Each hidden layer consists of an arbitrary number of neurons. Each (let us say k t h ) neuron in the hidden or the output layer calculates its output as:
y k = f ( w · x + b k )
where x is the input vector for a neuron containing N neuron outputs from the previous ANN layer
x = ( x 1 , x 2 , , x N ) ,
w is a weight vector
w = ( w k 1 , x k 2 , , x k N ) ,
and b k is a scalar, usually called the offset. For neurons in the input layer, x is a vector holding attribute values of the input instance. As mentioned above, for the neurons within hidden and output layers, vector x is the vector composed of the outputs from neurons in the previous layer of the network. Weight vector w for each layer has the same length as x for that particular layer. Function f : R R is called the activation function and it can be either a linear or nonlinear real function. Many different activation functions can be used in MLP ANNs, for example, the hyperbolic tangent and sigmoid functions:
f t a n h ( x ) = t a n h ( x )
f s i g m o i d ( x ) = 1 1 + e x .
In order to understand the ANN pruning process, let us observe a hidden or the output layer with M neurons and with N-dimensional input x . Then, the output of this layer can be written as
Y = F ( x · W + B )
where x 1 × N = ( x 1 , x 2 , , x N ) is an input for the layer, W is a matrix
W N × M = w 11 , w 12 , , w 1 N w 21 , w 22 , , w 2 N w M 1 , w M 2 , , w M N
and B 1 × M = ( b 1 , b 2 , , b M ) is a vector consisting of the corresponding layer’s neuron offsets. Finally, Y 1 × M = ( y 1 , y 2 , , y M ) is an output vector consisting of the outputs from all neurons in the given layer.
The training of the ANN is the process by which the dataset consisting of N i n s t problem instances is applied to the ANN. During the training, network parameters W and b (for each layer) are fine-tuned to provide the ANN output, for each given input instance, that is equal to the expected output.
The pruning ANN algorithm is run once the ANN training is complete. The goal of the pruning algorithm is to determine which network weights are the least significant and set corresponding elements of matrix W to zero, for each ANN layer. The pruning ANN algorithm iteratively repeats this procedure, as long as the accuracy drop of the reduced model is acceptable. As a result, the pruned ANN will have the majority of weights set to zero, allowing the SRMLC to skip all computations where these zero-valued weights are multiplicands in multiply operations. In order to prune the ANN, the pruning algorithm starts with a low pruning factor M I N _ P R U N _ F A C T (for example 10%), increasing the pruning factor by P R U N _ F A C T _ I N C _ S T E P (for example 5%) in each iteration.
At the beginning, Algorithm 1 initializes the current pruning factor and evaluates the non-pruned trained ANN model. At line 5, a main loop starts and repeats as long as the accuracy of a pruned model is not degraded. Algorithm creates an empty array a b s _ W _ a r r a y of the same size as W _ a r r a y and populates it with the absolute values from corresponding elements in W _ a r r a y , at lines 7–10. W _ a r r a y , which is an input to the algorithm, represents all connections within the MLP ANN and hence holds W matrices from Equation (5) for all layers in the given MLP ANN. At line 11, a required number of zero elements is determined based on the current pruning factor, number of ANN layers and matrix W size. At lines 13–34, n u m _ z e r o _ e l e m minimum elements in a b s _ W _ a r r a y are found and corresponding elements in t e m p _ W _ a r r a y are set to zero. In order to avoid selection of the same element several times, m i n _ e l e m _ s e t is used to store previously selected elements. Prior to updating c u r r e n t _ a c c at line 37, we retrain the MLP ANN with modified weights in order to increase the classifying accuracy, at line 36. Please note that t e m p _ W _ a r r a y is used for pruning, while W _ a r r a y is only updated once we are confident that the accuracy of pruned model is still acceptable, at the beginning of a new iteration. If W _ a r r a y was updated directly, the returned value from the algorithm would not be the correct one.
Algorithm 1 ANN_Pruning
     Input: W_array
     Output: pruned W_array
1:
c u r r e n t _ p r u n i n g _ f a c t o r M I N _ P R U N _ F A C T
2:
n o n _ p r u n e d _ a c c accuracy of model with weights W _ a r r a y
3:
c u r r e n t _ a c c n o n _ p r u n e d _ a c c
4:
t e m p _ W _ a r r a y W _ a r r a y
5:
while c u r r e n t _ a c c n o n _ p r u n e d _ a c c 1 % do
6:
     W _ a r r a y t e m p _ W _ a r r a y
7:
     a b s _ W _ a r r a y empty array same size as t e m p _ W _ a r r a y
8:
    for  i = 1 , 2 , , length ( t e m p _ W _ a r r a y )  do
9:
         a b s _ W _ a r r a y [ i ] = a b s ( t e m p _ W _ a r r a y [ i ] )
10:
    end for
11:
     n u m _ z e r o _ e l e m = c u r r e n t _ p r u n i n g _ f a c t o r lenght ( t e m p _ W _ a r r a y ) size ( W )
12:
     m i n _ e l e m _ s e t empty set
13:
    while  n u m _ z e r o _ e l e m > 0  do
14:
         v a l u e m i n M A X _ F L O A T
15:
         i m i n 1
16:
         j m i n 1
17:
         k m i n 1
18:
        for  i = 1 , 2 , , length ( t e m p _ W _ a r r a y )  do
19:
           for  j = 1 , 2 , , width ( W )  do
20:
               for  k = 1 , 2 , , height ( W )  do
21:
                    W c u r r e n t a b s _ W _ a r r a y [ i ]
22:
                   if  W c u r r e n t [ j ] [ k ] < v a l u e m i n and ( i , j , k ) not in m i n _ e l e m _ s e t  then
23:
                       Add ( i , j , k ) into m i n _ e l e m _ s e t
24:
                        i m i n i
25:
                        j m i n j
26:
                        k m i n k
27:
                        v a l u e m i n W c u r r e n t [ j ] [ k ]
28:
                   end if
29:
               end for
30:
           end for
31:
        end for
32:
         t e m p _ W _ a r r a y [ i m i n ] [ j m i n ] [ k m i n ] = 0
33:
         n u m _ z e r o _ e l e m n u m _ z e r o _ e l e m 1
34:
    end while
35:
     c u r r e n t _ p r u n i n g _ f a c t o r c u r r e n t _ p r u n i n g _ f a c t o r + P R U N _ F A C T _ I N C _ S T E P
36:
    retrain ANN with weights t e m p _ W _ a r r a y
37:
     c u r r e n t _ a c c accuracy of model with weights t e m p _ W _ a r r a y
38:
end while
39:
return W _ a r r a y

2.2. DT Model Sparsification during Induction

For the given classification problem, represented by a set of n numerical attributes A i , i = 1 , 2 , , n , axis-parallel DTs compare a single attribute A i , from the test instance, against the corresponding threshold a i and check if A i > a i . Such test is performed in each of the DT nodes. Inducing (training) of axis-parallel (or orthogonal) DT assumes the assignment of an attribute to each DT node, hence the order of comparisons, as well as the threshold value required for each comparison, a i . Oblique DTs represent generalization of axis-parallel DTs, allowing multiple attribute testing in each DT node. As a result, oblique DTs are usually smaller in size, while providing higher classifying accuracy, when compared to corresponding axis-parallel DTs. In oblique DTs, multivariate testing is expressed with the following formula:
i = 1 n a i · A i + a n + 1 > 0
In Equation (6) coefficients a i , i = 1 , , n + 1 are called the hyperplane coefficients. Finding the optimal oblique DT is proven to be an NP-complete problem [57], so many oblique DT induction algorithms use some kind of heuristic in order to find sub-optimal hyperplane coefficients, some of them being [58,59]. HereBoy evolutionary algorithm [60] was used in [61] to solve the hard oblique induction problem, while the authors in [50] extended the algorithm in order to support the induction of sparse oblique DTs. In order to obtain sparse DTs with high accuracy, which will be processed by the SRMLC, we decided to use the similar recursive evolutionary algorithm for the induction of sparse DTs in this study.
Algorithm 2 builds maximally sparsified DT which has an acceptable accuracy drop, compared to the non-sparsified DT. At lines 1–2, non-sparsified DT is built using Algorithm 3 and its accuracy is evaluated on a validation subset. Using the same Algorithm 3, at lines 5–10, sparsified DTs are built, each time with increased sparsification factor (starting from M I N _ S P A R S _ F A C T , increased by S P A R S _ I N C _ F A C T in each iteration), until the evaluated accuracy drops below the tolerated threshold. Algorithm 3, used by Algorithm 2, is a recursive algorithm which builds sparse oblique DT, based on a target sparsification factor (required percentage of zero-valued coefficients in the output DT), provided as an input parameter. The other input for the algorithm is a set of input instances, where each instance contains the instance attributes and output class. At line 1, a new node is created. Lines 2–4 represent the terminating condition of the recursive algorithm—once all input instances belong to the same class, that root is marked as a leaf and the corresponding label is added. If this is not the case, assign the most appropriate label to this node before entering the loop at lines 7–22. In this loop, after finding sub-optimal hyperplane position by using the HereBoy algorithm, a required number of hyperplane coefficients, calculated from s p a r s e _ c o e f _ p e r c , is set to zero. This is completed in the loop at lines 11–19 where, one after the other, each coefficient from the copy of h y p e r p l a n e _ c o e f s is set to zero, followed by the calculation of resulting fitness. The coefficient which has the smaller impact on the fitness is considered the least important and set to zero after the complete set of coefficients has been investigated (lines 20–21). This is repeated until the percentage of zero-valued coefficients reaches s p a r s e _ c o e f _ p e r c . When completed, at lines 23 and 24, input instance set i n p u t _ i n s t a n c e s is split into two disjoint subsets based on their position relative to the hyperplane. Two subsets are then used as an input for recursive calls of Algorithm 3 (lines 25–26) where the right and the left subtree from the node r o o t are built in the same manner. Once a complete DT is built, the r o o t node representing the tree is returned from the algorithm. Next, we will explain in more detail the evolutionary algorithm F i n d _ b e s t _ h y p e r p l a n e _ p o s , which is invoked at line 8.
An input for Algorithm 4 is a set of input instances. First, it creates initial hyperplane coefficients providing that not all instances from i n p u t _ i n s t a n c e s are located on the same side of the hyperplane. The algorithm then iterates through a predefined number of generations, mutating hyperplane coefficients with certain probability in each generation. Mutation here refers to a random bit flip in the binary representation of hyperplane coefficients. If new, a mutated hyperplane has a better fitness compared to the old one, and it will proceed to the next generation as the best individual. At the end, after N U M _ G E N E R A T I O N S , the best individual will be returned back as the output of the algorithm.
In order to calculate a fitness, both in Algorithms 3 and 4, the Algorithm 5 is used.
Algorithm 5 first finds k as the total number of classes in the given classification problem. Then, the total number of input instances, N, is determined as the length of the input array i n p u t _ i n s t a n c e s which is used in the current DT node. N i is also determined as the number of training instances that belong to class i , i = 1 , , k , from the total of N instances. At the end, N 1 i is calculated as the number of instances belonging to class i , i = 1 , , k , which is located above the hyperplane represented by h y p e r p l a n e _ c o e f f i c i e n t s . Algorithm 5 returns value 0 f i t n e s s 1 .
Algorithm 2 Sparsify_oblique_DT
     Input: input_instances
     Output: maximally sparsified DT
1:
n o n _ s p a r s e _ m o d e l Sparse_oblique_DT_induction(input_instances, 0)
2:
n o n _ s p a r s e _ a c c evaluate n o n _ s p a r s e _ m o d e l on validation subset
3:
c u r r e n t _ s p a r s _ f a c t o r M I N _ S P A R S _ F A C T
4:
s p a r s e _ a c c n o n _ s p a r s e _ a c c
5:
while s p a r s e _ a c c n o n _ s p a r s e _ a c c 1 % do
6:
     s p a r s e _ m o d e l t e m p _ s p a r s e _ m o d e l
7:
     t e m p _ s p a r s e _ m o d e l  Sparse_oblique_DT_induction(input_instances, c u r r e n t _ s p a r s _ f a c t o r )
8:
     s p a r s e _ a c c evaluate t e m p _ s p a r s e _ m o d e l on validation subset
9:
     c u r r e n t _ s p a r s _ f a c t o r c u r r e n t _ s p a r s _ f a c t o r + S P A R S _ I N C _ F A C T
10:
end while
11:
return s p a r s e _ m o d e l
Algorithm 3 Sparse_oblique_DT_induction
     Input: input_instances, sparse_coef_perc
     Output: sparsified dt
1:
r o o t new node in DT
2:
if for all elements of i n p u t _ i n s t a n c e s output class is the same then
3:
    Declare r o o t as a leaf and set r o o t . l a b e l = i n p u t _ i n s t a n c e s . o u t p u t _ c l a s s
4:
else
5:
    Set r o o t . l a b e l to most frequent i n p u t _ i n s t a n c e s . o u t p u t _ c l a s s
6:
     r e m o v e d _ c o e f s emtpy set
7:
    repeat
8:
         h y p e r p l a n e _ c o e f s = Find_best_hyperplane_pos( i n p u t _ i n s t a n c e s )
9:
         b e s t _ f i t n e s s = Calc_fitness( h y p e r p l a n e _ c o e f s )
10:
         f i t _ d i f f b e s t _ f i t n e s s
11:
        for all  i n d e x in {1,2, …length( h y p e r p l a n e _ c o e f s )} \ r e m o v e d _ c o e f s  do
12:
           Copy h y p e r p l a n e _ c o e f s to n e w _ h y p e r p l a n e _ c o e f s
13:
            n e w _ h y p e r p l a n e _ c o e f s [ i n d e x ] 0
14:
            n e w _ f i t n e s s = Calc_fitness( n e w _ h y p e r p l a n e _ c o e f s )
15:
           if  b e s t _ f i t n e s s n e w _ f i t n e s s < f i t _ d i f f  then
16:
                w o r s t _ c o e f _ i n d e x i n d e x
17:
                f i t _ d i f f b e s t _ f i t n e s s n e w _ f i t n e s s
18:
           end if
19:
        end for
20:
         h y p e r p l a n e _ c o e f s [ w o r s t _ c o e f _ i n d e x ] 0
21:
        Add w o r s t _ c o e f _ i n d e x to r e m o v e d _ c o e f s
22:
    until percentage of zero elements in h y p e r p l a n e _ c o e f s s p a r s e _ c o e f _ p e r c
23:
     i n p u t _ i n s t a n c e s _ a b o v e all elements from i n p u t _ i n s t a n c e s above hyperplane
24:
     i n p u t _ i n s t a n c e s _ b e l o w all elements from i n p u t _ i n s t a n c e s below hyperplane
25:
     r o o t . r i g h t = Sparse_oblique_DT_induction( i n p u t _ i n s t a n c e s _ a b o v e , s p a r s e _ c o e f _ p e r c )
26:
     r o o t . l e f t = Sparse_oblique_DT_induction( i n p u t _ i n s t a n c e s _ b e l o w , s p a r s e _ c o e f _ p e r c )
27:
end if
28:
return r o o t
Algorithm 4 Find_best_hyperplane_pos
     Input: input_instances
     Output: hyperplane_coefficients
1:
h y p e r p l a n e _ c o e f initial hyperplane coefficients
2:
fori in 1, N U M _ G E N E R A T I O N S  do
3:
    if random(0..100) > m u t a t i o n _ p r o b a b i l i t y  then
4:
         n e w _ h y p e r p l a n e _ c o e f Mutate( h y p e r p l a n e _ c o e f )
5:
    else
6:
         n e w _ h y p e r p l a n e _ c o e f h y p e r p l a n e _ c o e f
7:
    end if
8:
    if Calc_fitness( n e w _ h y p e r p l a n e _ c o e f ) > Calc_fitness( h y p e r p l a n e _ c o e f ) then
9:
         h y p e r p l a n e _ c o e f n e w _ h y p e r p l a n e _ c o e f
10:
    end if
11:
end for
12:
return h y p e r p l a n e _ c o e f
Algorithm 5 Calc_fitness
     Input: hyperplane_coefficients, input_instances
     Output: fitness
1:
k number of classes of the classification problem
2:
N len( i n p u t _ i n s t a n c e s )
3:
for i = 1 , , k do
4:
     N i number of training instances that belong to class i
5:
     N 1 i number of training instances that belong to class i and are located above hyperplane defined by h y p e r p l a n e _ c o e f f i c i e n t s
6:
end for
7:
f i t n e s s 1 + 1 N i = 1 k N 1 i · l o g 2 N 1 i j = 1 k N 1 j + i = 1 k N i N 1 i · l o g 2 N i N 1 i N j = 1 k N 1 j
38:
return f i t n e s s

2.3. Attribute Sparse Training of SVM

Similar to other supervised machine learning algorithms, SVMs are first trained during the learning phase, followed by the predicting phase when SVMs are used to classify input instances. During the learning phase, a training set T S with m instances is used: T S = { x i , y i } , i = 1 , 2 , , m , x i X R n , y i Y = { + 1 , 1 } . The goal of SVM training is to design a hyperplane which will separate “positive” input instances from the “negative” ones, while trying to maximize the margin between the hyperplane and the closest instances on both sides. Hyperplane equation is
w T · x + b = 0 , w , x R n .
Even though the hyperplane is designed with constraint to maximize the distance from the closest input instances, in general, this condition cannot be fulfilled for all input instances. In order to solve this, the SVM algorithm allows the incorrect classification for some of the instances from the training set. The problem of finding an optimal separating hyperplane can be defined formally as the constrained quadratic programming (CQP) problem:
min w , b 1 2 w 2 + C i = 1 m ε i y i ( w T x + b ) 1 ε i , ε i 0 , i 1 m C > 0
In the optimization problem given above, one part 1 2 w 2 positions the hyperplane so that the margin is maximized, while the second part C i = 1 m ε i relocates the hyperplane in order to minimize the number of misclassified training set instances. A parameter C defines the trade-off between those two complementary conditions. By using Lagrange multipliers, the original CQP problem is transformed into its dual QP form, which is easier to solve:
max α r T α 1 2 α T W α α = α 1 , α 2 , , α m , r = r 1 , r 2 , , r m , y = y 1 , y 2 , , y m w i j = y i y j K x i , x j , i = 1 , , m , j = 1 , , m 0 α i C , r i = 1 , i = 1 , , m y T · α = 0
In the dual QP problem definition from above, W is a symmetric positive semidefinite m × m matrix. Beside input instance labels y i , y j , each element w i j from W is calculated by using a kernel function K. Some of the most popular kernel functions are
K x i , x j = x i · x j + 1 d , called polynomial K x i , x j = t a n h a x i · x j + b , called sigmoid
An efficient algorithm for solving the QP problem called Sequential Minimal Optimization (SMO) is proposed in [62]. Once a training phase is completed, a majority of Lagrange multipliers α i will be zero, and only non-zero multipliers will be the ones corresponding to, so called, support vectors. These are the input instances that are located closest to the hyperplane, from both the “positive” and “negative” side. A number of support vectors (l) are usually significantly smaller than the total number of training instances: l < < m . In predicting phase, only support vectors are used for the classification of a new input instance:
V x = b + i S V y i α i K x i , x
where x i is the support vector and x is the input instance to be classified. If the result of V ( x ) is negative, an input instance is classified as a class −1; otherwise, it is classified as +1. A generalization of the presented mathematical models and methods, which allows for multi-class prediction, is proposed in [63].
In order to decrease the number of multiplications during the predicting phase, Algorithm 6, presented below, will eliminate some of the input instance attributes from the input instance set. This will be done by setting “the least significant” attributes to zero, resulting in the reduction in the multiplication number during the input instance classification.
Algorithm 6 first trains SVM by using the original input dataset and then evaluates the model at lines 1–2. At line 3, an initial value of a target sparsification percentage is set using the M I N _ S P A R S _ P E R C parameter. A main loop (lines 6–22) is executed until the accuracy of a sparsified model drops below the tolerated lower threshold, calculated from the accuracy of the non-sparsified model. Within the loop, at line 8, this algorithm sorts the input dataset in descending order with respect to the number of non-zero attributes within each input instance. As a result, the first input instance in the dataset will be the one with the largest number of non-zero attributes. The algorithm then calculates c u r r e n t _ s p a r s e _ p e r c at lines 9–11, prior to entering the inner loop (lines 12–18). In this loop, the algorithm starts with a selection of the first input instance from the dataset. Recall that this is the input instance with the largest number of non-zero attributes. Then, “the least significant” attribute from that input instance is set to zero at lines 14–15. This attribute is selected as the one with the smallest absolute value. After eliminating the least significant attribute, c u r r e n t _ s p a r s e _ p e r c is updated (line 16) and i n p u t _ i n s t a n c e s is re-sorted since the input instances within the dataset have been modified. This inner loop is repeated until a desired t a r g e t _ s p a r s e _ p e r c is reached. When the loop completes, a standard SVM training is invoked on the sparsified input dataset. As a result, a trained SVM will consist of sparse support vectors, eventually leading to improved performance of the hardware accelerator that implements such SVM. Please note that, similar to the pruning/sparsification of ANNs and DTs, s p a r s e _ s v m is updated based on t e m p _ s p a r s e _ s v m only when a current sparsified predictive SVM model has the acceptable accuracy (beginning of the main loop, line 7).
Algorithm 6 Attribute_sparse_SVM_training
     Input: input_instances
     Output: sparse support vectors
1:
n o n _ s p a r s e _ s v m Run SVM training on i n p u t _ i n s t a n c e s
2:
n o n _ s p a r s e _ a c c Evaluate SVM using n o n _ s p a r s e _ s v m
3:
t a r g e t _ s p a r s e _ p e r c M I N _ S P A R S _ P E R C
4:
s p a r s e _ a c c n o n _ s p a r s e _ a c c
5:
t e m p _ s p a r s e _ s v m n o n _ s p a r s e _ s v m
6:
while s p a r s e _ a c c n o n _ s p a r s e _ a c c 1 % do
7:
     s p a r s e _ s v m t e m p _ s p a r s e _ s v m
8:
    Sort i n p u t _ i n s t a n c e s descending wrt number of non-zero attributes
9:
     c u r r e n t _ z v number of zero-valued attributes within i n p u t _ i n s t a n c e s
10:
     t o t a l _ a t t total number of attributes within i n p u t _ i n s t a n c e s
11:
     c u r r e n t _ s p a r s e _ p e r c c u r r e n t _ z v / t o t a l _ a t t
12:
    while  c u r r e n t _ s p a r s e _ p e r c < t a r g e t _ s p a r s e _ p e r c  do
13:
         s e l e c t e d _ i n s t a n c e i n p u t _ i n s t a n c e s [ 0 ]
14:
         s e l e c t e d _ a t t r i b u t e non-zero attribute from s e l e c t e d _ i n s t a n c e with the smallest absolute value
15:
         s e l e c t e d _ a t t r i b u t e 0
16:
        Update c u r r e n t _ s p a r s e _ p e r c accordingly
17:
        Update/Sort i n p u t _ i n s t a n c e s
18:
    end while
19:
     s p a r s e _ s v m Run SVM training on sparsified i n p u t _ i n s t a n c e s
20:
     s p a r s e _ a c c Evaluate SVM using s p a r s e _ s v m
21:
     t a r g e t _ s p a r s e _ p e r c t a r g e t _ s p a r s e _ p e r c + S P A R S _ I N C _ P E R C
22:
end while
23:
return s p a r s e _ s v m

3. Sparse Reconfigurable Machine Learning Classifier

In order to benefit from sparse classifier models, a dedicated hardware accelerator, called the SRMLC (sparse reconfigurable machine learning classifier), is developed. A proposed architecture was inspired by a previously published accelerator [33], which can be reconfigured to support different classifier types, but cannot take advantage of sparse classifier models. The SRMLC, proposed in this study, is a novel architecture, which is designed and optimized to work with such sparse classifiers.
A proposed SRMLC architecture has a reduced instance processing latency and enhanced throughput when compared to the RMLC architecture published in [33]. The instance processing latency is reduced as a result of parallel and simultaneous DOT product calculation. Additionally, as a consequence of sparse data processing, outputs are calculated faster, since a significant number of DOT product multiplications are skipped, which results in a higher throughput.
The presented SRMLC architecture contains three main hardware modules, as shown in Figure 2.
The first module (TOP-CTRL) controls the operation of the complete accelerator design. After reading configurations from the memory through the AXI-Full interface, TOP-CTRL configures other blocks via dc-config-bus and rc-cfg-bus interface busses, depending on the specific configuration.
The main CPU in the system can additionally configure the accelerator core through the AXI-lite interface. The configuration registers related to the control of the entire accelerator are located in the CONFIG-REGS module. One of the RMLC core features, especially important for understanding the section with the experimental results, is to fetch multiple input instances as a single memory block in a so-called batch mode. With this approach, the impact of DRAM memory latency is diminished and higher throughput is achieved.
For all types of supported predictive models, the second module (CALC) calculates DOT products, which are the core operations during the input instance classification. The CALC module receives the input instance from TOP-CTRL block. The output of this module is an array of calculated DOT products, which will be used by the RECONF module.
The third module (RECONF) is a reconfigurable block, which, according to the configuration, determines the type of currently active classifier. The RECONF module receives, as an input, an array of calculated DOT products from the CALC module and uses them to compute the classification results at the output.
The architecture of the CALC module is shown in Figure 3. The core of the CALC module is the array of DOT module instances, where each calculates a single DOT product between the input data vector and coefficient/weight vector, defined by the used predictive model (DT, SVM or ANN). As the SRMLC accelerator core can be parametrized, L d , which is the number of DOT module instances within the array, is one of the most important system parameters. Each DOT module within the array can be configured through the configuration bus (dc-config-bus). The input data vector is transferred to DOT modules via the CALC module controller (CALC-CTRL). It is actually transferred in segments, as explained later in the text.
The architecture of the DOT module is shown in Figure 4. Please note that all submodules in the figure are shown conceptually, since the actual implementation contains more than one level of pipeline processing. The DOT module is the most important for the system performance and, in most configurations, it also utilizes the most hardware resources.
In order to support a sparse data processing, the configuration of each DOT module consists of classifier weights and increment values, stored within the internal DOT module memory (CFG-MEM). Classifier weights are coefficients that are used in DOT products for a given classifier type—weights in MLP ANNs, sparse hyperplane coefficients in DTs and sparse support vector coefficients in SVMs. Due to the compression of classifier weights, increment values are also stored in CFG-MEM to enable reconstruction of the actual positions within the original dense weight/coefficient vector. For example, assume that 10 pruned/sparsified classifier weights are 10, 0, 0, 25, 0, 0, 0, 0, 129, 38. For such a small compressed classifier weights segment, values stored in CFG-MEM would be:
  • Classifier weights: 10, 25, 129, 38.
  • Increment values: 0, 3, 5, 1.
Please note that due to a narrower dynamic range of increment values, they can be represented with fewer bits. Specifically, in the SRMLC architecture, weights are stored as 16-bit wide words and increments are stored as 4-bit wide nibbles, which results in the reduction in memory required for storing predictive model weights.
CFG-MEM memory is a main consumer of the memory resources within the DOT module. It is modeled so that the highest possible speed can be achieved with FPGA implementation. Additionally, the model is such that it can be easily mapped to the memory resources of FPGA devices, which is why this module is the main consumer of memory resources. The module also contains the control logic necessary to control multiple phases of a pipeline processing.
Figure 5 shows how the compressed classifier weights are stored in CFG-MEM memory. Within each memory location, a single non-zero classifier weight (denoted by V), and its corresponding increment value (denoted by I), is stored. CFG-MEM memory is divided into a number of sections. In the case of processing SVMs, each section holds the non-zero coefficients of a single support vector. In the case of processing MLP ANNs, each section holds the non-zero weights of one neuron. Finally, in the case of DT processing, one section holds the non-zero hyperplane coefficients of a single DT node. The section number is shown as the subscript of V and I in Figure 5, and the shaded locations indicate memory locations belonging to one section. The numbers shown below the V i and I i symbols indicate the index of a non-zero classifier weight and its corresponding increment value, within the current section. Please note that the width of the given section depends on the number of contained non-zero weights. Hence, it is not necessary that all sections within the CFG-MEM have the same width.
The input vector values, obtained from the other input of the DOT module, are sent directly to the selection module (IFM-SEL). The IFM-SEL module, with respect to the increment values from CFG-MEM, determines which values from the input vector are required for the calculation, while remaining vector values are skipped in order to avoid multiplications with zero-valued operands.
The main component of the IFM-SEL module is the multiplexer, which selects the correct input vector value as an operand for multiplication. A multiplexer requires LUTs for implementation, so this module is the main consumer of LUTs in the FPGA implementation.
The outputs of the IFM-SEL module are used by the MAC-CALC module, which performs multiplication operations and accumulates the results in order to calculate the DOT product. The main goal when designing this module was to implement it within a single DSP block of the FPGA device, with the smallest possible utilized logic overhead. Therefore, this module is the main consumer of DSP blocks during FPGA implementation of the accelerator core.
Each of the submodules within the DOT module is designed to consume the critical FPGA resources (DSP, memory and random logic-LUTs) in a balanced way. With such an approach, the entire architecture scaled well, when increasing the available hardware resources of the FPGA device, since all resources were consumed equally. This is in stark contrast to the RMLC architecture which failed to balance the utilization of memory resources and, therefore, scaled poorly.
Figure 6 shows the architecture of the RECONF module. The SHIFT-CUT block receives the array of calculated DOT roduct values and stores them internally, allowing DOT modules to process new input vector values, which results in a specific course grained parallelism within the SRMLC architecture. Buffered values are stored within the shift register, large enough to store L d DOT product values. The lowest L r out of those L d values are passed to computing lanes (RC-LANE), where L r is the number of used computing lanes within the design and is also an additional SRMLC configuration parameter. After distributing L r values to appropriate computing lanes, the SHIFT-CUT block will shift contained DOT products in order to prepare the next batch of L r points for processing.
Each RC-LANE can perform multiple functions, depending on the configuration of the SRMLC accelerator. Figure 7 shows that the RC-LANE module contains several pipeline stages, where each is configurable via the configuration bus. Depending on the current configuration, the RC-LANE can perform non-linear function evaluation, multiplication or shift contained value in order to adjust its fixed point number format. Each of these stages can be skipped, if not needed for the calculation.
The reduction submodule from the RECONF (RC-REDUCE) receives all inputs from the RC-LANEs and performs different post-processing steps, depending on the current configuration. When the final stages of SMVs are processed, it will accumulate received values. In the case of MLP classifier processing, the RC-REDUCE module will pass calculated values from neurons or accumulate values depending on the configuration. At the end, the RC-REDUCE module is in charge of the selection process within decision trees, selecting the right or the left subtree, based on a previously calculated DOT product.
Next, we will show how the RC-LANE modules are configured in order to process SVM, DT or MLP ANN classifier types. Please notice that Figure 8, Figure 9 and Figure 10 show the required configuration of a single RECONF block for simplification. In the examples below, active blocks within the RECONF module are shaded.
Figure 8 presents the configuration of one RECONF module in the case of DT processing. The figure also shows an example DT, as well as the way the DT is mapped to a corresponding configuration, stored inside the RC-REDUCE module. In this configuration, each DOT module computes a DOT product of the input instance and assigned DT node hyperplane coefficients and outputs the result for the RECONF module. The selected DT nodes’ hyperplane coefficients are stored inside the CFG-MEM module, labeled with n d 0 , n d 1 in Figure 8. In this configuration, RC-LANE modules only adjust the number formats of computed DOT products. The RC-REDUCE module takes computed DOT products and iteratively compares them with the appropriate threshold values, t i , while traversing a DT from the root node until a leaf node is reached.
In the example DT from Figure 8, a classification of input instance will go as follows. In the first step, the DOT product d 0 will be compared to the threshold value t 0 . Depending on the outcome, the RC-REDUCE module will select which DOT product to use for the following comparison. For example, let us assume that the result of the d 0 > t 0 comparison is such that we should visit the DT node n 1 next. This means that the RC-REDUCE module will next compare the dot product d 1 with threshold t 1 . This procedure is repeated until RC-REDUCE reaches a leaf node. This completes the current input instance classification, and the computed input instance class membership value is transmitted through the v a l _ o u t output port. For example, if the result of the d 1 > t 1 test leads to reaching the c 0 leaf node, the classification of the input instance is completed and the RC-REDUCE module will output the c 0 value on the v a l _ o u t output port.
Figure 9 shows one non-linear SVM configuration. In this configuration, each DOT module calculates DOT product of the input instance and the subset of support vectors, associated with the corresponding DOT module. The subset of support vectors is stored within the CFG-MEM module, labeled with s v 0 , s v 1 in the Figure 9. The calculated DOT values are passed from the CALC module to the RECONF module. In the Figure 9 these values are designated as d i , i = 0 , 1 , , L r 1 . When operating in SVM mode, RC-LANE modules use non-linear memory to calculate the kernel function, specified by the user. The values after calculating the non-linear function are labeled with a i , i = 0 , 1 , , L r 1 . The MUL submodule is used to multiply non-linear values with Lagrange multipliers, α i , i = 0 , 1 , , L r 1 . SHIFT modules are used to adjust number formats, in order to minimize a quantization loss during the calculation. The values k i , i = 0 , 1 , , L r 1 , obtained after multiplication with Lagrange multipliers, are sent to the RC-REDUCE module, which accumulates them in this operating mode. With such configuration, accumulated sum of values k i is obtained. Additionally, this module adds offset value to the accumulated sum and compares it with zero to obtain the final SVM classification result of the current input instance. Lagrange multipliers, kernel function samples and the offset are an integral part of the SVM architecture configuration and they are set by the TOP-CTRL module.
Figure 10 shows the SRMLC configuration processing the sparse MLP classifier with a single hidden layer. As shown in Figure 10, when the architecture is configured to work as MLP, each DOT module calculates DOT products of the input instances and neuron weights for each neuron from a subset associated with a corresponding DOT module. The subset of neuron weights is stored inside the CFG-MEM module, labeled with n 0 , n 1 in Figure 10. The calculated neuron output values are forwarded to the RECONF module, marked with d i , i = 0 , 1 , , L r 1 in the Figure 10. RC-LANE modules receive these values and pass them to non-linear memory, where the samples of specified activation function are stored. In this way, the output values a i , i = 0 , 1 , , L r 1 are obtained after applying the activation function, as shown in Figure 10. These values are sent to the RC-REDUCE module which only forwards them to the output, without additional processing.

Analytical Model of Instance Processing Throughput of SRMLC Architecture

In this section, we will provide an analytical model of the SRMLC architecture that shows the number of cycles required to classify a single input instance. The analysis will focus on the instance processing throughput of the architecture, so the latency required to deliver the data to the computing module will be neglected. The following description of the analytical model corresponds to the operation of the SRMLC architecture in a batch mode.
The architecture contains two main computing modules: the CALC module and the RECONF module. These two modules work in parallel, organized as a two-stage pipeline. Please note that both the CALC and RECONF modules internally also use pipelining. For different configurations of the SRMLC architecture, one of these modules will be a processing bottleneck during the instance classification.
Let N p r o c be the number of tree nodes, the number of support vectors or the number of neurons, depending on the architecture configuration (DT, SVM or MLP). Let L d be the number of DOT modules available in the current configuration of the SRMLC architecture. When N p r o c L d , N p r o c DOT modules will be active in parallel during the current input instance processing in a single run. However, if N p r o c > L d , the current input instance will be processed in N p r o c / L d iterations during which all L d DOT modules are engaged and the last iteration in which the number of active DOT modules equals:
D = N p r o c mod L d
Let L r be the number of RC-LANE modules within the RECONF module, and let N r be the number of cycles necessary to perform a single instance classification by the RECONF module. The architecture should always be configured so that relation L d > L r holds. Then:
N r = N p r o c / L d L d / L r + D / L r , N p r o c > L d D / L r , N p r o c < = L d
Let N n z v be the number of non-zero weights and let N c be the number of cycles required by the DOT module to compute all DOT products using the current instance. Then, due to a three cycles delay of pipeline processing:
N c = ( N n z v + 3 ) N p r o c / L d
If N a is the input instance attributes number, and P is the factor with which the classification models are pruned (percentage of weights that will be set to zero), then,
N c = ( N a ( 1 P ) + 3 ) N p r o c / L d
Since the CALC and RECONF modules are connected in a pipeline, the number of cycles, N, required for the SRMLC architecture to classify a single input instance, equals
N = m a x ( N c , N r )
Throughput with which the SRMLC architecture can process input instances can be calculated as:
T h r o u = f N = f m a x ( N c , N r )
where f is the operating frequency of the SRMLC accelerator.
From the above analysis, it can be concluded that in order to obtain higher throughput, by increasing the pruning factor, the architecture needs to be configured so that N c becomes a dominant factor in Equation (12).
For fixed architecture parameters ( L d and L r ), the values of N r and N c change as a staircase function when N p r o c is changed. N r is increased by 1 whenever N p r o c is increased by L r . N c is increased by ( 1 P ) N a , when N p r o c is increased by L d . As a result, the value of N r increases more frequently in smaller steps. If we want the relation N c > N r to hold, then the worst case scenario happens if N p r o c reaches the value which causes the update of N c . That is the case when D = L d , so:
D / L r = L d / L r
In that case, Equation (9) becomes:
N r = N p r o c / L d L d / L r
From Equations (11) and (15), we can derive the condition that the CALC module is the real processing bottleneck, meaning that the sparsification/pruning factor has an impact on the processing throughput of the accelerator.
N c > N r
( N a ( 1 P ) + 3 ) N p r o c / L d > L d / L r N p r o c / L d
N a ( 1 P ) + 3 > L d / L r
P < 1 L d / L r 3 N a
If Equation (19) holds, the sparsification/pruning factor P increases throughput for the given architecture parameters ( L d and L r ) and the problem instance ( N a ). In the experimental results (Section 4), the SRMLC architecture is configured so that Equation (19) holds for almost all cases.

4. Experimental Results

In order to benchmark our approach, we have conveyed several experiments and the results are presented in this section. In the first subsection, we show the result of ANN pruning by using our Algorithm 1 and the results of DT and SVM sparsification by using Algorithms 2 and 6. In the second subsection, we compare our work with previously published work [33], while in the third subsection we present the comparison with embedded software implementations of ML predictive models.

4.1. Experiments for Pruning ANNs and Sparsification of DTs and SVMs

In order to be able to benchmark the performance of Algorithms 1, 2 and 6, UCI machine learning repository datasets from Table 1 were used. Short names shown in Table 1 correspond to the names used in Figure 11, Figure 12, Figure 13, Figure 14, Figure 15, Figure 16, Figure 17, Figure 18, Figure 19, Figure 20, Figure 21 and Figure 22.
The Tensorflow framework [64] has been used for evaluating Algorithm 1. The instances from the UCI machine learning repository with missing values are removed from datasets, while all results reported below are the averages of five ten-fold cross-validation experiments. This assumes that the original dataset D is divided into 10 non-overlapping subsets, D 1 , D 2 , , D 10 , which consist of uniformly selected instances from D. During each cross-validation iteration, ANN is built by using the instances from the D \ D i set and tested on D i the set ( i = 1 , , 10 ). By repeating this procedure five times, 50 ANNs are constructed in total for each dataset. Then, the average classification accuracy is calculated as the percentage of input instances, which are correctly classified. In order to obtain the ANN pruning curve, which shows how the accuracy of a pruned ANN drops as the pruning factor increases, we slightly modified Algorithm 1. The Algorithm 1 presented in Section 2 exits the main loop as soon as the accuracy of a pruned ANN drops more than 1% below the absolute accuracy of non-pruned ANN. Instead of this upper limit, for experimental purposes, we have swept c u r r e n t _ p r u n i n g _ f a c t o r from M I N _ P R U N _ F A C T to M A X _ P R U N _ F A C T . In our experiments, a M I N _ P R U N _ F A C T parameter was set to 5% and a M A X _ P R U N _ F A C T parameter was set to 99%.
Figure 11, Figure 12, Figure 13 and Figure 14 show the results of training and pruning the ANN with a single hidden layer which has 64 neurons on 15 datasets from the UCI repository. The presented charts show the impact of a pruning factor (X-axis) on classification accuracy (Y-axis), where the name of the dataset is given above the chart. While the blue line shows the accuracy of the pruned ANN, which depends on a pruning factor and eventually drops, a red dashed line shows the lower limit of a pruning tolerance, since it is drawn 1% below the value of the non-pruned ANN absolute accuracy. Figure 11, Figure 12, Figure 13 and Figure 14 show that m a x _ p r u n i n g _ f a c t o r above 80% can be used with the accepted accuracy drop on 13 out of 15 datasets, which means that, most of the time, more than 80% of the ANN weights can be set to zero, without any loss in accuracy. During the training and pruning, several ANN architectures were used, containing multiple hidden layers and a varying number of neurons per hidden layer. Neither increasing number of hidden layers nor increasing number of neurons within the hidden layer above 64, resulted in better accuracy on the chosen datasets.
Figure 15, Figure 16, Figure 17 and Figure 18 show results of the sparse oblique DT induction, performed on the same subset of datasets from the UCI repository which were used for the training and pruning of ANNs. Once again, we slightly modified Algorithm 2 in order to obtain the sparsification curve. Hence, instead of exiting the main loop once the accuracy of sparse DT drops below the tolerated lower accuracy limit, we sweep c u r r e n t _ s p a r s _ f a c t o r between M I N _ S P A R S _ F A C T and M A X _ S P A R S _ F A C T in our experiment set to 10% and 90%, respectively. In Figure 15, Figure 16, Figure 17 and Figure 18, a blue line shows the accuracy of a sparse DT, which decreases as a sparsification factor increases (similar to pruning of ANNs). A red dashed line shows a lower limit for accepted accuracy, calculated as an absolute 1% drop from the non-sparse DT model accuracy. Although sparsification factors are lower compared to ANNs, the results show that a significant percentage of DT coefficients can be set to zero during induction, with the acceptable accuracy drop. However, opposite from ANN pruning, during DT sparsification, high percentages of sparsification factor could not be obtained for most of the datasets, since iterative evolutionary algorithm could not converge in those scenarios. This is the reason why, for some datasets, M A X _ S P A R S _ F A C T of 90% could not be reached in Figure 15, Figure 16, Figure 17 and Figure 18. Similar to the experimental results for MLP ANNs, all reported results are calculated as averages of five ten-fold cross-validation experiments.
Figure 19, Figure 20, Figure 21 and Figure 22 show results of the attribute sparse SVM training, performed on the same 15 UCI datasets, which were used for the training and pruning of the ANNs and the sparse induction of DTs. As with other two algorithms, we had to modify Algorithm 6 in order to be able to draw the sparsification curve for SVM predictive models. Hence, instead of using the main loop exiting condition at line 6, we swept t a r g e t _ s p a r s _ p e r c between M I N _ S P A R S _ P E R C set to 5% and M A X _ S P A R S _ P E R C set to 95%. Similar to previous charts, a blue line was used to present the accuracy of an attribute sparse SVM for a given dataset, decreasing as the sparsification factor increases. A dashed red line shows the lower limit for tolerated accuracy and it is calculated after subtracting the 1% absolute accuracy drop from the non-sparse SVM model accuracy (accepting absolute 1% for the tolerated accuracy drop). As results show, at least 60% of the sparsification factor can be achieved for the majority of the used datasets. Similar to previously presented results for ANN pruning and DT sparsification, results shown here are calculated as averages of five ten-fold cross-validation experiments.
Predictive model evaluations are presented in Table 2, Table 3 and Table 4. For the dataset given in the first column, the achieved sparsification/pruning factor is shown in column 2. The accuracy of non-sparsified and sparsified models is presented in columns 3 and 4, respectively, while the last two columns show corresponding size, expressed as the number of model parameters (weights/coefficients).
From Table 2, Table 3 and Table 4, one can conclude that the ANN predictive model performs better than the other two with the average accuracy of 84.58% and the average maximum achieved pruning factor of 81.33%. For the SVM predictive model, an average accuracy on the given datasets is 79.64%, with an average maximum achieved sparsification factor of 57.67%. Finally, the DT classifier can be sparsified 61.71% on average, with a slightly worse average accuracy of 77.06%. Columns 3 and 4 from Table 2, Table 3 and Table 4 also show that, for all three classifier types, even heavily sparsified predictive models can score a better predicting accuracy, when compared to a non-sparsified model, for some datasets.

4.2. Comparison with RMLC Architecture

In order to compare the resource utilization and scalability of the RMLC and SRMLC architectures, both of them were implemented by using FPGA technology. Xilinx Vivado Design Suite [65] was used for the implementation of both architectures, targeting the ZU9 FPGA device, with default values of settings for the synthesis and implementation. In order to measure an achievable instance processing performance, Zynq Ultrascale+ MPSoC ZCU102 Evaluation Board [66] was used as the test platform for conducting experiments. Please note that the ZCU102 evaluation board was used to conduct the experiments due to its availability. However, as results presented in Table 5 illustrate, smaller instances of the SRMLC architecture can easily fit even the entry level FPGA devices.
Table 5 presents a power consumption dependency from the number of used multiply-accumulate blocks within the design. The first column (DOT#) shows the number of used multiply-accumulate blocks, the second one shows the operating frequency after the synthesis and the following three columns show the usage of LUTs, BRAMs and DSPs, respectively. The last column (power) shows the estimated power consumption of the implementation. From Table 5, it can be seen that the SRMLC architecture is highly scalable. The smallest SRMLC instances (with 32 and 64 DOT modules) can be fitted to the cost-effective FPGA devices from the Spartan-7, Kintex-7 and Zynq-7000 families. If more performance is required, larger SRMLC instances can be used.
For comparison purposes, Table 6 shows resource utilization after the implementation of RMLC FPGA [33]. The first column (RB#) shows the number of used reconfigurable blocks in the RMLC architecture, which have a similar function to DOT modules in the SRMLC architecture. As it can be seen from Table 5 and Table 6, the SRMLC architecture, presented in this study, provides significantly better scalability when compared to the RMLC architecture. In the SRMLC, a single DOT unit requires only 1 DSP block, 1 BRAM and 300 LUTs, which ensures an optimal utilization of available FPGA resources. This is not the case for the architecture proposed in [33], where the exceeding utilization of BRAM blocks is a limiting factor for efficient scalability of the RMLC architecture, clearly seen from Table 6, where the largest instance of the RMLC architecture that can fit inside the ZU9 FPGA device only has 96 RB units. This is significantly less than the largest SRMLC architecture that fits inside ZU9 FPGA and contains 448 DOT units, as can be seen from Table 5. This improved scalability on FPGA platforms was one of the main architecture design goals during the development of the SRMLC.
The ASIC implementation layout is shown in Figure 23, while the summary is provided in Table 7 for comparison purposes. Our block-level implementation was developed in the Genus [67] and Innovus [68] Cadence tools, using 40 nm TSMC process standard libraries.

4.2.1. Comparison of Scalability

A scalability comparison of two architectures is shown in Figure 24. All architecture configurations are implemented for the ZCU102 development board.
We set the smallest configurations to have 32 RB / DOT modules. We then increased the number of RB / DOT modules with a step of 32. For RMLC configurations we stopped at 96, as this is the largest configuration that can fit on a ZCU102 development board. The graphs also show the limits for different FPGA devices from the Xilinx Ultrascale+ family. When the graph intersects one of these lines, it represents the largest possible number of RB / DOT modules that can be implemented on the corresponding FPGA device.
The weak point of the RMLC architecture is the consumption of BRAM resources. Therefore, we quickly approach the point on the graph (Figure 24) where the limit for the XCZU9EG device is crossed (XCZU9EG FPGA is used on the ZCU102 development board). As seen from Figure 24, all configurations for the SRMLC architecture can be implemented on all FPGA devices. The SRMLC architecture allows a significantly larger number of computing blocks to be accommodated because the resources required for implementation are balanced significantly better.

4.2.2. Comparison of the Achieved Throughput

From Table 8, we can see that the throughput of the proposed architecture is significantly improved, compared to RMLC architecture. The SRMLC architecture was parameterized so that the CALC module had 64 DOT modules, while the RECONF module had 8 RC-LANE modules. The RMLC architecture was parameterized to have 64 reconfigurable blocks.
For DTs, throughput is from 1.167 to 2 times higher (1.58 times on average), for SVMs it is from 0.467 to 2.3 times higher (1.65 times on average) and for MLP ANNs it is from 8.381 to 38 times higher (15.2 times on average), all compared to the corresponding RMLC implementations [33]. The results in Table 8 show, assuming that architectures contain the same number of compute blocks, so called RBs in RMLC and DOTs in SRMLC, that better throughput for DTs and SVMs in the SRMLC is achieved through the classifier sparsification.
When considering SVM models, for some datasets there was a decrease in throughput, as can be seen from Table 8. In these test cases, the bottleneck of the system is the RECONF module, which is not configured to have sufficient width. This can be seen from Equation (12) as the case where the value of N r is higher than the value of N c ; hence, Equation (19) does not hold. It can be seen that this happens rarely and only for small datasets, showing that it is not a good compromise to spend additional resources to expand this module for scenarios that seldom happen.
Additionally, the results show that for MLP models the throughput is more improved. The reason is that the blocks in the RMLC architecture processed whole layers, while in the SRMLC architecture they processed individual neurons. This allows more than one neuron to be processed simultaneously when using the SRMLC architecture, which significantly contributes to increasing the architecture throughput.
The SRMLC architecture has another significant advantage, which these results do not show. When we implement both architectures (RMLC and SRMLC) on the same FPGA device, due to better SRMLC architecture scalability, it is possible to instantiate more DOTs, compared to RBs from RMLC architecture.

4.2.3. Comparison of the Achieved Processing Latency

As it can be seen from Table 9, the processing latency, as one of the most important performance metric parameters for most of the applications, is drastically improved in the SRMLC when compared to the previously published RMLC architecture [33]. For comparison purposes, the SRMLC architecture was parameterized so that the CALC module had 64 DOT modules, while the RECONF module had 8 RC-LANE modules. The RMLC architecture was parameterized to have 64 reconfigurable blocks.
From Table 9, we can see that the latency during the processing of DTs in the SRMLC is reduced from 2.66 to 4.43 times (3.33 on average), for MLP ANNs the latency is reduced from 3.1 to 22.2 times (7.84 on average) and for SMVs the processing latency can be from 14.9 to 84.1 times shorter (40.08 on average).
This significant latency reduction is obtained through the parallelization and sparsification. Most of the latency reduction was achieved from implementation in which a large number of DOTs processed a given input classification instance in parallel. This approach is in complete contrast to the RMLC architecture [33] and leads to significantly improved latency for all classifier types. Sparsification has less effect on improving latency compared to parallelization. The impact that sparsification has on improving throughput is proportional to the impact it has on reducing latency. For example, if the throughput is improved two times and the latency is reduced eight times, that means that the sparsification improved the latency two times, while the additional improvement of four times can be attributed to parallelization.

4.2.4. Comparison of the Energy Consumption

Table 10 shows the reduction in memory requirements for storing classifier coefficients needed by the SRMLC, when compared to the RMLC architecture, proposed in [33].
Negative values in Table 10 indicate that the SRMLC requires fewer memory resources compared to RMLC [33], while positive values indicate that, for the corresponding datasets, the SRMLC requires additional memory resources. As it can be seen from Table 10, a memory reduction for DTs can be positive, at least for some datasets used in the experiments, which can be explained by the fact that sparsification of hyperplane coefficients leads to larger and “deeper” DTs, with a large number of nodes, where each node must store one hyperplane coefficients set. Table 10 also shows that for the majority of datasets, especially for SVMs and MLP ANNs, the required memory for storing model parameters is reduced and for several datasets it is severely reduced.
In the case of SVM classifiers, memory usage is generally improved, sometimes drastically, except in some cases. In these cases, the level of sparsification is small, so the extra space needed to accommodate the increments actually increases memory usage.
As a consequence of the model parameters sparsification, the energy consumption is significantly reduced as well. It is a well known fact from the available literature that data transfers from external DRAM are the most expensive in terms of the energy consumption [39]. As a result, reduced storage requirements in the SRMLC lead to significant energy saving, compared to solutions where dense data representation is used. Due to the reduced number of DRAM accesses, as a result of sparsification, the energy consumption for DRAM data transfers is reduced from −49.88% up to 50.16% in the case of DT processing (5.16% on average), from −9.83% up to 93.65% in the case of SVM processing (48.22% on average) and from 25.07% up to 93.75% in the case of ANN processing (76.69% on average), compared to the scenario when non-sparsified models are being processed.

4.3. Comparison with Embedded Software Implementation

Table 11, Table 12 and Table 13 present the processing latency of different classifiers when they are being executed on the SRMLC hardware accelerator, compared to their software implementations being executed on the embedded processor. All three embedded software applications, providing results from Table 11, Table 12 and Table 13, were developed as GCC embedded Linux applications. The hardware platform used for testing was the ZCU102 evaluation board [66], so all embedded applications were executed on a quad-core Arm® Cortex®-A53 processor. The DT benchmarking application was implemented as a plain GCC application, without the usage of any specific libraries, where all underlying data structures were developed from scratch. However, SVM benchmarking GCC application was based on the LIBSVM library for Support Vector Machines [69], while the GCC embedded application for benchmarking ANNs used Tensorflow-lite framework [70] to model MLP ANNs.
Column Dtst shows the dataset which was used. Tests were conducted on different numbers of input classification instances and those are shown in column inst#. SWmin, SWmax and SWavg stand for the minimum, maximum and average processing latency of classifying one instance when executed in software, respectively. HWb shows the instance processing latency when the classifier is running on the SRMLC, while using the batch mode of processing, in which multiple input instances are read from external DRAM, which significantly reduces classification time. For the chosen datasets, the size of the batch was set to be the maximum for the corresponding experiments, which means that it was equal to the value of inst#. On the other side, the HW column presents processing latencies of the running classifier on the SRMLC in normal mode, where a single input instance is fetched each time, before starting classification.
All processing latencies presented in Table 11, Table 12 and Table 13 are expressed in nanoseconds. The last two columns show the gain of the running classifier on the SRMLC, compared to the corresponding embedded software implementations, where the Gb column shows the gain of batch-mode processing latency and the G column presents the normal-mode gain. Table 11 shows that the processing latency gain of the SRMLC accelerated DT classifier in normal mode ranges from 3.98 up to 14.99 (7.11 on average). Similarly, from Table 12 it can be seen that, when run on the SRMLC in normal mode, the processing latency gain of the SVM classifier ranges from 11.34 up to 25.46 times (17.05 on average). Finally, Table 13 shows that the MLP ANN classifier, run in normal mode on the SRMLC accelerator, outperforms the one running in the software from 10.99 up to 31.88 times (16.74 on average), when the processing latency gain is used as a comparison metric. As it can be seen from the columns Gb in Table 11, Table 12 and Table 13 that when classifiers are run on the SRMLC accelerator in a batch mode, the gain is even higher: from 20.61 up to 77.35 (42.87 on average) for DTs, from 27.71 up to 85.09 (49.68 on average) for SMVs and from 21.71 up to 62.21 (32.68 on average) for MLP ANNs.
As can be seen from the results presented in Table 11, Table 12 and Table 13, the SRMLC architecture offers high-performance results when compared with traditional software implementations of ANN, DT, and SVM classifiers. There are several reasons why this was achieved. The SRMLC architecture uses a pipelining technique at several levels to increase the instance of processing throughput. Similarly, due to the parallelization of the main operations, implemented within the array of DOT modules, an additional increase in the processing throughput, but even more importantly, a decrease in the instance processing latency, has been achieved. Finally, by the fact that the SRMLC is able to directly process sparsified ML models, additional performance improvement was attained.
Apart from the obvious performance improvement due to the significant processing latency reduction, an additional benefit of using the SRMLC hardware accelerator is related to the fact that the classification processing latancy is deterministic, always taking exactly the same amount of time, which can be crucial for real-time applications in which the response latency is critical.

5. Conclusions

In this study, the universal reconfigurable hardware accelerator for sparse machine learning classifiers is proposed, which supports three classifier types: decision trees, artificial neural networks and support vector machines. While hardware accelerators for these classifiers can be found in the available literature, to the author’s best knowledge, the accelerator presented in this study is the first hardware accelerator that is optimized to work with sparse classifier models, which results in a higher throughput, reduced processing latency, smaller memory footprint and decreased energy consumption due to reduced data movements, compared to the hardware implementations of traditional predictive models. In order to benchmark the proposed hardware accelerating platform, we have also presented the algorithms for sparse decision trees induction, sparsification of support vector machines and artificial neural networks pruning. Experiments carried out on standard benchmark datasets from the UCI Machine Learning Repository database show that the proposed sparsification algorithms allow a significant predictive models compression, with a negligible prediction accuracy drop: on average 61.7% for decision trees, 39.12% for support vector machines and 81.3% for artificial neural networks. Experimental results also show that using such compressed classifier models increases throughput up to 38 times, decreases processing latency up to 84 times and reduces energy consumption for DRAM data transfers up to 76.69%. Our hardware accelerator, as it is shown in the experimental results section, significantly outperforms machine learning classifiers implemented in embedded software. DT classification, accelerated by the SRMLC, is up to 77 times faster when compared to the corresponding DT classification implemented in the software. Similarly, when run on our accelerator, the SVM classification relative speedup is up to 85 times faster and the MLP ANN classification relative speedup is up to 62 times faster, when compared to corresponding embedded software implementations.

Author Contributions

Conceptualization, V.V. and R.S.; Methodology, V.V., P.T. and R.S.; Software, V.V. and P.T.; Supervision, R.S.; Visualization, V.V. and P.T.; Writing—original draft, V.V., P.T. and R.S. All authors have read and agreed to the published version of the manuscript.

Funding

This work received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreement number 856967 and has been supported by the Ministry of Education, Science and Technological Development through project No. 451-03-68/2022-14/ 200156 “Innovative scientific and artistic research from the FTS (activity) domain”.

Data Availability Statement

UCI Machine Learning Repository, Center for Machine Learning and Intelligent Systems. Available online: https://archive.ics.uci.edu/ml/index.php (accessed on 28 February 2022).

Acknowledgments

The authors would like to thank the editors and reviewers for their efforts and suggestions to improve our manuscript.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Olson, D.L.; Wu, D. Predictive Data Mining Models, 2nd ed.; Springer Nature: Singapore, 2020. [Google Scholar]
  2. Kantardzic, M. Data Mining: Concepts, Models, Methods, and Algorithms, 3rd ed.; John Wiley & Sons: Hoboken, NJ, USA, 2020. [Google Scholar]
  3. Zaki, M.J.; Wagner, M. Data Mining and Machine Learning: Fundamental Concepts and Algorithms, 2nd ed.; Cambridge University Press: Cambridge, UK, 2020. [Google Scholar]
  4. Breiman, L.; Friedman, J.; Stone, C.; Olsen, R. Classification and Regression Trees; CRC Press: Boca Raton, FL, USA, 1984. [Google Scholar]
  5. Quinlan, R. Induction of decision trees. Mach. Learn. 1986, 1, 81–106. [Google Scholar] [CrossRef] [Green Version]
  6. Cortes, C.; Vapnik, V. Support-vector networks. Mach. Learn. 1995, 20, 273–297. [Google Scholar] [CrossRef]
  7. Haykin, S. Neural Networks and Learning Machines; Pearson Education: Delhi, NCR, Noida, India, 2007. [Google Scholar]
  8. McCullock, W.; Pitts, W. A Logical Calculus of Ideas Immanent in Nervous Activity. Bull. Math. Biophys. 1943, 5, 115–133. [Google Scholar] [CrossRef]
  9. Mierswa, I.; Wurst, M.; Klinkenberg, R.; Scholz, M.; Euler, T. Yale: Rapid prototyping for complex data mining tasks. In Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Philadelphia, PA, USA, 20–23 August 2006; pp. 935–940. [Google Scholar]
  10. The R Project for Statistical Computing. Available online: http://www.r-project.org (accessed on 1 September 2021).
  11. Hall, M.; Frank, E.; Holmes, G.; Pfahringer, B.; Reutemann, P.; Witten, I. The WEKA data mining software: An update. ACM SIGKDD Explor. Newsl. 2009, 11, 10–18. [Google Scholar] [CrossRef]
  12. Eltanbouly, S.; Bashendy, M.; AlNaimi, N.; Chkirbene, Z.; Erbad, A. Machine learning techniques for network anomaly detection: A survey. In Proceedings of the 2020 IEEE International Conference on Informatics, IoT, and Enabling Technologies (ICIoT), Doha, Qatar, 2–5 February 2020; pp. 156–162. [Google Scholar]
  13. Rabhi, F.A.; Mehandjiev, N.; Baghdadi, A. State-of-the-Art in Applying Machine Learning to Electronic Trading. In International Workshop on Enterprise Applications, Markets and Services in the Finance Industry; Springer: Cham, Switzerland, 2020; pp. 3–20. [Google Scholar]
  14. Dixon, M.F.; Halperin, I.; Bilokon, P. Machine Learning in Finance; Springer International Publishing: New York, NY, USA, 2020. [Google Scholar]
  15. Zhao, S.; Chen, S.; Yang, H.; Wang, F.; Wei, Z. RF-RISA: A novel flexible random forest accelerator based on FPGA. J. Parallel Distrib. Comput. 2021, 157, 220–232. [Google Scholar] [CrossRef]
  16. Malhotra, K.; Singh, A.P. Implementation of decision tree algorithm on FPGA devices. IAES Int. J. Artif. Intell. 2021, 10, 131. [Google Scholar] [CrossRef]
  17. Alcolea, A.; Resano, J. FPGA accelerator for gradient boosting decision trees. Electronics 2021, 10, 314. [Google Scholar] [CrossRef]
  18. Molina, R.; Loor, F.; Gil-Costa, V.; Nardini, F.M.; Perego, R.; Trani, S. Efficient traversal of decision tree ensembles with FPGAs. J. Parallel Distrib. Comput. 2021, 155, 38–49. [Google Scholar] [CrossRef]
  19. Haytham, A. FPGA Acceleration of Tree-based Learning Algorithms. Adv. Sci. Technol. Eng. Syst. J. Spec. Issue Multidiscip. Sci. Eng. 2020, 5, 237–244. [Google Scholar]
  20. Owaida, M.; Kulkarni, A.; Alonso, G. Distributed inference over decision tree ensembles on clusters of FPGAs. ACM Trans. Reconfigurable Technol. Syst. (TRETS) 2019, 12, 1–27. [Google Scholar] [CrossRef]
  21. Ramadurgam, S.; Perera, D.G. An Efficient FPGA-Based Hardware Accelerator for Convex Optimization-Based SVM Classifier for Machine Learning on Embedded Platforms. Electronics 2021, 10, 1323. [Google Scholar] [CrossRef]
  22. Younes, H.; Ibrahim, A.; Rizk, M.; Valle, M. Algorithmic-level approximate tensorial SVM using high-level synthesis on FPGA. Electronics 2021, 10, 205. [Google Scholar] [CrossRef]
  23. Afifi, S.; GholamHosseini, H.; Sinha, R. FPGA implementations of SVM classifiers: A review. SN Comput. Sci. 2020, 1, 1–17. [Google Scholar] [CrossRef] [Green Version]
  24. Batista, G.C.; Oliveira, D.L.; Saotome, O.; Silva, W.L. A Low-Power Asynchronous Hardware Implementation of a Novel SVM Classifier, with an Application in a Speech Recognition System. Microelectron. J. 2020, 105, 104907. [Google Scholar] [CrossRef]
  25. Baez, A.; Himar, F.; Samuel, O.; Giordana, F.; Emanuele, T.; Abian, H.; Francesco, L.; Giovanni, D.; Gustavo, M.C.; Roberto, S. High-level synthesis of multiclass SVM using code refactoring to classify brain cancer from hyperspectral images. Electronics 2019, 8, 1494. [Google Scholar] [CrossRef] [Green Version]
  26. Afifi, S.; GholamHosseini, H.; Sinha, R. A system on chip for melanoma detection using FPGA-based SVM classifier. Microprocess. Microsystems 2019, 65, 57–68. [Google Scholar] [CrossRef]
  27. Luo, A.; An, F.; Zhang, X.; Mattausch, H.J. A hardware-efficient recognition accelerator using Haar-like feature and SVM classifier. IEEE Access 2019, 7, 14472–14487. [Google Scholar] [CrossRef]
  28. Westby, I.; Yang, X.; Liu, T.; Xu, H. FPGA acceleration on a multi-layer perceptron neural network for digit recognition. J. Supercomput. 2021, 77, 14356–14373. [Google Scholar] [CrossRef]
  29. Wu, C.; Fresse, V.; Suffran, B.; Konik, H. Accelerating DNNs from local to virtualized FPGA in the Cloud: A survey of trends. J. Syst. Archit. 2021, 119, 102257. [Google Scholar] [CrossRef]
  30. Valencia, D.; Fard, S.F.; Alimohammad, A. An artificial neural network processor with a custom instruction set architecture for embedded applications. IEEE Trans. Circuits Syst. I Regul. Pap. 2020, 67, 5200–5210. [Google Scholar] [CrossRef]
  31. Medus, L.D.; Iakymchuk, T.; Frances-Villora, J.V.; Bataller-Mompeán, M.; Rosado-Muñoz, A. A novel systolic parallel hardware architecture for the FPGA acceleration of feedforward neural networks. IEEE Access 2019, 7, 76084–76103. [Google Scholar] [CrossRef]
  32. Hwang, R.; Kim, T.; Kwon, Y.; Rhu, M. Centaur: A chiplet-based, hybrid sparse-dense accelerator for personalized recommendations. In Proceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA), Valencia, Spain, 30 May–3 June 2020; pp. 968–981. [Google Scholar]
  33. Vranjković, V.; Struharik, R.; Novak, L. Reconfigurable hardware for machine learning applications. J. Circuits Syst. Comput. 2015, 24, 1550064. [Google Scholar] [CrossRef]
  34. Vranjković, V.; Struharik, R.; Novak, L. Hardware acceleration of homogeneous and heterogeneous ensemble classifiers. Microprocess. Microsyst. 2015, 39, 782–795. [Google Scholar] [CrossRef]
  35. Chen, W.; Wilson, J.; Tyree, S.; Weinberger, K.; Chen, Y. Compressing neural networks with the hashing trick. In Proceedings of the International Conference on Machine Learning, Lille, France, 6–11 July 2015; pp. 2285–2294. [Google Scholar]
  36. Han, S.; Mao, H.; Dally, W.J. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv 2015, arXiv:1510.00149. [Google Scholar]
  37. Han, S.; Pool, J.; Tran, J.; Dally, W.; Chen, Y. Learning both weights and connections for efficient neural network. In Proceedings of the Advances in Neural Information Processing Systems, Montreal, QC, Canada, 7–12 December 2015; pp. 1135–1143. [Google Scholar]
  38. Iandola, F.N.; Han, S.; Moskewicz, M.W.; Ashraf, K.; Dally, W.J.; Keutzer, K. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5 MB model size. arXiv 2016, arXiv:1602.07360. [Google Scholar]
  39. Han, S.; Liu, X.; Mao, H.; Pu, J.; Pedram, A.; Horowitz, M.A.; Dally, W.J. EIE: Efficient inference engine on compressed deep neural network. ACM SIGARCH Comput. Archit. News 2016, 44, 243–254. [Google Scholar] [CrossRef]
  40. Liang, T.; Glossner, J.; Wang, L.; Shi, S.; Zhang, X. Pruning and quantization for deep neural network acceleration: A survey. Neurocomputing 2021, 461, 370–403. [Google Scholar] [CrossRef]
  41. Kretowski, M. An evolutionary algorithm for oblique decision tree induction. In Proceedings of the International Conference on Artificial Intelligence and Soft Computing, Zakopane, Poland, 7–11 June 2004; pp. 54–68. [Google Scholar]
  42. Kretowski, M.; Grześ, M. Evolutionary learning of linear trees with embedded feature selection. In Proceedings of the International Conference on Artificial Intelligence and Soft Computing, Zakopane, Poland, 25–29 June 2006; pp. 400–409. [Google Scholar]
  43. Keerthi, S.S.; Chapelle, O.; DeCoste, D. Building support vector machines with reduced classifier complexity. J. Mach. Learn. Res. 2006, 7, 1493–1515. [Google Scholar]
  44. Vranjkovic, V.; Struharik, R. Hardware Acceleration of Sparse Support Vector Machines for Edge Computing. Elektron. Ir Elektrotechnika 2020, 26, 42–53. [Google Scholar] [CrossRef]
  45. Yang, J.; Fu, W.; Cheng, X.; Ye, X.; Dai, P.; Zhao, W. S2Engine: A novel systolic architecture for sparse convolutional neural networks. IEEE Trans. Comput. 2021. [Google Scholar] [CrossRef]
  46. Xu, H.; Shiomi, J.; Onodera, H. MOSDA: On-Chip Memory Optimized Sparse Deep Neural Network Accelerator with Efficient Index Matching. IEEE Open J. Circuits Syst. 2020, 2, 144–155. [Google Scholar] [CrossRef]
  47. Liu, B.; Chen, X.; Han, Y.; Xu, H. Swallow: A versatile accelerator for sparse neural networks. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2020, 39, 4881–4893. [Google Scholar] [CrossRef]
  48. You, W.; Wu, C. RSNN: A software/hardware Co-optimized framework for sparse convolutional neural networks on FPGAs. IEEE Access 2020, 9, 949–960. [Google Scholar] [CrossRef]
  49. Liang, Y.; Lu, L.; Xie, J. OMNI: A framework for integrating hardware and software optimizations for sparse CNNs. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2020, 40, 1648–1661. [Google Scholar] [CrossRef]
  50. Teodorovic, P.; Struharik, R. Hardware Acceleration of Sparse Oblique Decision Trees for Edge Computing. Elektron. Ir Elektrotechnika 2019, 25, 18–24. [Google Scholar] [CrossRef] [Green Version]
  51. Serkani, E.; Gharaee Garakani, H.; Mohammadzadeh, N. Anomaly detection using SVM as classifier and decision tree for optimizing feature vectors. ISC Int. J. Inf. Secur. 2019, 11, 159–171. [Google Scholar]
  52. Serkani, E.; Garakani, H.G.; Mohammadzadeh, N.; Vaezpour, E. Hybrid anomaly detection using decision tree and support vector machine. Int. J. Electr. Comput. Eng. 2018, 12, 431–436. [Google Scholar]
  53. Lu, H.; Ma, X. Hybrid decision tree-based machine learning models for short-term water quality prediction. Chemosphere 2020, 249, 126169. [Google Scholar] [CrossRef]
  54. Carson, J.; Hollingsworth, K.; Datta, R.; Clark, G.; Segev, A. A Hybrid Decision Tree-Neural Network (DT-NN) Model for Large-Scale Classification Problems. In Proceedings of the 2020 IEEE International Conference on Big Data (Big Data), Atlanta, GA, USA, 10–13 December 2020; pp. 4103–4111. [Google Scholar]
  55. Jena, M.; Behera, R.K.; Dehuri, S. Hybrid Decision Tree for Machine Learning: A Big Data Perspective. In Advances in Machine Learning for Big Data Analysis; Dehuri, S., Chen, Y.W., Eds.; Springer: Cham, Switzerland, 2022; pp. 223–239. [Google Scholar]
  56. Khraisat, A.; Gondal, I.; Vamplew, P.; Kamruzzaman, J.; Alazab, A. Hybrid intrusion detection system based on the stacking ensemble of c5 decision tree classifier and one class support vector machine. Electronics 2020, 9, 173. [Google Scholar] [CrossRef] [Green Version]
  57. Heath, D.; Kasif, S.; Salzberg, S. Induction of oblique decision trees. In Proceedings of the IJCAI, Chambery, France, 28 August–3 September 1993; pp. 1002–1007. [Google Scholar]
  58. Cantu-Paz, E.; Kamath, C. Inducing oblique decision trees with evolutionary algorithms. IEEE Trans. Evol. Comput. 2003, 7, 54–68. [Google Scholar] [CrossRef]
  59. Otero, F.; Freitas, A.; Johnson, C.G. Inducing decision trees with an ant colony optimization algorithm. Appl. Soft Comput. 2012, 12, 3615–3626. [Google Scholar] [CrossRef] [Green Version]
  60. Levi, D. HereBoy: A fast evolutionary algorithm. In Proceedings of the Second NASA/DoD Workshop on Evolvable Hardware, Palo Alto, CA, USA, 13–15 July 2000; pp. 17–24. [Google Scholar]
  61. Struharik, R.; Vranjković, V.; Dautović, S.; Novak, L. Inducing oblique decision trees. In Proceedings of the 2014 IEEE 12th International Symposium on Intelligent Systems and Informatics (SISY), Subotica, Serbia, 11–13 September 2014; pp. 257–262. [Google Scholar]
  62. Platt, J. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines; MSRTR: Microsoft Research: Redmond, WA, USA, 1998; Volume 3, pp. 88–95. [Google Scholar]
  63. Kreßel, U. Pairwise classification and support vector machines. In Advances in Kernel Methods: Support Vector Learning; Burges, C.J.C., Scholkopf, B., Smola, A.J., Eds.; MIT Press: Cambridge, MA, USA, 1999; pp. 255–268. [Google Scholar]
  64. Tensorflow. Available online: http://www.tensorflow.org (accessed on 1 September 2021).
  65. Xilinx Vivado Design Suite. Available online: https://www.xilinx.com/developer/products/vivado.html (accessed on 26 October 2021).
  66. Zynq UltraScale+ MPSoC ZCU102 Evaluation Kit. Available online: https://www.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html# (accessed on 26 October 2021).
  67. Genus Synthesis Solution. Available online: https://www.cadence.com/en_US/home/tools/digital-design-and-signoff/synthesis/genus-synthesis-solution.html (accessed on 26 October 2021).
  68. Innovus Implementation System. Available online: https://www.cadence.com/en_US/home/tools/digital-design-and-signoff/soc-implementation-and-floorplanning/innovus-implementation-system.html (accessed on 26 October 2021).
  69. Chang, C.; Lin, C. LIBSVM: A library for support vector machines. ACM Trans. Intell. Syst. Technol. 2011, 3, 27:1–27:27. [Google Scholar] [CrossRef]
  70. Deploy Machine Learning Models on Mobile and IoT Devices. Available online: https://www.tensorflow.org/lite (accessed on 28 October 2021).
Figure 1. MLP ANN structure.
Figure 1. MLP ANN structure.
Electronics 11 01178 g001
Figure 2. SRMLC top level architecture.
Figure 2. SRMLC top level architecture.
Electronics 11 01178 g002
Figure 3. CALC architecture.
Figure 3. CALC architecture.
Electronics 11 01178 g003
Figure 4. The DOT module architecture.
Figure 4. The DOT module architecture.
Electronics 11 01178 g004
Figure 5. Layout of CFG-MEM memory.
Figure 5. Layout of CFG-MEM memory.
Electronics 11 01178 g005
Figure 6. The RECONF architecture.
Figure 6. The RECONF architecture.
Electronics 11 01178 g006
Figure 7. The RC-LANE architecture.
Figure 7. The RC-LANE architecture.
Electronics 11 01178 g007
Figure 8. The RECONF architecture—DT configuration.
Figure 8. The RECONF architecture—DT configuration.
Electronics 11 01178 g008
Figure 9. The RECONF architecture—SVM configuration.
Figure 9. The RECONF architecture—SVM configuration.
Electronics 11 01178 g009
Figure 10. The RECONF architecture—MLP layer configuration.
Figure 10. The RECONF architecture—MLP layer configuration.
Electronics 11 01178 g010
Figure 11. Results of pruning MLP ANN structure on Australian, diabetes, glass and heart-disease datasets.
Figure 11. Results of pruning MLP ANN structure on Australian, diabetes, glass and heart-disease datasets.
Electronics 11 01178 g011
Figure 12. Results of pruning MLP ANN structure on heart, hepatitis, ionosphere and page-blocks datasets.
Figure 12. Results of pruning MLP ANN structure on heart, hepatitis, ionosphere and page-blocks datasets.
Electronics 11 01178 g012
Figure 13. Results of pruning MLP ANN structure on sonar, vehicle, waveform21 and waveform40 datasets.
Figure 13. Results of pruning MLP ANN structure on sonar, vehicle, waveform21 and waveform40 datasets.
Electronics 11 01178 g013
Figure 14. Results of pruning MLP ANN structure on wdbc, wine and zoo datasets.
Figure 14. Results of pruning MLP ANN structure on wdbc, wine and zoo datasets.
Electronics 11 01178 g014
Figure 15. Results of pruning DT structure on Australian, diabetes, glass and heart-disease datasets.
Figure 15. Results of pruning DT structure on Australian, diabetes, glass and heart-disease datasets.
Electronics 11 01178 g015
Figure 16. Results of pruning DT structure on heart, hepatitis, ionosphere and page-blocks datasets.
Figure 16. Results of pruning DT structure on heart, hepatitis, ionosphere and page-blocks datasets.
Electronics 11 01178 g016
Figure 17. Results of pruning DT structure on sonar, vehicle, waveform21 and waveform40 datasets.
Figure 17. Results of pruning DT structure on sonar, vehicle, waveform21 and waveform40 datasets.
Electronics 11 01178 g017
Figure 18. Results of pruning DT structure on wdbc, wine and zoo datasets.
Figure 18. Results of pruning DT structure on wdbc, wine and zoo datasets.
Electronics 11 01178 g018
Figure 19. Results of pruning SVM structure on Australian, diabetes, glass and heart-disease datasets.
Figure 19. Results of pruning SVM structure on Australian, diabetes, glass and heart-disease datasets.
Electronics 11 01178 g019
Figure 20. Results of pruning SVM structure on heart, hepatitis, ionosphere and page-blocks datasets.
Figure 20. Results of pruning SVM structure on heart, hepatitis, ionosphere and page-blocks datasets.
Electronics 11 01178 g020
Figure 21. Results of pruning SVM structure on sonar, vehicle, waveform21 and waveform40 datasets.
Figure 21. Results of pruning SVM structure on sonar, vehicle, waveform21 and waveform40 datasets.
Electronics 11 01178 g021
Figure 22. Results of pruning SVM structure on wdbc, wine and zoo datasets.
Figure 22. Results of pruning SVM structure on wdbc, wine and zoo datasets.
Electronics 11 01178 g022
Figure 23. SRMLC ASIC layout.
Figure 23. SRMLC ASIC layout.
Electronics 11 01178 g023
Figure 24. Resource scaling for the architectures.
Figure 24. Resource scaling for the architectures.
Electronics 11 01178 g024
Table 1. Experimental datasets’ basic characteristics.
Table 1. Experimental datasets’ basic characteristics.
Dataset NameShort NameAttributesInstances
Australian—Statlogaustralian14690
Pima Indians Diabetesdiabetes8768
Glass Identificationglass9214
Heart—Statlogheart13270
Heart disease Clevelandheart-disease13303
Hepatitishepatitis19155
Ionosphereionosphere34351
Page blockspage-blocks105473
Sonarsonar60208
Statlog (Vehicle Silhouettes)vehicle18846
Waveform 21waveform21215000
Waveform 40waveform40405000
Wisconsin Breast Cancer—WDBCwdbc10683
Wine Recognitionwine13178
Zoozoo17101
Table 2. Sparse DT predictive model characteristics.
Table 2. Sparse DT predictive model characteristics.
DatasetSpars. [%]Acc. [%]Sparse Acc. [%]SizeSparse Size
australian4074.3373.87454.2251.34
diabetes66.6765.1765.18262.44343.74
glass7059.8860.1117.294.54
heart71.4375.5275.4187.0887.6
heart-disease78.5751.552.28195.4497.4
hepatitis7081.1280.2526.421.2
ionosphere48.5785.9885.15164.5246.56
page-blocks63.6496.7596.52262.46334.04
sonar54.172.3373.58414.8351.56
vehicle68.4267.6667.16571.14447
waveform2159.0981.4380.471155.881593.76
waveform4068.2980.2779.31808.11391.02
wdbc63.6492.7892.1555.4445
wine64.2989.990.1336.442.8
zoo38.8981.2580.27135.3696.34
Table 3. Sparse SVM predictive model characteristics.
Table 3. Sparse SVM predictive model characteristics.
DatasetSpars. [%]Acc. [%]Sparse Acc. [%]SizeSparse Size
australian7586.6786.0931221395
diabetes6578.6577.6637681223
glass7544.7646.671503430
heart8082.2283.71612353
heart-disease8055.1755.172509483
hepatitis907272129282
ionosphere5587.4386.8657803319
page-blocks5591.6691.8186603385
sonar60787810,2005340
vehicle1568.3367.6211,70011,963
waveform215587.3286.5253,08830,297
waveform405585.9285.36113,72066,263
wdbc1596.0795.117301900
wine4596.4796.471105770
zoo4584841003777
Table 4. Sparse ANN predictive model characteristics.
Table 4. Sparse ANN predictive model characteristics.
DatasetSpars. [%]Acc. [%]Sparse Acc. [%]SizeSparse Size
australian9085.7486.721024128
diabetes8076.8377.08640160
glass7068.8371.421024384
heart8079.7884.81960240
heart-disease9553.6853.86115272
hepatitis808887.751344335
ionosphere9091.5692.642304288
page-blocks8097.4497.18960240
sonar8085.7787.13968992
vehicle4082.0781.9614081055
waveform219084.6984.741536192
waveform409582.9482.522752172
wdbc9097.3397.2276895
wine8097.7597.311024255
zoo8096.2296.441536384
Table 5. SRMLC FPGA implementation results.
Table 5. SRMLC FPGA implementation results.
DOT#Freq [Mhz]LUTBRAMDSPPower [W]
3225011,85236.5400.37
6425021,16469720.687
9625030,571101.51041.01
12822539,7731341361.173
16020048,773166.51681.28
19220058,1061992001.539
22415066,804231.52321.39
25615076,1682642641.496
28815085,4453002961.679
32012594,1433333281.551
352125106,8223663601.66
384125112,8523993921.875
416125126,0814324242.15
448125136,019464.54562.279
Table 6. RMLC FPGA implementation results.
Table 6. RMLC FPGA implementation results.
RB#Freq [Mhz]LUTBRAMDSPPower [W]
3225012,219260.5321.549
6425020,382516.5642.282
9625028,843772962.968
Table 7. SRMLC ASIC TSMC 40 nm implementation results.
Table 7. SRMLC ASIC TSMC 40 nm implementation results.
DOT#Freq [Mhz]Gate_COUNTArea [mm 2 ]Power [mW]
643001,947,8377.833868.066
Table 8. Throughput gain of SRMLC compared to RMLC [33].
Table 8. Throughput gain of SRMLC compared to RMLC [33].
DatasetDTsSVMsMLPs
australian21.6363648.5
diabetes1.1666671.58.380952
glass1.51.310.105263
heart1.4615382.12512.8
hrtc1.4615382.1258.533333
hepatitis1.4705882.313.538462
ionosphere22.11111125.191489
pblocks1.61.07692310.947368
sonar1.8333332.06451638.037736
vehicle1.51.15789518.162162
wf211.51.47058815.058824
wf401.4838711.83333325.962264
wdbc1.60.46666710.666667
wine1.4615382.12512.8
zoo1.6428571.59.411765
Table 9. Processing latency reduction in SRMLC compared to RMLC [33].
Table 9. Processing latency reduction in SRMLC compared to RMLC [33].
DatasetDTsSVMsMLPs
australian3.34939831.9726033.192308
diabetes2.98901131.3333333.551724
glass3.01190520.6129035.376623
heart3.17441928.1694926.860759
hrtc3.17441933.9384623.098039
hepatitis2.65909128.3396236.063492
ionosphere3.69565249.70270314.116279
pblocks3.21348333.577645.792208
sonar4.11111166.03208622.23913
vehicle3.40425541.5882359.236842
wf213.73076959.963476.624
wf404.42857184.12452415.282609
wdbc2.9756114.9347835.717949
wine2.84523852.7951816.860759
zoo3.16279124.1052633.584906
Table 10. SRMLC memory storage reduction compared to RMLC [33], expressed in % as a result of sparse data representation.
Table 10. SRMLC memory storage reduction compared to RMLC [33], expressed in % as a result of sparse data representation.
DatasetDTsSVMsMLPs
australian−44.66−55.32−87.50
diabetes30.98−67.54−75
glass−19.33−71.39−62.50
heart0.60−78.10−75
hrtc−50.16−80.75−93.75
hepatitis−19.70−93.65−75.07
ionosphere49.88−42.58−87.50
pblocks27.27−60.91−75
sonar−15.25−47.65−75
vehicle−21.742.25−25.07
wf2137.88−42.93−87.50
wf40−23.07−41.73−93.75
wdbc−18.839.83−87.63
wine17.58−30.32−75.10
zoo−28.83−22.53−75
Table 11. Processing latency comparison between the software implementation of DT classifier compared to SRMLC.
Table 11. Processing latency comparison between the software implementation of DT classifier compared to SRMLC.
DtstInst#SWmin [ns]SWmax [ns]SWavg [ns]HWb [ns]HW [ns]GbG
australian1381180760130944033277.3549.32
diabetes154860596122404836446.6696.154
glass43900284016994033642.4755.057
heart5462017,06215695234430.1664.560
hrtc601110337119515234437.5365.674
hepatitis16780161014016835220.6093.981
ionosphere711180393129168036836.4537.925
pblocks50011450108617584035643.9474.938
sonar4219205630375514443226.0788.693
vehicle1702001606137486437658.569.968
waveform211000251019,51238867241653.9759.341
waveform401000383135,464671712444854.17114.993
wdbc1142021616124614032861.5167.502
wine361100140011565233622.2363.441
zoo201320318017555634431.3395.102
Table 12. Processing latency comparison between the software implementation of SVM classifier compared to SRMLC.
Table 12. Processing latency comparison between the software implementation of SVM classifier compared to SRMLC.
DtstInst#SWmin [ns]SWmax [ns]SWavg [ns]HWb [ns]HW [ns]GbG
australian1388677.019101.158857.6817658450.32815.167
diabetes15310,699.5111,215.4510,943.7925679242.74913.818
glass427956.038391.868146.112049667.88416.424
heart547401.947791.287600.959647279.17716.104
hrtc598553.58945.948691.9812852067.90616.715
hepatitis316703.857043.126807.138042485.08916.055
ionosphere7011,845.8211,949.7811,629.3621659253.84019.644
pblocks108518,039.2328,246.418,328.87624128829.37314.230
sonar4118,805.519,426.1119,042.9337274851.19125.458
vehicle16921,289.5922,107.621,526.56760136028.32415.828
waveform21100076,443.9182,371.2377,257.102788438027.71117.639
waveform401000154,107.09317,612.89155,688.164512629634.50524.728
wdbc11312,567.0413,126.8512,770.1736073635.47317.351
wine357369.767758.147528.9525666429.41011.339
zoo206816.637173.786963.8111245662.17715.272
Table 13. Processing latency comparison between the software implementation of ANN classifier compared to SRMLC.
Table 13. Processing latency comparison between the software implementation of ANN classifier compared to SRMLC.
DtstInst#SWmin [ns]SWmax [ns]SWavg [ns]HWb [ns]HW [ns]GbG
australian6906860143,4718174.8632063225.54612.935
diabetes7685910412,6808027.0029660827.11813.202
glass2146970149,3939503.3530461631.26115.428
heart270637044,1016946.2332063221.70710.991
hrtc2977090529,39914,229.0431262445.60622.803
hepatitis80734133,5107868.6433664823.41912.143
ionosphere351835094,2929466.0137668825.17613.759
pblocks54276960434,1097819.1830461625.72112.693
sonar20810,15057,85211,048.0942473626.05715.011
vehicle8467300441,55212,000.2729660840.54119.737
waveform2150007410222,4668307.5433264425.02312.900
waveform4050008560675,94610,524.1142473624.82114.299
wdbc5698090300,6259415.0831262430.17715.088
wine17869911,370,35917,856.0832063255.80028.253
zoo1018370481,81020,403.8432864062.20731.881
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Vranjkovic, V.; Teodorovic, P.; Struharik, R. Universal Reconfigurable Hardware Accelerator for Sparse Machine Learning Predictive Models. Electronics 2022, 11, 1178. https://doi.org/10.3390/electronics11081178

AMA Style

Vranjkovic V, Teodorovic P, Struharik R. Universal Reconfigurable Hardware Accelerator for Sparse Machine Learning Predictive Models. Electronics. 2022; 11(8):1178. https://doi.org/10.3390/electronics11081178

Chicago/Turabian Style

Vranjkovic, Vuk, Predrag Teodorovic, and Rastislav Struharik. 2022. "Universal Reconfigurable Hardware Accelerator for Sparse Machine Learning Predictive Models" Electronics 11, no. 8: 1178. https://doi.org/10.3390/electronics11081178

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop