Hacker News new | ask | show | jobs
by waleedka 3466 days ago
I'm not sure I'm following. Are you saying that using supervised learning is the wrong approach here? What would you use instead?
1 comments

Yes, that's right! The way you are using supervised learning here will force the neural networks to map from textures directly to human labels. A purely feedforward network, no matter how deep, can only rote memorize the effects of the world on the images (viewing angle, lighting, etc) and will not generalize.

Another shortcoming of feedforward nets is they cannot change how they interpret local features based on integrated global aspects of a scene, like ambient lighting or backlighting.

As a result the network will fail to classify on new real world images.

If instead you use recurrence to learn features that take the dynamical and global effects into account, you'll have a better chance of success. One example of how we did his is here [1].

[1] http://blog.piekniewski.info/2016/11/04/predictive-vision-in...

I know very little of machine learning, so...

It seems that your system is supervised for the initial training. Once the system is somewhat trained, is it possible to let it free with unsupervised training, say if the confidence is in some higher range, between some frames? For example, say there was a period of frames with very high confidence, some slightly occlusion or shadow that lowered the confidence, and then another period of high confidence. With something like motion prediction, and some confidence in where the sign was, could you use that period of lower confidence to help train, maybe with some verification from a knows, complicated, supervised data set?

tldr; Are there methods to allow these systems to keep learning once they're deployed?

edit: And this may interest you, the brain appears to predict motion: https://whitneylab.berkeley.edu/people/gerrit/MausNijhawan.P...

Its rather the opposite. It is unsupervised initially, just learns to predict its input. Note there is confusion: the unit itself is using supervised (by the future signal) but all in all nothing needs to be labeled cause the reality just unfolds. Then, once this is done, one can use the trained features (representations) to train supervised tasks, such as the street sign tracking.

PS: yes, there is a strong literature suggesting that the brain is predicting a bunch of things. Check this long review paper http://www.fil.ion.ucl.ac.uk/~karl/Whatever%20next.pdf for plenty ideas and details.

Oh, wow. So really this allows prediction of a complex input, in a general sense?

If I understand correctly, in context of that visual example, if it were trained with a moving camera and a static scene, then its prediction would only be able to predict scene transformations caused by that moving camera. Maybe this explains how the tracking somewhat fails when the ball is moving along the grass towards the end the scene. It doesn't "know" much about moving objects, just moving cameras? So then training with moving objects, would let it predict those, as well?

In what the video is showing, if it can predict perspective transforms from camera movement, like it seems to be doing, does that means it's making something like a 3d model, or something like a depth map used for its motion prediction, somewhere in there?

I would love to see the error video of some sort of rotating 3d wireframe that it was trained to.

This whole approach of a general "predictor" seems extremely incredible.

If the shadow is predictable then the unsupervised (self supervised) part of our Predictive model will not have too much trouble learning to deal with it. But you're right, if it did have trouble, there would be good reason to for the system to continue exploring that type of event.

One way to do this is to link PVM'a prediction error output to an "instinct" that directs it towards lower confidence events that you mentioned. This could be just orienting the camera towards those events, or in a robot producing actions that led to those events again.

Note this is not necessarily reinforcement learning but it relates to some ideas there, like the idea of novelty being rewarding.

I know very little of machine learning, so...

It seems that your system is supervised for the initial training. Once the system is somewhat trained, is it possible to let it free with unsupervised training, say if the confidence is in some higher range, between some frames? For example, say there was a period of frames with very high confidence, some slightly occlusion or shadow that lowered the confidence, and then another period of high confidence. With something like motion prediction, and some confidence in where the sign was, could you use that period of lower confidence to help train, maybe with some verification from a knows, complicated, supervised data set?

tldr; Are there methods to allow these systems to keep learning once they're deployed?