Hacker News new | ask | show | jobs
by taeric 603 days ago
This isn't some innate ability that people have. As evidenced by how bad my kids are at catching things. :D

That said, I think this is a good example. We call it "muscle memory" in that you are good at what you have trained at. Change a parameter in it, though, and your execution will almost certainly suffer.

2 comments

"Muscle memory" has always seemed like a terrible name for that kind of skill. A ball will be thrown to a slightly different location every time. There's no memory evolved there at all, its just calculations and predictions happening at a level that our conscious mind doesn't seem to see or recognize.
It is a trained skill. And one that you are very unlikely to be able to do without training. Such that it really does come as a sort of memory that you implant in your muscles.

You seem to be objecting because it is not perfect recall memory at play? But it is more about appealing to "remembering how to ride a bike" where you can kind of let the body flow into all of the various responses it needs to do to make the skill work. And if you've never done it... expect to fall down. Your muscles don't have the memory of coordinating in the right way.

And no, you are not calculating and predicting your way to what most people refer to for muscle memory. Is why juggling takes practice, and not just knowing where the balls have to be going.

I think it's actually a good name.

The "memory" is stored as the parameters of a function. So, when you practice, you actually update this memory/parameters.

This is why you can use the same "memory" and achieve different results.

Think of it as

function muscleAction(Vec3d target, Vec3d environment, MuscleMemory memory) -> MuscleActivation[];

To complete the other comment: the MuscleMemory is updated through learning, so a more complete example would be:

    function muscleAction(Vec3d target, Vec3d environment, MuscleMemory memory) -> {actions: MuscleActivation[], result: Vec3d}
After executing the muscleAction function, through "practice", the MuscleMemory will be updated.

    function updateMuscleMemory(Vec3d target, Vec3d environment, MuscleMemory memory, MuscleActivation[] actions, Vec3d result) {
        memory.update(target, environment, actions, result);
    }

Sort-of like backpropagation.
I mean even people that are "bad at catching things" are still getting ridiculously close to catching it - getting hands to the right area probably within well under a second of the right timing - without being taught anything in particular about how a ball moves through the air.
Uh.... have you been around kids? It will take several absurd misses before they even start to respond to a ball in flight.
I hope we still agree the kids learn extremely efficiently by ml standards.
Makes a lot of sense, there's massive evolutionary pressure to build brains that have both incredible learning rate and efficiency. Its literally a life or death optimization.
It's especially impressive when you consider that evolution hasn't had very long to produce these results.

Humans as an intelligent-ish species have been around for about 10 million years depending on where you define the cutoff. At 10 years per generation, that's 1 million generations for our brain to evolve.

1 million generations isn't much by machine learning standards.

I think you're underestimating how much our time as pre-humans baked useful structure into our brains.
These sorts of motor skills are probably older than mammals.
Other than our large neocortex and frontal lobe (which exists in some capacity in mammals), the rest of the structures are evolutionarily ancient. Pre-mammalian in fact.
Its much more than that if you count sexual reproduction.
This isn't that obvious to me with current tech. If you give me a novel task requiring perception, pattern matching and reasoning, and I have the option of either starting to train an 8 year-old to do it, or to train an ML model, I would most likely go with the ML approach as my first choice. And I think it even makes sense financially, if we're comparing the "total cost of ownership" of a kid over that time period with the costs of developing and training the ML system.
> This isn't that obvious to me with current tech. If you give me a novel task requiring perception, pattern matching and reasoning,…

If that’s your criteria I think the kid will outperform the model every time since these models do not actually reason

As I see it, "reasoning" is as fuzzy as "thinking", and saying that AI systems don't reason is similar to saying that airplanes don't fly. As a particular example, would you argue that game engines like AlphaZero aren't capable of reasoning about the next best move? If so, please just choose whatever verb you think is appropriate to what they're doing and use that instead of "reasoning" in my previous comment.

EDIT: Fixed typo

Depends on the task. Anything involving physical interaction, social interaction, movement, navigation, or adaptability is going to go to the kid.

“Go grab the dish cloth, it’s somewhere in the sink, if it’s yucky then throw it out and get a new one.”

It's more about efficiency in number of trials.

Would you pick the ML model if you could only do a hundred throws per hour?

All we can say for sure at the moment is that humans have better encoded priors.
Stop missing and they will respond to the ball a lot sooner.