The basic idea behind Machine Learning is that instead of you or your buddy writing the code to solve a specific problem, you feed the data to a generic algorithm and let your computer create its own logic based on that.
Machine Learning will change not only the way we think about our data but also the way we build and design software in the future. In the long run, computers will get better than us in solving even more complex problems that used to require thousands of man hours of coding; soon we just feed it data and it programs itself, rendering normal software development redundant.
The goal of this article is to give you a brief introduction to the topic of Machine Learning, from the developer’s point of view. There will be generalizations and we will skip some details.
From coding to teaching
When learning to program, there is a program titled “Hello, World!” for every programming language that is usually used as the starting point for every new developer. In Machine Learning there are quite a few different ways to get started, depending on your knowledge background, tools used, etc.
With the MNIST your goal is to teach the computer to understand handwritten digits, like these.
With the Iris data set you have four variables describing Sepal and Petal widths and lengths of 3 different Iris species (class).
There are many existing algorithms available for you to use, and selecting the right one might be a daunting task. Luckily there are some broader categories you should familiarize yourself with, to ease this selection process: Supervised Learning, Unsupervised learning, and Reinforcement Learning.When you have the data you wish to examine, you need to come up with the algorithm to use, to make your machine understand it and give it the output you need.
If these categories are not familiar to you, read my blog post How to get started with Machine Learning? There’s more stuff if you want to learn more about using machine learning in practice.
Looking back to our example data above, both the MNIST and Iris, we can say that we want to use the Classification problem from the Supervised Learning to make our machine understand our data, and be able to say from previously unseen data to which “category” (number or species) it belongs to.
And we could accomplish this by using the same algorithms without changing our application code, just by training it with different data, so our machine learns to do different tasks without us explicitly telling it to do so.
Only few months ago Google opened the beta versions of it’s developer APIs to Machine Learning that enables the use of AI products, and after this the progress has been accelerating rapidly. By now, there are many ways AI is already used in practice. To name a few concrete ways, Qvik already has built proof of concepts from Machine Learning, Chatbots and Content Analysis.