Thinking About Thinking
This will just be a braindump of some things on my mind. It may not interest you, that’s alright!
Before I start, I just want to note that my daughter turned 4mo the other day and is doing very well. She loves to babble and “talk” to me and my wife. It’s very sweet. Already I feel an immense pride for her. I feel this churning sort of desperation for her future. I will do anything for her to have enough, for her safety, for her chance at success, for her to find something worth living for once she can comprehend such things.
Anyhow, I’ll dial it back now.
I hate self-driving car examples, but I can’t really think of another good way to get into this. Let’s consider a car at a stoplight. Actually, I’ve decided it’s a she-car. She waits behind a car at a stoplight, and there is a crosswalk ahead. She receives a discrete (!) stream of images from her sensor, and that’s what allows her to see what’s going on around her. Each image is analyzed by some sort of function in her program that identifies objects. Every second that goes by, maybe that’s dozens or hundreds of images and this allows her to keep track of her surroundings. You may already see where this is going. The person who is crossing the crosswalk is visible to our friend the she-car in each frame that they can be seen. However, they will reach a point in the crosswalk where they are obscured by the car ahead, such that our friend the she-car cannot see the pedestrian at all for those frames.
You and I experience this sort of thing all the time without realizing it. If you see someone walk around a corner, you know that when you turn the corner they will probably be there, walking further or whatever they might be doing. They won’t have just vanished. However, if I showed you or our friend the she-car, a photo of the hallway, would you be able to know what is around the corner?
The next insight for the problem lies in the understanding of what we mean by discrete when it comes to spatial awareness. Do our brains receive a series of frames, this way? I’m not really sure, but I don’t really think so. Our neurons can only fire so quickly, so there must of course be some sort of limit. There is a reckoning with Zeno’s paradox somewhere.
So then, is it continuous? Well, I don’t know if I can be convinced of that either. I’ve never been a big calculus guy; I like statistics and combinatorics and the real world with all its little edge cases and rigidness. It’s usually smart to approach things from a discrete angle.
Neural networks are complex beasts, and I’m not sure I can be convinced that such large amounts of calculation are required for keeping track of such commonalities.
I wondered for a bit if there might be a better way. I love evolutionary approaches to things, as you may well know if you’ve seen my other posts, and so I thought about a genetic programming approach. Perhaps I want to adjust my agent’s behavior by having a little program that is executed for each frame. This can be pretty efficient, despite how it sounds. PushGP can be used for stuff like this as-is, and stack-based programming is among the faster paradigms for performance due to the synchronicity between the program and the machine’s internals. Anyhow, perhaps this little program is trained and put into action, and then there’s some form of memory that it has access to, and that’s how our agent can relate its surroundings with this control mechanism. So, each frame comes in and gets passed to our program, which identifies things and updates/mutates the memory bank with the current understanding of the surrounding environment.
How similar is that to the way that we think? Again, or still, I don’t know.
I like to think that it might be something close to that.
Have you ever wondered about the way we remember things? It’s sort of peculiar. If I ask you something like, “Who is your favorite movie star?” then your brain rifles through a lot of folders all in an instant. Without digressing too much, let’s just point out some layers of abstraction:
- Hearing the sound of my voice
- Parsing the words from the sounds
- Parsing the meaning of the words from the grammar and structure of the language
- Turning those words into some sort of mental objective. Our brain must decide what next to think, which is insane to think about in the first place
- Who IS my favorite movie star? What movies would they have been in? What makes them my favorite? Is it because of how they made me feel? Is it because of the way they look or act in the movie, or something else entirely?
This is just a few. I could easily come up with a hundred or more, but it defeats the point I’m making. If our memory is some sort of database, then this is an absolutely astronomical demonstration of query optimization and recursion. It can’t be that complicated.
Now, notice something else, if I were to say “Who is your favorite red-headed movie star?” then a different pattern of thought entirely occurs, again in an instant.
What might be happening in that mesh of neurons and bioelectricity? Is it even possible that such a thing could be computed?
I think there’s something to do with graphs here. That may seem like a rather arbitrary thing to say. I think graphs of nodes with properties is an unusually accurate medium for describing thought. Mind maps have been a thing for many decades at this point, but maybe there’s to them then just being useful for organizing.
Doesn’t this match with how it feels to think about this situation? To me it seems like we use our knowledge maps whenever we are making judgments. There’s not a big spreadsheet or anything like that but rather a sea of nodes that we traverse.
There’s plenty of people working on Graph Neural Networks, and Knowledge Graph approaches to machine learning right now. From an anecdotal perspective I am very hopeful that these approaches will flourish.
What happens when an agent can incorporate huge banks of knowledge like Wikipedia into its decision-making process? I don’t mean search; the way computers commonly do, scanning through the bytes for some target string. I can Ctrl-F for anything I want, that’s not the same as incorporating the information. I think that reasonably soon there will be agents able to make judgment-esque decisions based on huge graphs, all while building their own graph as they learn from their mistakes. Probabilistic approaches are great for making use of existing data and approximating, but there are holes like the problem we discussed earlier with the pedestrian in the crosswalk. The knowledge graph can even be attached to these problems, given a sufficiently creative agent to traverse it. When I round a corner after someone, I know they’ll likely be there in the same way I know a car doesn’t disappear to the rear-left of my vehicle on the freeway. They’re in my blind spot and out of my field of vision, but they’re still on my knowledge graph and in my decision-making process.
Anyhow, that’s all for now from me. I’ve been thinking a lot about this sort of thing to distract from the possibility of getting nuked each day. I never thought we’d have to think about that again as a species. One would think, with the capability to just blow up a whole planet and make it unlivable, that we’d all be in agreement to just leave those kinds of weapons off the table entirely. For the love of money, war, and bloodshed, I suppose the show must go on in spite of that tidbit of common sense.
Be safe, thanks for reading.