22 comments

[ 4.8 ms ] story [ 50.5 ms ] thread
I for one welcome our new programming overlords.

Fuck that is impressive. I've seen some talks from Google Brain people referencing bits of this but never understood the full picture. Damn. We should all go home now.

(comment deleted)
The paper says it's a general program induction solution. Does that mean one can already feed Neural Programmer into itself (ie. make it learn from its own previous executions' inputs—training sets—and outputs—learned programs) and try to see if it comes up with a more efficient version?
This is going to be a very meta comment. You have been warned.

The whole field of machine learning makes me kind of nervous. The problem is that the created systems seem kinda magical (quote Clarke, I double dare you). Even their creators don't seem to really understand what goes on in them. It's build it and see what comes out. It's heuristics all the way down.

My feeling: the lack of predictability that results makes these technologies good, but not great. It's why Google's search results still suck. Why suggestion engines are not always super smart or painfully transparent.

If one system in isolation is already hard to predict, what about interacting systems? Increasingly, our experience is shaped by these systems (search result customization etc). Isn't there a vicious feedback loop in there somewhere that pushes us somewhere at the whim of the un-understandable interactions of un-understandable machines?

SVMs, Kernels, Online Learning are pretty well understood. Neural networks are an abuse of the chain rule and makes your model dependent on a bunch of partial derivatives that you don't necessarily understand why are important, but happen to be extremely effective when given lots of data. I think neural nets are probably what you're referring to. If you understand the intuition about your problem, then you can reason about what those partial derivatives might represent. Except a lot of the time we don't really have that level of understanding. What is your level of experience with machine learning? I'm a little surprised with your perception.
I'm not OP, but I think you're misreading their comment. Their point, if I read it correctly, is not about the technical correctness of the ML in place, but the sociological effects. You can see this happening already: I'm sure FB's machine learning algos that they use to filter the stream are 'correct' in some way, but their effect is insidious and polarising on the way we consume information.
I think that's more a reflection of how Facebook chooses to use the results of an algorithm rather than the algorithms themselves.
Both, actually! Point is they are related.
Extreme beginner (I saw a couple presentations). Yes probably neural networks more specifically. I understand that's where most of the excitement is nowadays and what seems to hold promises for the future. Simpler classifiers are easier to grok, but people don't seem to project the same hopes on them that they do on neural networks.

> Except a lot of the time we don't really have that level of understanding.

Precisely my point. My work is in computer languages and I do a lot of parsing. People have a hard time conceptualizing it (truthfully, it is hard) despite the fact that it's fully deterministic. Visualizing a huge decision tree and its ramifications, and distant consequences within it seems something humans are bad at. Neural networks have this, except they feed back into themselves, are not exactly non-deterministic, but statistical, and use a bunch of encoded intuition.

These recently popularized ML techniques aren't necessarily dangerous in the hands of experts, who deeply understand their limitations, but they might be in the hands of less sophisticated practitioners, who misread outputs and extrapolate conclusions. And those less practiced in ML aren't necessarily in positions where they might cause less damage.
What worries me is, the industry already employs plenty of incompetent programmers, and they're always rushing to complete the next product, which inevitably has plenty of bugs at the time of release. Could be a disaster when they ship products with AI in it. Their #1 priority will be to ship before the competition does.
The ultimate goal with AI/ML is generalisability and adaptability in unpredictable environments. If you want those, you make it very hard to produce 100% predictability.

I would ask, why do you need predictability? If we are talking about reliability, then simulations and live testing can provide those metrics.

It's not only unpredictable environments. Actually, a lot of the cases that we want to handle are very predictable. We want to automate solutions for problems that we understand, and create general solutions for problems that fall into the same class.
But this is obvious. Eventually wars with be fought with machine intelligences. It's inevitable. People who say things like, "We need to think about the implications of AI because these machines will do things we can't understand."

Of course they will. Just like people do things we don't understand. What is the alternative? Technology can't be stopped.

Expressing a wish for caution is pointless because no one will heed that wish, there is almost no rational actor who would not choose to invent machine intelligence knowing that others are pursuing the same technology.

At root, your comment just seems alarmist but not persuasive. How should I change my beliefs even if I concede that yes: machine intelligences will be dangerous and unpredictable.

Well, it is for you at least.

I guess the message is just: don't use advanced ML magic if you don't fully understand the consequences.

Yes, things like interacting content discovery engines is almost impossible to stop. At least being aware of the mechanic can help defeat it. e.g. blocking beacons & co, not because I care so much about anonymity, but because I don't want the algorithms to format my experience.

We do know what goes on in them. They are just trying (more-less, but it is only a matter of speed) random solutions till good enough, where the human operator decides what is "good". Which is fundamental, because when you have a function f you know nothing about, the _only_ thing you can do optimise it is to sample randomly, keep current best solution and hope it is good enough. Anything smarter would require some knowledge or assumptions, so is impossible to apply.

In the even more meta direction, the question is though whether human intelligence is some mystical emergent magic, or just try-till-good-enough massive optimisation of physiological needs plus some bonus for social behaviour sponsored by evolution plus some random noise, hidden behind a self-illusion of being a real thing, similar to consciousness. This idea is obviously somewhat disturbing; it shows that success is only a matter of luck, resourcefulness depends on environment, motives are never really noble, apes are only less successful than us because they can't (yet?) efficiently store and share information and art is a matter of an accidental conflux of random biases. On the other hand it suggests that singularity is nonsense, even more, that AGIs will become self-crippled with similar flaws that we observe within ourselves.

The rate of new ideas in deep-learning-type subfields is starting to remind me of the Cambrian explosion, which generated in only a few million years a vast range of genetic novelty to be whittled down into the familiar stock of body plans we see today.

Indeed many of the interesting new papers are elaborations of old ideas along new themes, or useful and elegant new combinations of old ideas, with the occasional attention-grabbing paper when someone tries something that seems like it can't work and it does, and we now have an entirely new thing in our toolbox.

Here is a highly unusual paper that showed up on HN recently, to little discussion.

It tackles a related problem to the OP paper but in a way that could not be more different from the current default of gradients, linear algebra, large training data volumes, hands free training.

It may end up being less impressive than it seems, but it is still a bit mind bending.

http://journals.plos.org/plosone/article?id=10.1371/journal....

When I was at school one of my professors joked that the halting problem would ensure that, whatever else we were able to automate, there would always be jobs for programmers. I wonder.

A while ago there was the automatic statistician [1,2] which can do various statistical analyses and reporting automatically. This year there was a paper out of MIT on Deep Feature Synthesis, in which a largely automated system did quite well on Kaggle problems [3]. Now this, which seems like it could produce solutions to some problems I've used in technical phone screens.

At some point, someone will write a framework which automates the process of finding human cognitive tasks to automate, and someone else will give write a cost function of automated-task-to-business-need-mismatch which is amenable to optimization, and then we can all go home.

[1] http://www.automaticstatistician.com/index/ [2] http://mlg.eng.cam.ac.uk/lloyd/talks/jrl-auto-stat-msr-2014.... [3] https://groups.csail.mit.edu/EVO-DesignOpt/groupWebSite/uplo...

The halting problem applies equally to human intelligence.
", and then we can all go home."

Going home works for me (if there is not a Terminator waiting there).

I feel compelled to also mention "Using Artificial Intelligence to Write Self-Modifying/Improving Programs" http://www.primaryobjects.com/CMS/Article149

The link above describes a project where an AI wrote programs for Hello World, addition, subtraction, multiplication, Fibonacci, bottles of beer on the wall, and a bunch more.