We started supervised machine learning in 2016 using our BeaconRTLS™ platform. BeaconRTLS™ collects data into a database on a server which is the traditional way of collecting data for IoT. The data was extracted from the database and fed into machine learning locally and in the cloud. There were problems with this:
- Our clients were storing lots of data and using lots of bandwidth, with associated costs.
- We had to implement a way of using the resulting machine learning models. This involved setting up a server to serve inference results via HTTP in response to input sensor data received via HTTP and MQTT.
- There wasn’t inherent consistency between the way our learning and inference pre-processed data. It was a manual process to ensure the processing was the same. The data needs to be processed in exactly the same way for learning and inference to get consistent results.
- For sensors producing lots of data, for example accelerometers, there was prohibitively large data storage and traffic.
- The server delay was too long for time sensitive events/alerts
In 2017 we moved to using Edge devices. These perform data collection, machine learning and run time inference on only one local device without the need for server storage of data. Sensors producing lots of data are processed quickly with orders of milliseconds latency to generate alerts. Edge devices provide inherent consistency of pre-processing data between learning and production inference.
The edge devices can still communicate with servers but only need to do so to send out alerts with pertinent data. Data storage is local, rather than remote, aiding security and privacy requirements.