Engineering with a Hammer
I’m an engineer by trade and a tinkerer by hobby. I love to make useful things or really cool useless things. I spent a few years learning AI and machine learning concepts, and learned to see things from that lens: Any problem can be solved with the right input data and the right model.
I recently spent some time working on a project for a client. I came into it in the later stages, after some of the initial work had been done. The idea from the start was to build a machine learning model that can solve the clients problem automatically. I spent a few weeks fighting with the initial data and the problem formulation, trying to make a random data generator, so that the model wouldn’t run out of training data.
On average, a machine learning engineer spends only 5 − 10% of their time on modeling, if at all. Successful data collection, preparation, and feature engineering are more important. Usually, modeling is simply applying an algorithm from scikit-learn or R to your data, and randomly trying several combinations of hyperparameters. – Burkov, Machine Learning Engineering.
The data generator needs to know the correct solution/output for the given input. But solving that problem is the problem we’re trying to solve. So we need to solve the problem before we can solve the problem. As it turned out, the traditional (non-machine learning) method I built for the generator was completely viable for the client’s problem! There was no need to take it to the next level.
I know this is turning out to sound like a LinkedIn post, with the whole moral of the story and all that, but I think it doesn’t hurt to reiterate these points. The most advanced solution isn’t always the most appropriate. The hype of a phrase like “Machine Learning” can be a distraction from solving the problem in an efficient way. And sometimes, the best solution is the simplest one.