You’re probably thinking of building an app that has an AI/ML component, or you might want to add an intelligent component in your already existing one, but what exactly is possible and how can you do it?
Introduction
Artificial Intelligence and Machine Learning are popular terms nowadays which are spread all over the IT scene and there is a trend in trying to apply the concepts of those domains to everything related to IT (building apps, recommending movies, showing ads, finding the best time to travel from one place to another, etc.).
Mobile phones are the devices that use AI and ML the most and I’m not talking about a single scope approach where AI techniques are used for solving a certain problem, in a mobile phone AI is used from the hardware (the custom AI chips) to software (Siri, picture taking, recommendations, natural language processing and many more).
Now, what’s the difference between AI and ML?
AI is the science and all the practices involved in making a computer behave in ways that we previously thought were only accomplishable by humans (such as playing Chess, driving cars, writing poems, etc.). ML on the other hand is a subset of practices in the AI domain that allow computer algorithms to improve through experience (for instance, categorizing music, recommending movies, giving diagnostics, and so on).
In the realm of mobile applications, ML is one of the most common braches of AI in use, that is mainly because of hardware considerations (the computational power, energy efficiency, and storage) but not only, mobile phones are devices which are usually used by a single user for day to day tasks and they are meant to solve a multitude of problems not a single one. In addition to ML, there are a lot of other AI techniques used in mobile products such as Computer Vision, Computer Audio, Deep Networks, and so on, however, those are not that widespread.
So what is currently possible from an ML perspective in the realm of mobile applications?
Well, everything is possible, but if you’re just starting in this world, and you don’t have a large team of scientists and developers your options might be a little bit more limited. Luckily, there are a ton of resources and tools available that can be easily used in MVPs or already existing apps, I’m going to talk about a few of those today.
Integration
Firstly we need to talk about how those tools can be accessed, mainly there are two ways in which the tools can be used and accessed
-
API based — those are usually external services that take some data as input and give you back a response based, all the processing happens on a server somewhere, and there is a need for an Internet connection to access those — so they don’t work for offline apps.
-
Device-based — the algorithms and the AI models live on the device, those can be accessed and used usually offline but some of them require an Internet connection as well.
There is a third model, which is a hybrid of the two enunciated above in which a model is downloaded periodically from a server, however, those cases are rare and are not that commonly used as the other two.
Machine Learning
ML techniques are heavily used for image processing but not only, but they also apply to other domains (medicine, predictions, etc). The product of every ML algorithm is an ML model that can be used for solving a certain problem. One can think of an ML model as a blueprint for solving a certain problem, once we know how to do multiplication, we can apply the same operation to an infinite number of options.