Neural Network, the universal solver?
Tags: machinelearning
Published: 2019-11-20 18:19:17

In the past weeks I’ve been working on a research to help people improves their savings by reducing expenses. The work is about to be finished but during the research I’d found out a couple of things I want to share with others, especially when talking about artificial neural networks, a.k.a ANN.

We all know ANN’s, their different architectures, and their importance to solve most of the Big Data problems. Most of the time we hear of them as an analogous of the real ones, those that we all have on our brains; however the real question comes, are they as good as we thought?

A brief of history about ANN, the first time they were proposed was in 1943 with Warren McCulloch and Walter Pitts from there, lot of new models and architectures have been proposed, most of them with a specific purpose. Various examples have been shown, AlexNet, GoogLeNet, ResNet, Multi Layer Perceptron, and so many others.

Most of the data analysis problems can be solved by training an ANN, combine different type of layers and being patient. Also, pros of using it can be listed

- Flexible
- Deal great with nonlinear problems
- Fast once trained
- And most important, they work as universal approximators

The last one is the most important advantage, no matter how is your problem, or how complex they look, with the sufficient time and data you can solve it. But some problems emerge when working with them.

- They require lot of time and data to be trained
- The data need to be transformed in special ways
- Computational expensive

Despite of these disadvantages, most of data scientists continue using them. Looks like the ability ANN has to deal with a variety of problems is more important than the computational expenses they require. Just wait and think it for a moment, is seriously most important their nature of  being almost an automated machine learning algorithm than the time and resources their require to finish a task? Particularly I don’t share that opinion.

Think it this way. 
> - You’ve been asked to make a prediction on a time series
> - To start working on it, you decided to take a look on the Internet and compare different algorithms, beginning with the classic ARIMA or SARIMAX, continuing to more sophisticated algorithms like boosting, and finishing with recurrent neural networks 
> - Comparing them with each other, you find out that most of the recent articles says RNN are great solutions, because of their precision, they also mentions a few thoughts about they are required to use bunch of data, but not a special problem to deal with. 
> - Decided to use them, you prepare an environment to run a couple of experiments, and the surprise is that RNN is not appropriate for you, the RNN require lot of previous preparations, the data need to be transformed in a certain way, takes lot of time to be trained, tend to overfit, and looks like it sucks in all ways

I don’t mean they’re bad in all aspects, for certain problems they are great, but only for very particular problems.

What I want to transmit with these thoughts is neural networks are not as great as everybody says. Yes, important problems have been solved using them, but they require lot of time, being the same as if you run a genetic algorithm generating all possible solutions. And that’s we’re converting the data science with these, we’re converting it in a matter of time. Wait until the problem is solved by computers. Essentially this approach is wrong, we must inquire to find patterns, outliers, clusters, and everything needed to solve satisfactorily the problems we’re facing to; no just running an algorithm and wait until it solve it. That’s not the idea.

In my humble opinion, I think we all need to start changing our minds about the usage of ANN. Of course they are great, they are the reason I was interested on Data Science in the first place, but please, stop using them for every problem you face to. Look for better alternatives and stop overvaluing them.