Is it possible to use neural networks to estimate numerical data?
July 3, 2017 3:32 PM Subscribe
I'm using a large and complicated set of equations to predict numerical data. Could this job be done instead by a neural network trained on the whole data set of input data and predicted data?
Note: my actual, real-life problem is rather complex so I'll use an imaginary example instead for the sake of clarity. Let's say that I need to estimate the weight of an individual based on their age, height, income and sugar consumption. I have additional data such as nationality and gender. Currently, I have fairly good empirical equations linking the output data (weight) with all or part of the input data: if sugar consumption is not available, I can use an equation that does not use it as an input, or an equation that use protein consumption instead. The system works well, but it is also very complex: it involve hundreds of equations (in the imaginary example above there are different equations for each combination of nationality and gender) and requires manual tinkering whenever some edge case shows up. Note that I don't have the actual weights, only the predicted values.
Neural networks can provide results comparable to or better than those obtained by multivariate linear regression, so I was wondering whether it could be possible to train a neural network on a large data set containing the predictors and the predicted values for thousands of records in order to create a usable predictive model that would be as good as the equation-based one but easier to handle. My understanding of neural networks is minimal, but I have R and lots of data, so if there's a chance that this could work and end up being actually useful, I'm interested in any ideas about how to proceed.
Note: my actual, real-life problem is rather complex so I'll use an imaginary example instead for the sake of clarity. Let's say that I need to estimate the weight of an individual based on their age, height, income and sugar consumption. I have additional data such as nationality and gender. Currently, I have fairly good empirical equations linking the output data (weight) with all or part of the input data: if sugar consumption is not available, I can use an equation that does not use it as an input, or an equation that use protein consumption instead. The system works well, but it is also very complex: it involve hundreds of equations (in the imaginary example above there are different equations for each combination of nationality and gender) and requires manual tinkering whenever some edge case shows up. Note that I don't have the actual weights, only the predicted values.
Neural networks can provide results comparable to or better than those obtained by multivariate linear regression, so I was wondering whether it could be possible to train a neural network on a large data set containing the predictors and the predicted values for thousands of records in order to create a usable predictive model that would be as good as the equation-based one but easier to handle. My understanding of neural networks is minimal, but I have R and lots of data, so if there's a chance that this could work and end up being actually useful, I'm interested in any ideas about how to proceed.
Yes, in concept, but why.
Unless you don't know what you're doing at all with quantitative prediction in a given domain, and you also happen to know and truly understand the formal basis of the latest neural network techniques, the answer to your problem is probably not 'use neural networks' in 2017.
Ask yourself: would you rather have the help of a skilled human analyst or a psychotic robot that doesn't understand anything but is really good at finding eigenvalues.
If you have to ask this question, these techniques are over rated. That's my opinion as a researcher in theoretical biology with a PhD in math, focusing in dynamical systems and stochastic processes.
posted by SaltySalticid at 4:59 PM on July 3, 2017 [7 favorites]
Unless you don't know what you're doing at all with quantitative prediction in a given domain, and you also happen to know and truly understand the formal basis of the latest neural network techniques, the answer to your problem is probably not 'use neural networks' in 2017.
Ask yourself: would you rather have the help of a skilled human analyst or a psychotic robot that doesn't understand anything but is really good at finding eigenvalues.
If you have to ask this question, these techniques are over rated. That's my opinion as a researcher in theoretical biology with a PhD in math, focusing in dynamical systems and stochastic processes.
posted by SaltySalticid at 4:59 PM on July 3, 2017 [7 favorites]
And I realize now my answer sounds harsh and off-putting, sorry about that. I
f you would like bibliography and reference materials on how to tackle these problems with more traditional methods of inference for high dimensional inputs and outputs just let me know and I'll be happy to help. Bayesian, frequentist, regressions, logistic fits, classification schemes, clumping techniques, advanced Analysis of variance: all of these are powerful methods that can shed insight on these problems, and they are also well vetted and understood in scientific contexts. In some sense it depends on what your goals are.
It's just that I've seen far too many people caught up in buzzwords and hype surrounding neural networks and a general lack of understanding of carful application, that I hesistate to recommend anything under that banner to someone without a good grounding in the fundamentals of the adjacent fields.
posted by SaltySalticid at 5:48 PM on July 3, 2017 [1 favorite]
f you would like bibliography and reference materials on how to tackle these problems with more traditional methods of inference for high dimensional inputs and outputs just let me know and I'll be happy to help. Bayesian, frequentist, regressions, logistic fits, classification schemes, clumping techniques, advanced Analysis of variance: all of these are powerful methods that can shed insight on these problems, and they are also well vetted and understood in scientific contexts. In some sense it depends on what your goals are.
It's just that I've seen far too many people caught up in buzzwords and hype surrounding neural networks and a general lack of understanding of carful application, that I hesistate to recommend anything under that banner to someone without a good grounding in the fundamentals of the adjacent fields.
posted by SaltySalticid at 5:48 PM on July 3, 2017 [1 favorite]
I asked some friends on Google’s brain team this same question recently, and they advised me to steer clear of machine learning and neural network techniques. In my case, it was because I was working with small amounts of data (thousands of things instead of millions of things), and because these techniques require a lot of intuition-driven specialized tuning to develop a model that broadly does what you want.
This article on the development of Silicon Valley’s Not Hotdog app has a section on model training that goes into the complexities involved.
posted by migurski at 6:18 PM on July 3, 2017 [1 favorite]
This article on the development of Silicon Valley’s Not Hotdog app has a section on model training that goes into the complexities involved.
posted by migurski at 6:18 PM on July 3, 2017 [1 favorite]
Best answer: Speaking as someone working on a ML PhD and who has taken multiple grad-level courses in deep (more like derp) learning, sure, you could, but a NN is probably overkill for what you want to do: you'd end up with a black-box network that's super difficult to interpret, and which is likely to be hilariously overfit to your data, depending on the architecture you end up using.
While tuning neural network hyperparameters still resembles something of a dark art, even for relatively simple problems, there's no harm in trying out a couple of different kinds of nets in a low-overhead sort of way (so with R like in the example in your link vs. TensorFlow or Torch or something) and seeing what happens. At that point I think the issue would be more with mapping the specification of your model(s) onto the network architecture you choose, given that you mention that you're working with hundreds of equations -- i.e. say I have a multivariable linear model with predictors x1 and x2 and an output y, in which case it's trivial to represent the problem as a net with two input neurons corresponding to x1 and x2, plus a single output neuron. But two or more models that were estimated separately may not map as cleanly. That, and you'll still have to deal with the same issues around missing data.
posted by un petit cadeau at 1:48 AM on July 4, 2017 [5 favorites]
While tuning neural network hyperparameters still resembles something of a dark art, even for relatively simple problems, there's no harm in trying out a couple of different kinds of nets in a low-overhead sort of way (so with R like in the example in your link vs. TensorFlow or Torch or something) and seeing what happens. At that point I think the issue would be more with mapping the specification of your model(s) onto the network architecture you choose, given that you mention that you're working with hundreds of equations -- i.e. say I have a multivariable linear model with predictors x1 and x2 and an output y, in which case it's trivial to represent the problem as a net with two input neurons corresponding to x1 and x2, plus a single output neuron. But two or more models that were estimated separately may not map as cleanly. That, and you'll still have to deal with the same issues around missing data.
posted by un petit cadeau at 1:48 AM on July 4, 2017 [5 favorites]
I would think that you would want a random forest model rather than a neural network. Depending on your training set size that can outperform neural nets anyways. They can handle regression and also missing values so it would simplify your many complicated regression equations down to a single model, albeit not as interpret-able as your complicated list of equations.
posted by koolkat at 3:13 AM on July 4, 2017
posted by koolkat at 3:13 AM on July 4, 2017
Response by poster: Thanks to all for your thoughtful answers. So it looks that this was not such a hot idea, but getting informed opinions is what AskMe is for!
posted by elgilito at 2:08 AM on July 31, 2017
posted by elgilito at 2:08 AM on July 31, 2017
« Older Painting interior doors and trim | Negotiating adult relationships with a frustrating... Newer »
This thread is closed to new comments.
The most dangerous part is the failure mode is not typically smooth. If you give it a set of input conditions that are outside the bounds it will happily give you a result - potentially a result entirely unrelated to the result you want. Some may suggest that neural nets do well on extrapolation - but my experience is they only do well on interpolation...especially when you are seeking results similar to regression.
If you go down this path - don't forget you can use the existing models to create synthetic training data to better expand the coverage of your training set...this will limit the issues I've mentioned above, but also will limit the effectiveness of the neural network because you are also training in the deficiencies of your numerical models...
posted by NoDef at 4:25 PM on July 3, 2017 [3 favorites]