Low-Power Classification using FPGA—An Approach based on Cellular Automata, Neural Networks, and Hyperdimensional Computing

Field-Programmable Gate Arrays (FPGA) are hardware components that hold several desirable properties for wearable and Internet of Things (IoT) devices. They offer hardware implementations of algorithms using parallel computing, which can be used to increase battery life or achieve short response-times. Further, they are re-programmable and can be made small, power-efficient and inexpensive. In this paper we propose a classifier targeted specifically for implementation on FPGAs by using principles from hyperdimensional computing and cellular automata. The proposed algorithm is shown to perform on par with Naive Bayes for two benchmark datasets while also being robust to noise. It is also synthesized to a commercially available off-the-shelf FPGA reaching over 57.1 million classifications per second for a 3-class problem using 40 input features of 8 bits each. The results in this paper show that the proposed classifier could be a viable option for applications demanding low power-consumption, fast real-time responses, or a robustness against post-training noise.

[1]  Basel Kikhia,et al.  A Computationally Inexpensive Classifier Merging Cellular Automata and MCP-Neurons , 2016, UCAmI.

[2]  Basel Kikhia,et al.  Classifier Optimized for Resource-constrained Pervasive Systems and Energy-efficiency , 2017, Int. J. Comput. Intell. Syst..

[3]  Luca Benini,et al.  Hyperdimensional biosignal processing: A case study for EMG-based hand gesture recognition , 2016, 2016 IEEE International Conference on Rebooting Computing (ICRC).

[4]  Yoshua Bengio,et al.  Gradient-based learning applied to document recognition , 1998, Proc. IEEE.

[5]  Pentti Kanerva,et al.  Hyperdimensional Computing: An Introduction to Computing in Distributed Representation with High-Dimensional Random Vectors , 2009, Cognitive Computation.

[6]  Biplab K. Sikdar,et al.  Design and characterization of cellular automata based associative memory for pattern recognition , 2004, IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics).

[7]  Elad Hoffer,et al.  Fix your classifier: the marginal value of training the last weight layer , 2018, ICLR.

[8]  Ken Eguro,et al.  Random decision tree body part recognition using FPGAs , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[9]  Michael N. Jones,et al.  Encoding Sequential Information in Semantic Space Models: Comparing Holographic Reduced Representation and Random Permutation , 2015, Comput. Intell. Neurosci..

[10]  Simon Haykin,et al.  GradientBased Learning Applied to Document Recognition , 2001 .

[11]  Jun Peng,et al.  An Efficient KNN Algorithm Implemented on FPGA Based Heterogeneous Computing System Using OpenCL , 2015, 2015 IEEE 23rd Annual International Symposium on Field-Programmable Custom Computing Machines.

[12]  Jan M. Rabaey,et al.  High-Dimensional Computing as a Nanoscalable Paradigm , 2017, IEEE Transactions on Circuits and Systems I: Regular Papers.

[13]  Okko Johannes Räsänen,et al.  Modeling Dependencies in Multiple Parallel Data Streams with Hyperdimensional Computing , 2014, IEEE Signal Processing Letters.

[14]  D. Smith,et al.  A random walk in Hamming space , 1990, 1990 IJCNN International Joint Conference on Neural Networks.

[15]  Christos-Savvas Bouganis,et al.  Novel Cascade FPGA Accelerator for Support Vector Machines Classification , 2012, IEEE Transactions on Neural Networks and Learning Systems.

[16]  Maya Gokhale,et al.  Accelerating a Random Forest Classifier: Multi-Core, GP-GPU, or FPGA? , 2012, 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines.

[17]  อนิรุธ สืบสิงห์,et al.  Data Mining Practical Machine Learning Tools and Techniques , 2014 .

[18]  Andrew Hunter,et al.  FPGA implementation of Naive Bayes classifier for visual object recognition , 2011, CVPR 2011 WORKSHOPS.