Skip to content

This can't be how neurons work, can it? #113

Description

@tim1e9

I find this code (and accompanying YouTube video) really fascinating. This is such a clever way to come up with a solution! If you gave me years of free time, I doubt I could come up with something so elegant. Very impressive, indeed!

Now that I've had a week or two to digest it, I'm wondering if someone could clarify something for me. I'll start out with a couple of observations, and then move to the question.

Note: I'm new to this stuff. This post could have some silly mistakes, or some incorrect assumptions. I am not presenting myself as an expert, but a novice who has encountered a confusing situation. I'm hoping for clarity - not validation. With that as background, I'll proceed.

In summary, backpropogation provides a way to come up with a solution (e.g. set of weights) that allows the neural net to provide the correct answers to the set of inputs (or "equations"). However, it is only a single solution. There are, it appears, an infinite number weights which will yield a valid solution. (And with a little Gen AI help, it seems obvious why: We have 41 parameters, but only four equations.)

Okay, fine: There are an infinite number of solutions to the four equations. So what? Well, what happens if you throw in an equation which adds a new aspect that hasn't been seen before? For example, what if you take this:

xs = [
  [2.0, 3.0, -1.0],
  [3.0, -1.0, 0.5],
  [0.5, 1.0, 1.0],
  [1.0, 1.0, -1.0]
]
ys = [1.0, -1.0, -1.0, 1.0] # desired targets

And make it this:

xs = [
  [2.0, 3.0, -1.0],
  [3.0, -1.0, 0.5],
  [0.5, 1.0, 1.0],
  [1.0, 1.0, -1.0],
  [1.0, 2.0, -3.0]
]
ys = [1.0, -1.0, -1.0, 1.0, 1.0] # desired targets

What happens to the previously calculated weights?

Stated another way: If I solve (e.g. determine collective weights) for 4 equations, does it bring me any closer to solving for 5 equations, or must I start all over again?

From what I can tell, you have to start all over again, and solving for 4 means nothing with respect to solving for 5. Here's my thinking:

  1. The number of solutions for 4 equations is infinite.
  2. The number of solutions for 5 equations is also infinite, but a subset of the solutions for 4. (If I understood Cantor's different types of infinity better, I'd say something really smart here. But I don't, so I can't.)
  3. We solved for one such value for 4 equations. The odds of that being a correct one for 5 equations approaches zero.
  4. To solve for 5 equations, we have to start all over again, and we gain "nothing" from first solving for 4 equations. And by "nothing", I mean - in light of the new equation, all of the weights must be completely reconsidered. The fifth equation invalidates everything we understood for solving for four.

This is the point where I'd kinda like to be wrong. And if I am, I will be in your debt. Because if it is true, then I can't imagine this is how our own neural nets (brains) work.

Regarding our brains: GenAI tells me we have something like 86 billion neurons, with each neuron (on average) having something like 10,000 synapses. In other words, there are far more neurons than necessary to "solve" for my current set of knowledge (or data points). However, if I come across something new, which contradicts the existing assumptions I've made, I don't have to start learning all over again. Instead, my brain simply incorporates this new nugget of data, and keeps going. Conversely, if it worked as described above, then the new information would invalidate all of the other "weights" of all of my neurons, and I'd have to re-learn everything.

To cite an absurd example: Today I learned something new about rhythm: if you tap along to a beat, your taps actually precede the sound by a few milliseconds — you’re not following, you’re predicting. That's cool! However, despite learning something completely new and surprising, I still know how to tie my shoes.

So... If this is how neurons work, then why didn't I have to re-learn to tie my shoes?

I welcome your comments and insights.

Best regards,
Tim

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions