Skip to content

ProtoNN

Don Dennis edited this page Jan 8, 2018 · 1 revision

Downloads: [PDF] [ICML Poster] [ICML Slides] [Code]

ProtoNN is a novel, k-nearest neighbors (kNN) based general supervised learning algorithm that can be deployed on the tiniest of iot devices. ProtoNN produces state-of-the-art accuracies for typical iot prediction tasks, with just about 16kB of memory size. kNN is a popular choice for machine learning solution for general classification problems owing to its simplicity, generality, and interpretability. ProtoNN, in addition, enjoys key properties to be able to support real-time iot applications

  • Extremely small sizes (a few kB), and
  • Extremely small prediction times.

ProtoNN learns prototypes to represent the entire training dataset as well as labels for each prototype -- this boosts prediction accuracies in many applications and provides additional flexibility, and seamless generalization to multi-label or ranking problems.

As in the case of Bonsai, ProtoNN has been deployed successfully on microcontrollers tinier than a grain of rice such as the ARM Cortex M0 with just 2 KB RAM; it can accurately and efficiently predict on the tiniest of IoT boards such as the Arduino Pro Mini based on an 8 bit Atmel ATmega328P microcontroller operating at 8 MHz without any floating point support in hardware, with 2 KB RAM and 32 KB read-only flash memory.

Please see our ICML 2017 paper for more details about the model and algorithm and our Getting Started section for instructions on how to use ProtoNN.

Clone this wiki locally