Human-level concept learning through probabilistic program induction
sciencemag.org
sciencemag.org
For example, someone who looks at a segway, won't just see the pixels of a two wheeled vehicle, and that it is axially unlike a bike, but they may have also read articles about it, and know that two wheeled vehicles without peddles or mechanisms for riders to stabilze them, imply the device has a self-stability function.
Thus, a human being could group a segway or unicycle segway type device, with BB-8 style self-balancing/gyro balls that people can ride as chairs. But to do so, they are relying on reasoning about how the device must work, not just image recognition.
I mean, I welcome all of these advances at getting better at recognition tasks, but I still feel like we're producing "Fast Brain" AI, not "Slow Brain" AI.
A couple things to note:
1) One of the authors of the paper, Russ Salakhutdinov, has worked alongside Geoff Hinton to produce major advances in deep learning.
2) While the title appears to include a broad set of problems, for the moment their work has been on images.
This is one of the most exciting and readable papers I've come across.
Does anyone know if the code is available anywhere? Can we reproduce their results? I can think of a dozen applications for such an ability.
There should be a flurry of activity as practitioners take these concepts and start applying them to other fields, such as static code analysis. Much of the magic seems to be in the choice of atoms that you feed in to the algorithm.
It's not entirely clear how you'd apply these concepts to new problems. Certainly in many cases you could come up with more detailed models of the processes involved. But in others, like text understanding, it's not at all clear how you'd make models more sophisticated.
I'm not sure this paper's algorithm is that powerful either. It seem to start with a squiggly line grammar that is already close the the final written text-like characters it is trying to learn. This narrows the model space very much and makes the problem easier.
It would be more impressive if it started with an SVG like grammar and learned to draw any kind of image. This is the approach I try to take anyways even if I can't seem to get very far.
The problem is that the search space is so large and so irregular with regards to output that you can't brute force it. You need to somehow cluster similar generative rules of different complexity together then get your algorithm to search the model space in a way that it tries simpler rules first, then goes on to try generating more complex rules but prioritize the ones that are known to have similar output to the simpler ones.
Basically you have to cluster your generative rules into an taxonomy that your algorithm can navigate from the top. It's exponentially inefficient to try to generate "dog" until you have recognized that the simpler "animal" is a good approximation.
I also think that in the ultimate solution, the output leaf statements of the grammar will be parametrized like a normal programming language, so that for example, the algorithm can generate a color, a radius and then generate 100 circles referencing this single color and radius to represent repeated patterns without having to learn their size and color individually when they are clearly homogeneous or invariant across a bunch. The bayesian, occam's razor, solution to a bunch of similar things that you don't have a category for yet is shared parameters. These parameters is how you learn with very few examples. You don't have to learn a full new category to make good predictions, the algorithm can simply notice the homogeneity in a part of a scene and extrapolate immediately.
Not sure how to make them computationally tractable however.
We'll see, I guess...
https://www.sciencemag.org/content/suppl/2015/12/09/350.6266...