Review: Vehicles, Experiments in Synthetic Psychology
A few days ago I finished Valentino Braitenberg‘s Vehicles, Experiments in Synthetic Psychology and I have been letting it gel while trying to figure out how to write about it. Vehicles is a short book written in plain English without a lot of fancy technical talk and yet I feel like someone’s taken my brain and run it through a thing that makes brains different. Braitenberg leads the reader through a series of thought experiments creating vehicles using only sensors, connectors, motors, and a few other basic items. Starting with simple vehicles that can drive around a table top, each short chapter adds a concept or idea to make the vehicles more complex and capable of more sophisticated actions. It’s not long before the imaginary vehicles have the complexity and capability of humans and I found myself going back to re-read chapters thinking I’d missed something. Even before I finished, I was already looking at my cat differently: ‘Is she experiencing a correlation match or causality match with past events? Does she have any comprehension that my head and my hands are connected and related or are they all just correlations?”
This morning I was watching video of some flocking behavior and it it hit me that this is a perfect example of what Braitenberg is talking about in Vehicles when he describes “the law of uphill analysis and downhill invention”. A key reason for using thought experiments is that as outside observers, we are often unable to comprehend why something exhibits a specific behavior and are unable to build or define a structure that would exhibit a specific behavior. On the other hand, we are able to build simple things and understand their behavior because they are things we have created. His suggestion is that rather than spend lots of time and energy trying to analyze behavior from a top-down perspective, try building things from the bottom up and see if we can replicate the sort of behavior we’re trying to understand.
As a software type interested in kinetics and robotics, “top-down vs. bottom-up” is a very familiar argument. Every time I work on a distributed computing problem in CS, I (and my cohort) default to a top-down, control-the-flock algorithm that makes each element of the group do its thing. When I got into MIMD programming on supercomputers, I would solve problems by having different nodes exchange data needed to make decisions, but it was still “Thing A decides what to do after taking orders from or talking to thing B”.
I’m pretty certain birds aren’t having little chats about where they are headed next, and they’re probably not psychic, nor do they otherwise communicate with one another across space and time. My assumption (not being a biologist or psychiatrist) has always been that the “separation, alignment and cohesion” argument explains things; as a software type, it’s something I find easy to implement. How birds can see/think/react so quickly to small objects at a distance is beyond me, but again, I’m not a biologist.
Looking at things from Braitenberg’s perspective, what if it’s a much simpler solution? Perhaps the birds aren’t going through an observe/calculate/act cycle and are instead merely responding to the cues of their neighbors using learned behavior memorized (or evolved) during their lifetime. Pattern A results in Action A, Pattern B results in Action B, etc. If there’s an error — hey, that’s not pattern A — then a quick decision is made to either continue with Action A, go back to the previous action, or react in a new way to try and solve the problem.
I don’t know if that’s the right answer, but I’m starting to think about making some Arduino-based flocking robots for a little tabletop exercise. Even as a thought exercise that I never get around to building, it’s an interesting question. Can individual bots learn to flock based on keeping distance from things next to them and learning a set of patterns to repeat based on the movement of their direct neighbors?
If the flocking of birds, the action of ants and bees in colonies can be explained or modeled using this bottom up behavior (I suspect it can), how would we humans benefit by implementing similar, bottom-up mechanisms?
For example, why does Amazon need to collect all sorts of data about me (in an identifiable, non-anonymous database) just so I can get “other people who like what you like” style suggestions? Why do we need a centralized last.fm server to track all our listening histories — why not share it with people physically near me as I wander around town or post updates to my “Universal Friends List”?
On a more abstract level, instead of Master Control Programs sucking in data and spewing it back out, why can’t our MP3 players and book viewers and phones and laptops exchange information with nearby peers, constantly updating and exchanging anonymous lists of data, analyzing it, and reporting back to us?
Using the insect world as a parallel, what if all of our electronic devices behaved more like bees in a colony, each doing simple things with nearby (physically or electronically) devices leading towards a greater benefit for all? Do we really need our technology to be set up in a virtual army, taking orders from other systems in a hierarchy run by governments and international corporations?
Vehicles is an easy book to read and a hard book to describe. It really is one of those, “trust me, read it” books that you force on your friends until they read it just to get you to shut the hell up. Which, to me, is one of the best things you can say about a book.
Technorati Tags: Arduino, Braitenberg, review, Vehicles
Nice post, sounds like an interesting book. Maybe you’d find this enjoyable: http://www.oosterhuis.nl/quickstart/index.php?id=452
Comment by Adriaan — 2008/08/12 @ 08:28
Oops, posted that comment a bit prematurely. To comment on some of your questions: I think that your proposed locally-based socio-spatial interactions would be a great addition to what’s currently out there already but wouldn’t be a fitting replacement for it. An ant or bird doesn’t have a need to be able to see beyond its current context and humans can, making it relevant to me to be able to relate my local ‘statistics’ to global activity. Or at least I’m assuming that ants, birds and the likes don’t have this capacity; the animal kingdom often suprises us :)
Comment by Adriaan — 2008/08/12 @ 08:35