Futurisms: Critiquing the project to reengineer humanity

Saturday, June 12, 2010

Is thought written in Scheme?

Here comes an ambitious talk from Noah Goodman (bio, on-the-fly transcript), attempting to answer (in ten minutes!) the question What is thought? Among other things, he says, "Thought is actually incredibly useful." Well, who'da thunk.

He continues, "I want to answer these questions not at a philosophical level, but at a truly precise level." I'm not sure why those are mutually exclusive. Philosophy is supposed to be the discipline for the precision of thought.

And, sure enough, Goodman launches into describing thought at what he says is a "computational/engineering level," asking, "What are the engineering principles that we need to understand what is thought?," but he presents a formalism for thought in the lambda calculus — a model created by Alonzo Church that inhabits that region of theoretical computer science that lies somewhere between mathematics and philosophy, very abstracted from practical concerns of computer engineering.

It strikes me how clearly and explicitly advanced here is a thesis that I've argued before is implicit to all AI research — that thought not only can be described as a computational process, but is a computational process. This raises the curious question of in what programming language thought is executed. Goodman actually again answers explicitly: "Mental representations are functions in a probabilistic lambda calculus." (Maybe it's implicit or I missed him saying that this should just be regarded as a theoretical model.)

As far as AI overreach goes, though, I actually kind of enjoy this type — if for no other reason than that Goodman's approach is so abstract as to seem rather elegant. It's quite reminiscent, actually, of the early logic-based approaches of 1950's AI, a very pretty and appealing approach in comparison to the messy, opaque neural-network understanding of AI that's more in vogue today.

The best part of this is that Goodman's presentation uses the Scheme programming language, which is based on the lambda calculus, and is one of the most elegant programming languages around (and so one of the least practical). Mathematicians dream at night that brains are written in Scheme. But I'm afraid the hard truth is that it's probably written in C.


  1. It might be written in C, but it effectively runs on lots and lots of Perl scripts.

  2. Randall Munroe would approve. I am not sure that is a mark in favor.

  3. Goodman's procedure puts me in mind of the story of the drunk who looks for his lost keys under a street-light not because he dropped them there, but because that is where the light is.


[Basic HTML tags can be used in this comment field. Comments are moderated for civility and relevance and will not appear until the blog's editors have approved them.]