top | item 14996630

Predict the future with Machine Learning

147 points| majikarp | 8 years ago |zeroequalsfalse.press | reply

45 comments

order
[+] wepple|8 years ago|reply
For anyone who still sees ML as a big of a magic black box, I can't highly recommend this book enough: https://www.amazon.com/Make-Your-Own-Neural-Network-ebook/dp... it does a fantastic job of breaking down the concepts into incredibly straightforward ideas.

In fact, the linked article does (IMO) a terrible job at touching on NN by displaying a large equation without a great deal of context - possibly the last thing anyone actually needs when trying to grok the basic principles behind a NN

[+] tinkerdol|8 years ago|reply
We shouldn't ever confuse machine learning with predicting the future -- just because you've never encountered a black swan in the wild, doesn't mean they don't exist.

That being said, the article otherwise seems like a great introduction. Not sure why they chose that title.

[+] ben_w|8 years ago|reply
Black Swans are the error rate of your predictions (the real error rather than your prediction of your error rate) not existential proof that prediction is always doomed.

After all, if Black Swans were common enough to make prediction a fool's errand most of the time, the bird of that name would never have led to the book of that name, because everyone would be predicting their failure to predict things.

[+] zEVE16Ug50tV|8 years ago|reply
> just because you've never encountered a black swan in the wild, doesn't mean they don't exist.

Great point. We can't know that a machine learning algorithm used to make predictions won't be wrong if the future turns out to be significantly different from the past. A swan-classifier trained on images of white swans would fail hard if given pictures of black swans.

That said, people find it useful to use machine learning algorithms to predict the future, as the future tends to be similar to the past, at least in the limited domains to which machine learning is currently applied. As compute increases and we learn how to write machine learning architectures[0], we don't need to distinguish as much between 'machine learning' and plain old 'learning' and much of what philosophers have thought over the years about the problem of induction, and relevant domains of induction, becomes relevant to the topic.

[0] Or learn them. Jeff Dean mentions experimental success learning RNN architectures: https://www.youtube.com/watch?v=vzoe2G5g-w4

[+] calafrax|8 years ago|reply
It is an unfortunate misconception that statistical probability can be used to predict the future.

Any time you extend a statistical model temporally it immediately becomes mathematically invalid since probabilistic statistics are only valid for a fixed population at a fixed moment in time.

Unfortunately business and government is rife with people predicting the future based on statistical models that have no more mathematical validity than reading tea leaves.

[+] pcmaffey|8 years ago|reply
Any relevant prediction model should account for the probability of black swans existence, even if it may have no idea what a black swan might look like.
[+] hprotagonist|8 years ago|reply
Fundamentally it is Software that works like our brain..

Stopped here. Moving on.

[+] shincert|8 years ago|reply
Why? Is it really that bad of an analogy for an absolute beginner?
[+] hal9000xp|8 years ago|reply
I would like to read mathematical foundations of machine learning written for those who are bad at calculus but good at discrete mathematics and algorithms.

For example, I'm learning algorithms, participate at contests, quite comfortable with combinatorics and discrete probability theory but I'm absolute zero at calculus. I would like to read machine learning's math introduction which is friendly to my "discrete" brains.

[+] bitL|8 years ago|reply
Learn discrete calculus from Knuth's Concrete Mathematics first; it is combinatorics-heavy and once you get to differences and summation per-partes, you can quickly extend it to "normal" calculus as you master notion of "limit".

Quick look at it e.g. here:

http://homepages.math.uic.edu/~kauffman/DCalc.pdf

[+] thousandpounds|8 years ago|reply
I am in the same boat. I get the feeling that most Calculus books are just a compilation of tips and tricks. So I am suggesting you invest time into learning real analysis proper. Right now I am learning from [1]. It follows Rudin closely and as opposed to many other analysis books meant to "better explain" stuff, it goes deep into the trenches and actually tackles the subject.

[1] https://www.amazon.com/Real-Analysis-Lifesaver-Understand-Pr...

I think time invested into studying real analysis pays off because then you can later study measure theory, functional analysis and more advanced probability to deal with curse of dimensionality and whatnot.

edit: I started studying the book linked above starting from chapter 4 since the first 3 chapters are familiar from discrete math. Then did chapter 5, skimmed chapters 6(little linear algebra), 7, 8 (most "transition to higher math" books contain this stuff) and am currently in chapter 9.

[+] reader5000|8 years ago|reply
Combinatorics is significantly more difficult than the level of calculus required to understand "machine learning" (i.e. gradient descent).

Also generating functions are kind of combinatorics + calculus.

[+] jensv|8 years ago|reply
Or consider learning calculus.
[+] stareatgoats|8 years ago|reply
To me as an AI novice this article seemed like a good overview. It did not address one problem I have with AI however, which is the inherent lack of transparency. That is, unlike normal programs, we have an input and an output, but the reasoning in between is a black box to human intelligence. This problem has to be solved before we can turn over any really vital tasks to AI with confidence IMO.
[+] visarga|8 years ago|reply
It's not a 'black box'. We know what goes in: matrix multiplication and simple math, in millions of similar units. We can also probe the net to know what a neuron does, or what a specific configuration means - but it might be disappointing - each individual neuron or weight might not have much meaning on its own and even if it were removed, the neural net world work just as well (we can remove almost 95% of the neurons and still make it work).

We can also perturb the inputs to study how the outputs depend on them. There are many things we can do to probe a neural net. We might not be able to say for sure what situation will make it fail, but we can try it with millions of tests to see how good it is. That's how neural nets are rated, actually - by testing on loads of new data, they haven't seen during training.

On the other hand, human brains are really black boxes. We know much less about how they work or how they reach a conclusion. The fact that we can self-report is not the same as knowing how a human would behave in any reasonable situation. We don't actually know how people will behave. And yet, a few people do have access to incredible power to do harm to humanity. We have had to live with that fear since the invention of atomics and genetic viruses.

So I don't think the argument that "neural nets are black boxes" is so powerful. As opposed to what, I would say? Even our dear president is such a black box. We have no idea how it works, or what he will do next.

[+] zEVE16Ug50tV|8 years ago|reply
That's a good and deep point. Let's consider the case of writing an algorithm to drive a car. There are some ideas people have had:

1) What really matters is what happens in the worst case, so we need explanations in the worst case, but not necessarily the rest of the time: when the car is choosing a slightly more efficient trajectory, we don't need an explanation of why it 'chose' to do that. In the case of a crash, though, we'd like to know precisely what went wrong. This suggests, perhaps, that we could have a simpler and more transparent fallback system that usually is uninvolved in driving, but that takes 'responsibility' and has the ability to control the vehicle at a minimum level of safety (rather than efficiency).

2) Humans seem to produce make decisions first and explanations later http://www.skepticink.com/tippling/2013/11/14/post-hoc-ratio...: 'To the question many people ask about politics — Why doesn’t the other side listen to reason? — Haidt replies: We were never designed to listen to reason. When you ask people moral questions, time their responses and scan their brains, their answers and brain activation patterns indicate that they reach conclusions quickly and produce reasons later only to justify what they’ve decided.' so perhaps we could also train an ML agent to produce explanations that we find persuasive?

[+] lngnmn|8 years ago|reply
Future cannot be defined for a any stochastic process with unknown number of hidden variables with unknown weights. Everything core complex than a roll of a dice is unpredictable by definition, just because the model is incomplete. Even next roll of a dice cannot be predicted.

Probability is not reality. Simulations are cartoons. Map is not the territory. Models and simulations based on them are different from reality in the same way a movie is not reality.

People who can't grasp these simple ideas cannot be legitimately called scientists.

[+] visarga|8 years ago|reply
You don't need perfect simulation, just a good enough one. Simulation is like a dynamic, extensible dataset. Neural nets can learn from simulation not only in game play, but also in genetics, robotics and general reasoning. I think simulation is at the core of what will lead to AGI.
[+] halfeatenpie|8 years ago|reply
I'm a PhD candidate related to statistical forecasting and projection related to natural science (hydrology/streamflow projection under climate change uncertainty).

The article seems to be a decent introduction article that shows what Machine Learning is about (which is great) and shows how it can POSSIBLY be applied to forecasting and prediction. However, I think it would be even better if there was a simple example or two with each method being applied and showing different outcomes and then the significance of each methodology through those examples.

Also, I'd like to add a comment to this.

This article is great when you look at it from the Machine Learning perspective. However, when you look at it from a forecasting perspective it only shows a very small portion of what forecasting/predicting really is.

Algorithms you develop through machine learning is something known as a black-box model. You know that the input data and the output data you're matching up with are related somehow, but don't know exactly how they're matched up. That relationship is established based on a performance index determined from a trial-and-error method (of course depending on what actual method you use).

There are different methods available such as ARMA and ARIMA based models. In regards to physical science, there are models that focus on the physical interaction between the input data to simulate what is happening inside the system. ML methods are simply just a taste of other methods available.

Regards to programming use (as I'm sure most of you folks here are used to), ML is a good tool to use for forecasting if you're really interested in it. But just like any forecasting model you use, you should probably determine the performance of your model based on not one index but multiple indices which consider different parts of your "needs". Percent accuracy only shows how accurate you are, you should probably also consider how frequently you're over-estimating vs under-estimating, how many series of overestimation there is, etc. The most important one though in my books is bias correction. When working with ML Algorithms most of them do not consider for bias. So you, as the modeller need to prepare for bias correction. However this article kinda glossed over it by saying "right amount of data" and "combination of data" (which I understand is an introductory post, but I think this is very important).

Maybe look into applying a method like the K-Fold Cross Validation to make sure the final output parameters aren't AS biased. It really depends on the modeller and the model and your performance indices you use.

[+] sgt101|8 years ago|reply
"Fundamentally it is software that works like the brain". I stopped reading there, no good thing can be in any document that contains this phrase*

* Apart from this one