The concepts of Machine Learning and Artificial Intelligence have been around for a long time – it is until recently that the programming tools and computer hardware have evolved to make it available to the rest of us outside academia.
Do you use Snapchat (or Instagram/Facebook stories)? You certainly enjoy using the puppy dog or luscious cat filters … How the apps find your face and determine where your eyes, nose and mouth are (and where to position the filter) are all the result of Machine Learning inside your phone. When you speak to Siri (Echo, Cortana or Alexa) … you are also invoking some complex applications that make sure your voice, sentence and meanings are converted into “something” the machine can understand.
How to explain it to the rest of us?
At the simplest level, you can think of Machine Learning as a trial-and-error application that, as more trials happen, the fewer errors appear as a result.
A simple illustration might help to understand the solution, imagine the following scenario:
- For simplicity, every amount is fixed;
- You have no way to know the value of the ice cream you want;
- Every day you have a certain amount of spare cash (eg. 10);
- You have one opportunity to bid for an ice cream;
- You only get the ice cream if your bid is within 0.05 of the actual price;
- The only output you get from the ice cream van is
- 0 = you bid too much
- 1 = you bid too little.
How would you go about solving this problem? You would have a simple approach to “learn” how much it will cost you (as fast as you can!) that could look like this:
Initial Bid = 5 Correction = 2.5 Until I find the cost of the ice cream Bid Value If output = 0 Reduce Bid by (Correction) else if output = 1 Increase Bid by (Correction) Divide (Correction) in half
This approach is for illustration purposes, there are plenty of other ways of finding the value that could be optimal.
The above is a simple process anyone would follow to crack the challenge, and although super simple and fixed, we can say that every day you are close to “learning” what is the cost of the ice cream that you so badly want.
I get it … so?
Now imagine there are different (many!) types of ice cream sold by different vans, and you are “Ice cream Oracle of Taste” (or IoT for short!) – as a consultant, people will come to you and ask for your help finding the cost of the ice cream as fast as possible. From your experience (Fig. 1), you can now start approaching the right ice cream values with an initial bid (and an increment value) that are closer to what is expected for ice cream.
But now in this new larger and more complex cycle, your problem now is that you only have experience with 1 ice cream type, so you start your journey with your experience and adjust daily, but now you can alter slightly your approach to search for the solution:
Initial Bid = Type 1 Solution Correction = 0.16 Until I find the cost of the ice cream Bid Value If output = 0 Reduce Bid by (Correction) else if output = 1 Increase Bid by (Correction)
So we can now show a run for identifying two types of ice cream:
In this simple scenario, the number of days taken to “find” an acceptable solution is the same – but the “error” on the guess has reduced, if a revised version used the error to adjust the correction (for illustration, let’s subtract the % of error from the Correction):
By just a simple variation, the error reduced from 0.95 % to 0.68 %!
Still … So??
This illustration is very (VERY!!) simple, but if you imagine that you start with not 1, but 100K types of ice cream as your initial data, you will have a formula (and Guess & Correction values) that will approximate your solution faster.
In this context, we have done 3 separate things:
- We have established some initial values
- We have hypothesised an algorithm to approach a solution
- We have learnt and modified both the initial values and the algorithm for subsequent runs
… and that is Machine Learning for the rest of us!