This is a weird one. As someone who has made their living from machine learning this probably isn’t what you’d expect. But really, most problems don’t need to use machine learning! I’ll help you come up an intuition to understand the types of problems machine learning tends to solve well. This applies equally if you are a developer or not, there is no required technical know-how.
There are three main types of machine learning: supervised, unsupervised, and reinforcement. We are only going to cover the most commonly used one, supervised.
Supervised learning is teaching a machine by example
Supervised learning in the simplest possible terms is teaching a machine how to do something using specific examples.
Machine learning doesn’t work well when there are clear rules to follow
Pretend your job is to review movies, and score them out of 10. Now imagine you were asked to describe the exact steps you do to accomplish this task. You might be able to come up with some set of criteria, but chances are it’s an extremely difficult task. If, hypothetically you did have a set of criteria, could you honestly say it would be able to be applied equally for all movies without small changes here and there?
If you can come up with a set of rules, without too much complication, you probably don’t need machine learning. In that case a programmer could simply program the explicit rules into your software and solve your problem with traditional programming.
Understand what type of data you have to work with
Building off the last point, if a human can accomplish the task easily, what information do they use to do it? More concretely, what type of data is needed. Do they listen to audio files, read text, look at images, read numbers/charts? For machine learning to work, it has to have access to many examples of that data, and it also needs to have the solution for each example. I.e. if you are reviewing movies, it needs the list of movies as well as corresponding scores in order to learn the association.
You may find even if machine learning is prime for your problem, you don’t have access to the data required to solve it. For example, imagine you or your boss wanted to ‘use AI to predict the success of targeted keywords for advertising your brand’. If you don’t have numerous examples of keywords and advertising campaigns with their effectiveness good luck. It’s not a bad machine learning problem, but one that is fairly difficult to setup without a history of data. Don’t fret though, machine learning can sometimes work with just tens of datapoints, you don’t necessarily need a lot of data.
Keep in mind the data could be one or more of: images, text, video, audio, numbers, or any them in sequences.
Make sure your problem is specific
Machine learning isn’t a silver bullet solution to difficult problems. It’s a specific tool that can be applied with great effort in certain circumstances. One possible way to do a check against your problem is to Google it. If you can read about or find evidence about a specific case where someone applied machine learning to a similar problem it just might work.
If you or your developer can’t find any similar examples to your problem it likely can’t be done. Machine learning research is a big topic with people who dedicate their whole careers to it. Almost all machine learning in the wild are those same solved research problems re-worked or re-implemented.
Some examples to get you thinking
Here are some of the wildest examples of machine learning I have come across. These will hopefully help you appreciate how expansive the topic can be, while understanding your problem likely isn’t one for machine learning.
- Generating pokemon cards
- Generating new texts from collections of text corpuses
- Asking a plain english question and getting a plain english answer
- Translating from one language to another
How you want to market your solution is up to you. If you want to take advantage of the buzz that the term ‘machine learning’ provides, I say go for it. But, be honest with yourself. If your problem isn’t well-defined, something a human could easily write a set of steps for, or if you don’t have useful data to look at, you probably don’t need machine learning.