
Computer model matches humans at predicting how objects move - tekromancr
http://news.mit.edu/2016/csail-computer-model-matches-humans-predicting-how-objects-move-0104
======
nharada
Paper:
[http://www.mit.edu/~ilkery/papers/phys_nips.pdf](http://www.mit.edu/~ilkery/papers/phys_nips.pdf)

~~~
eli_gottlieb
Aka: "Another probabilistic programming paper." They hacked on a 3D physics
engine to make it capable of Monte Carlo sampling and inference, and then
stuck a deep neural net on the front to do some parameter inference more
easily.

------
carapace
[http://www.csail.mit.edu/computer_model_matches_humans_predi...](http://www.csail.mit.edu/computer_model_matches_humans_predicting_how_objects_move)

------
grondilu
Video games could use something like that. Especially for collisions. Games
often struggle to do them correctly and completely absurd results are not
rare.

~~~
ne0phyte
Game physics engines update their objects (acceleration, collision,
constraints/joints etc) only so often at a certain tick rate to leave enough
cpu time for other things. You can have very precise and realistic physics
simulations already - they just don't run at realtime.

I don't think this is a solution for bad physics in games.

~~~
Razengan
Whatever happened to dedicated physics processors? Can't we have a separate
physical unit doing all those calculations in realtime?

~~~
ss248
>Whatever happened to dedicated physics processors?

Nvidia bought PhysX and stopped production of dedicated PPU. PhysX is just
software now. And because it's proprietary (no AMD cards support/CPU
implementation is slow) we don't really see games build around it.

~~~
goldenkey
GPUs or CPUs can be designated as PhysX devices within the NVIDIA drivers. Im
not sure if that rules out using AMD devices but probably.

------
Animats
Finally! This is a big step forward in common sense reasoning. Robots need
this.

------
joe_the_user
The thing is that I don't think what humans are good at is statically
predicting the movement of objects from video.

Rather, I think the strong human skill is reacting appropriately and quickly
to movements.

~~~
jamesrcole
I don't think you could react quickly to something without having predicted
the behavior of that thing in advance.

~~~
LionessLover
Depends on what you mean by "predict". Also, unfortunately I don't even
remember where I saw or heard this in a lecture, but when studying
neuroscience I remember to have seen _exactly_ this question and an example
showing that you actually _don 't_ have to make predictions. I also forgot the
explanation that showed how the (real, biological) neural network solves just
such a problem without having to make a prediction. I only have the fuzziest
memory of it being a process and at no point was there any prediction of the
path of the object being tracked. It was just matching several sensory signal
inputs and creating outputs, something clever, using an indirect approach.
"Predicting" would be observing the object for x amount of time, doing a
calculation where it will be some time later, using a model to come up with a
way to intercept, then creating outputs, all of that in a loop, something like
that. In any case, the way the neural network _actually_ solved it was
completely different from how an engineer would do it. In a sense, the neural
network was "cheating" and doing far less work than you would expect.

The one thing I do remember for sure was there was no "prediction" involved -
none at all. Unless you argue backwards and say because it succeeded you
declare the process a "prediction". Once explained the whole process was
actually quite primitive. Again, that was research on an actual biological
neural network.

Darn, now I wish I had paid more attention. Any actual neuroscientists here?
Without the details even I myself can't see my own comment as a satisfactory
reply, but only as a step to actually getting one from somewhere or someone
else. But note that it depends on what you mean by "prediction" \- as I said,
if you define it backwards from success than sure, prediction happened. My
point is that the _process_ is very different from how a human-made algorithm
would do it.

~~~
jamesrcole
Think of trying to catch a fast moving object. Neutral process are relatively
slow. Then they need to send nerve signals to muscles in the arm and hand.
Then the muscles have to contact. All these things take time.

That means the brain processing had to be done in anticipation of where the
ball will be. That means it has to predict where the ball will be.

I have a feeling that you're using an overly narrow meaning for "predict"

~~~
amatic
There are different ways of predicting. There is a series of research on
catching fly-balls that claims there is no prediction in the sense of
"estimate/predict end position, move to estimated position"; instead there is
an ongoing process of "maintaining the visually perceived velocity of the
ball". You end up catching the ball just the same.

[http://www.mindreadings.com/OpticalTrajRM.pdf](http://www.mindreadings.com/OpticalTrajRM.pdf)

[http://www.mindreadings.com/ControlDemo/CatchXY.html](http://www.mindreadings.com/ControlDemo/CatchXY.html)

~~~
jamesrcole
I mean 'predicting' in the general sense of needing to arrange the details in
advance, which is a necessary requirement on any real-time system.

.

EDIT: to all the responses objecting to what I'm saying

\- I'm aware of the details you are talking about, and I believe you are
reading much more into what I'm saying than I have actually said.

\- do you deny that the brain has to set in motion the muscular activities in
advance?

\- you seem to all be working on a very narrow notion of what predicting means
- that it must be some explicit calculation of coordinates.

~~~
amatic
Then that is probably not the way human or animal brains do object or pray or
something catching. First, you would need very accurate estimates of current
velocity and direction of the object, but human sensory systems are fairly
imprecise. Still, if the details are calculated in advance you would expect
that, say, a baseball catcher would be able to predict exactly where the ball
would fall after the initial visual estimate. This does not happen:
[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3816735/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3816735/)

> even skilled baseball players can’t identify correct ball trajectories or
> predict landing points

~~~
jamesrcole
to take one simple example to illustrate the point:

light comes from a moving object

by the time the light has reached the perceiver the object has already moved
(in most cases, very slightly) forwards.

by the time the brain has done some bit of processing to do with that object,
the object has moved further. brain processing is not very fast.

say this processing generates nerve signals. by the time those signals have
reached muscles, the object has moved even further.

by the time those muscles have contracted the object has moved further still.

what i am arguing against is the assumption that all these details are
instantaneous. they are not. this is a fundamental constraint.

that means that whatever that brain processing is doing, and however the nerve
signals are "telling" the muscles to do, while it is based upon where the
object was at one point in time, _fundamentally must_ concern where it is some
moments later on.

if you don't want to call this a form or predicting, then fine, though I would
like to know why you think the term 'predicting' does not suit what is going
on there, and I'd like to know what alternative term you would use to describe
what the brain processes "concern".

~~~
amatic
At low levels, I think it is probably a very simple computational process,
something like taking a derivative of the position (estimating the direction
and magnitude of velocity of the object in some perceptual space). If we
understand prediction in a loose sense, then taking the derivative would be
predicting, just like the D part in a PID loop is considered predicting.

At higher levels of the nervous system where more abstract variables are
hypothetically handled, there could be something like model-based prediction.
For example, if we are trying to catch a ball we would predict its movement
differently then if we are trying to catch a cat or mouse or a drop of water.

------
tudorw
Finally, we can build a robot that can play a game of peepo :)

