Machine learning methods demonstrated reliable results in many applications, including pattern recognition (face detection), unusual patterns detection (sensors), and predictive analytics (stock/exchange rates and prices). Progress in machine learning largely relies on the advances in computations efficiency, general artificial intelligence progress, and artificial neural networks. Here we will discuss how mobile machine learning could increase transport telematics efficiency.
Introduction to Mobile Machine Learning
We already discussed bits about machine learning in our previous post, so here we mainly go through mobile machine learning. Machine learning could generally deal with both numeric and non-numeric problems, and is an iterative process by nature, meaning that it can not be completed in one go.
Most machine learning algorithms could be categorized based on the learner type. More specifically, there are generally supervised, unsupervised, reinforcement, and semi-supervised learning. Machine learning methods demonstrated reliable results in many applications, including pattern recognition (face detection), unusual patterns detection (sensors), and predictive analytics (stock/exchange rates and prices).
Performing machine learning on mobile devices potentially leads to the following benefits:
- Offline machine learning possibility: no need to send all the data back and forward.
- Avoiding latency through local data processing.
- Better data privacy, since there is no need to send data outside the mobile device.
- Reduced network bandwidth costs since data transmission to the server may be avoided.
The mobile device’s computational capacities dramatically increasing year by year, therefore mobile machine learning development does not seem to be overestimated. There are already available examples, including TensorFlow for Mobile by Google and Siri SDK with Core ML by Apple. In terms of actual features, enabling extensive mobile machine learning role, we could list the following:
- Autonomous vehicles and robotics.
- Computer vision and classification.
- Mobile applications communicating with medical devices / data.
- Speech recognition.
- Text detection and translation.
Obviously, it is not a complete list of possible applications, but it is somehow pretty representative and demonstrates the wide range of potential opportunities, enabled by mobile machine learning.
In general, to implement a mobile machine learning, one needs to go through the following steps: defining a problem, data gathering, building/training the model, and utilizing a model to make predictions.
On practice, implementation of mobile machine learning could include the following steps:
- Utilize the machine learning framework to create trained machine learning models. The trained model can also be completed using any Cloud ML engine.
- Employ the TensorFlow Lite converter for the trained ML model conversion to the TensorFlow Lite model file.
- Write a mobile application with the above-obtained files and convert them into a package for deployment/execution in mobile devices. These lite files could be interpreted and executed directly in the kernels or in the hardware accelerators, if available in the device.
Here we briefly go through an example of a mobile machine learning application package, as described in [R. Gopalakrishnan and A. Venkateswarlu, 2018].
The mobile application is packaged with the TensorFlow Lite model file. The mobile application and the TensorFlow Lite model file interacting by means of the TensorFlow Lite Interpreter (part of the Android NDK layer).
The C functions are called via the interfaces exposed to the SDK layer from the mobile application in order to do the prediction or inference by using the trained TensorFlow Lite model deployed with the mobile application. The figure above provides a represents the layers of the SDK and NDK of the Android ecosystem. The execution can also be triggered on GPU / specialized processors using the android NN layer.
Mobile machine learning forms a continuously developing practical tool, empowering mobile telematics and advancing various telematics applications, ranging from fleet management and computer vision to autonomous vehicles and robotics.
- James Le. A Gentle Introduction to Neural Networks for Machine Learning. 2018.
- R. Gopalakrishnan and A. Venkateswarlu. Machine Learning for Mobile. 2018.
- Y. Zhang. Machine Learning. 2010.
- J. Wahlström et al, Smartphone-based Vehicle Telematics — A Ten-Year Anniversary, 2016.
- S. Blair, Python Data Science, 2019.