It's 5:00 PM and you're leaving the office. You get to your car and get in. "Good afternoon sir", you hear. "Good afternoon", you reply. You are not speaking to a human, but rather a level 5 autonomous vehicle with Artificial intelligence that learns from experience.
Well, that sounds great, but we are not quite there yet. We are entering a phase in which CPU's are getting much faster and memory is getting larger and less bulky. One thing we still have to improve on, which actually has nothing to do with technology itself but humanity, is better user experience, that is making smarter apps that gives us what we want at the time we want, helping us solve our problems.
Make The Machine Learn
Machine learning is a hot topic nowadays but what exactly is it? Wikipedia defines machine learning as a sub-field of computer science that evolved from the study of pattern recognition and computational learning theory in artificial intelligence. I'd like to add that it's the science that makes your baby (machine) learn from data and experience rather than from you telling it everything it should do explicitly. That way, the machine can make predictions about a certain situation by evaluating what it has learnt in the past.
Now that we know what Machine Learning is, how will using it increase user experience? Well, let's say you created an app that allows people to see the events that are happening around a city, but you find out that most users complain that they don't see events that interest them. We could solve this problem in several ways. First, the app could ask the user to select the types of events they like and then only fetch events that have to do with those categories. Cool, that would work, but is it providing a great user experience?
We could improve the app by using machine learning to learn from the way users interact with the app. For example, one user might like music events now and in a year they could like those less, opting instead for religious events.So the app needs to adapt to constant change too (Just like babies). The app could present the user with images, descriptions and other data related to an event and ask them if they would be interested in it.
Let's dig a little deeper to understand the types of problems that exist in ML. The first is Classification. Like previously mentioned we want to identify when an event is worth attending using what we already learnt from the user. So we use a classification algorithm to classify if the event is "worthy" or "unworthy".
The second type of problem is called a Regression Problem. Let's say you are hosting an event and want to know how much you could sell your tickets for. We could use a regression algorithm like Linear Regression to solve this by passing it data about previous events, their locations, the ticket price, time of the year as input. It would then recognize patterns in that data and predict a price for you. (Note, I won't be going into the mathematical properties of these algorithms).
There is so much to Machine Learning that one article will not suffice to explain it. There are links at the end of this article for those who want to dive into the deep waters of Machine Learning.
Who is using Machine Learning?
Several companies are using ML to improve the user experience of their apps. Google uses it for its Search, Allo and Photos apps. Google Photos provides an interesting case study of ML and Computer Vision. You could search the word "hugs" and it would return all the photos where people are hugging and learn from what you search for. Amazon uses ML for its recommendations system as well, and it allows users to get things done faster. Having your products learn on the job saves time and money that would have been used to teach the apps what to do. The potential benefits are huge.
I want to learn. Where do I start?
Great! You made it this far and you interested in learning ML for the fun or for your existing project that has lots of data that can be used to create better user experiences. Here are a few resources I used when learning.
I found this resource very helpful too, it has a plethora of books and other resources for ML. link
Apps driven by Machine Learning will become ubiquitous and in the future we will see more intelligent apps with vastly improved user experiences thanks to Computer Science. I hope to see more African startups/companies using this technology to help solve their own problems.