One item that featured at both of this year’s big developer conferences, but yet seems to have flown under the radar, is Machine Learning. While Machine Learning was probably the main theme emerging from the Google IO Keynote, the new Core ML toolkit from Apple was a relatively low-key announcement during its much-hyped WWDC keynote.
So, what is Machine Learning And Why Should You Care?
Machine Learning is an area of computer science that allows the development of models that are trained on known datasets, in order to solve problems on data they’ve never seen before. The idea being that the model can be ‘taught’ to identify patterns or correlations in data, and respond with a ‘best guess’ for new data. The model gets better as it is trained on larger and larger volumes of data.
The practical applications of Machine Learning are incredibly wide-ranging, from image classification and object recognition, to Natural Language Processing (NLP) and speech recognition. As the field has advanced over the past years, it is starting to reach a tipping point where it is leaving its academic roots and becoming more and more accessible to developers for everyday tasks.
This is reflected in the release of the new TensorFlow Lite engine from Google, and the Core ML toolkit from Apple. And this is why you should care… both of these technologies allow running a pre-trained Machine Learning model in an app on an Android or Apple smartphone!
This is a huge step towards commoditizing Machine Learning and allowing it to be exploited for common tasks in everyday situations, such as telling you if what you’re about to eat is hotdog or not. The TensorFlow library is already used by AirBnb, Uber, Snapchat and Twitter and both Apple and Google’s documentation sites are full of practical examples and state-of-the-art pre-trained models for you start playing with and tailoring to your problem space. It is important to note that neither of these toolkits allow for training the models on-device, there is a good reason for this. Training of ML models is typically an expensive, iterative process, which needs some serious computing grunt to get the best result.
Until now, one of the best ways to train a model was by using a GPU instance from somewhere like AWS. However, now Google are getting in on the game with the announcement of their Cloud Tensor Processing Unit (TPU) offering. The Cloud TPUs are Google Compute Engine (GCE) instances with hardware specifically designed to quickly train Machine Learning models. They are intended to easily integrate with Google’s open-source TensorFlow toolkit, and should offer a decent advantage over simply using a GPU instance to train your models on.
While Apple doesn’t offer their own hardware to train models on, they have been reasonably astute by supporting tools that convert existing models built with TensorFlow to something that will run on Core ML. In fact, the conversion tools also support models built with other popular toolkits, such as Keras, and Caffe, among others.
Another area where Apple really seem to shine is with performance. During their keynote, Apple quoted a 600x performance gain with their Core ML toolkit on the latest iPhone versus running the same model on a Google Pixel or Galaxy S8.
Machine Learning: Hype vs. Reality
As with every reasonably new technology, there is a degree of hype surrounding Machine Learning. However, even taken with a pinch of salt, this technology definitely seems like one to watch. It seems clear that Machine Learning is going to become a technology that more and more developers will take advantage of as the biggest players in the industry throw some serious energy at making it accessible to everyone.
There’s also never been a better time to learn about ML with the fantastically practical course available from fast.ai. Coupling the knowledge form this with the ease of use of TensorFlow and Core ML’s pre-trained models, you should be well on your way to utilizing ML in your upcoming app projects.
Ready to join with the machines? Get started today with a FREE trial from Kumulos – from push notifications, to app analytics to our industry leading mBaaS platform – we’ve got everything you need to terminate your next app project (sorry – had to squeeze that in there somewhere).
Got an idea for an app but not sure how to get it done? Don’t worry, Kumulos has you covered.