Machine Learning: When to Use and Not to Use Machine Learning?
Machine Learning (ML) is one of the fields which incredibly advancing in the last decade. Its implementation spans from computer vision, speech recognition, speech synthesis, machine translation, and many others. Who never heard of self-driving car from Tesla Motors or the news that AlphaGo from DeepMind beat the world champion Lee Sedol in 2016.
The potential of machine learning makes people begin to implement this method to solve various problems. The news on the media also contributes in making people think that this method is the silver bullet to solve most of the problems. In fact, the hype tends to misled people. This article will briefly discuss when the machine learning method could and could not be used.
When to use machine learning method?
When the problem is too hard to be clearly defined
Easily described problems with clear definition could be solved using algorithms by explicit programming. For example, in grading system, we can easily define the range of the numerical score for each grade (i.e.: 100-86, 85-76, 75-66, etc.) and translate it into the alphabetical grade (i.e.: A, B, C, etc.).
However, there are problems that are not easily defined. For example, face recognition task. Humans and some animals can easily recognize the face of the others; however, it is a challenging task for the computer since computer ‘sees’ images differently than humans. Needless to say, defining face features clearly to the computer is difficult.
Figure 1: What humans see (left) vs. what computers see (right).
Source: https://expressanalytics.com/wp-content/uploads/2020/11/facebookcv.jpg
When the problem is changing over time
Imagine the stress a software engineer will face when given a problem that require him/her to change the logic frequently. To understand this better, let’s take a look at product recommendation system. We can easily see what product is currently trending based on recent news; and as we also know, trend changes overtime. Imagine if you are a software engineer who explicitly programmed a system that recommends some trending product based on certain contents of thousands of URLs. Every news update you will have to re-read the page and take the elements of the page. When the content of the website changes, we have to re-program everything again to fit those changes. This is one of the cases when the machine learning can be used.
When the problem is related to perception
Everything that related to humans’ ability to perceive things such as speech, vision, emotion, etc. poses significant challenge for the computer without machine learning method.
When the phenomenon is unstudied yet.
Machine learning cannot replace human brain for sure. However, machine learning can learn something from human expression. For example, we can try to infer someone’s attitude in real life by analyzing their activity in social media using machine learning.
When the objective is simple
Machine learning is indeed a powerful method for specific tasks such as weather forecast, image recognition, speech recognition, speech synthesis, etc. where the goal is relatively simple. Nevertheless, it is still impossible to solve problems that have complex objective. For instance, determining what, when, and how something should be shown on the screen based on user input.
When it is cost effective
Machine learning can be considered when the development and deployment cost (which should also include the labor cost, monitoring, and maintenance) are relatively small compared to the benefit or returns.
Three major cost of using machine learning method:
- Collecting, preprocessing, and cleaning data
- Training the model
- Building and run the infrastructure (and of course the labor) to serve and monitor the model
When machine learning is better not used?
When you have to explain how the model come with the decision
Explaining machine learning to the client is difficult. However, there are several cases when the explanation is crucial. Take an example of credit scoring which decides whether a credit proposal is accepted or rejected. The client needs the explanation why the model rejects or accepts the proposal. Basically, the reasons why a credit proposal is rejected are insufficient assets, bad track records, or anything else. Reasoning why and how the model made its decision is complicated.
When all model behavior changes should be explainable
Sometimes, after an update, the model could behave differently compared to the previous version. For instance, given an input A, the old version will output B, however the updated model might output C. This usually rooted from the data used, optimization in the preprocessing pipeline, or changes in the model architecture itself.
Avoid using machine learning method in case you need to explain this.
When an error may cause huge loss.
Avoid using machine learning if the risk of an error is huge or life-threatening. For example, avoid using machine learning to automate stock trading or medical surgery.
When you want to release the system to the market ASAP
Basically, machine learning model is built with trial-error pattern which is time-consuming. Developers have to find the right data, decide the preprocessing method and model architecture, tune the hyperparameters, and test the system before deploying and scaling it up.
This makes the machine learning model is impossible to be deployed within a short time. Most companies take around 90 days to develop and deploy a machine learning based service or solution.
If you have no plan to update the model frequently
Trained model is quickly become outdated if not continuously maintained. Obsolete model is not only getting worse (performance wise) over time, but also dangerous since this often happens silently without any warning. Thus, active monitoring and frequent update is necessary.
If the problem is solvable using cheaper and simpler method (e.g.: heuristics)
We already know that developing and deploying machine-learning-based solution is costly, thus if a simpler and cheaper method performs reasonably well for the problem, there is no reason to use the more complex method such as machine learning.
When acquiring the appropriate data sufficiently is difficult or impossible
Machine learning depends heavily on the data, thus if the data is inappropriate, insufficient or even wrong, for the problem you are trying to solve, avoid using machine learning.
When the phenomenon has too many outcomes and not enough examples to cover
Related to the previous point, machine learning cannot learn if the data is insufficient. Machine learning can learn complex patterns; however, it cannot work well if the examples given is insufficient.
References:
Burkov, A. (2020). Machine Learning Engineering. Canada: True Positive Inc.