David Molnar ([info]ephermata) wrote,
@ 2005-12-20 21:14:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Human oracles
A while back, a friend asked me if human beings are "Turing machines or limited function machines?"
I decided to interpret "limited function machines" as asking whether human beings are finite automata or pushdown automata. As it turns out, we have some evidence that humans are not.
In particular, Swiss-German has language constructs that imply its speakers can recognize the language
{a^n b^n c^n d^n | n in N}, but this language is not context-free. So whatever kind of machine Swiss-German speakers "are," they can't be pushdown automata, because Swiss-German speakers decide a language pushdown automata cannot.
The original paper is

Stuart M. Shieber , 'Evidence against the context-freeness of natural language ', Linguistics and Philosophy , pp. 333-343 , 1985.
(Edit: Thanks to the anonymous commenter for catching an error in the earlier reference and definition of the language.)

There's an online resource explaining it at http://ucrel.lancs.ac.uk/acl/J/J84/J84-3001.pdf (see p.173).

So this leads to a question - what exactly is the class of problems that can be solved efficiently (or, if you like, the class of languages that can be efficiently decided) by humans?
Ellen Ullman has an essay in the _Best American Science Writing 2005_ that also touches on this question. In "Dining With Robots," she talks about how her 1979 introductory programming class used baking a cake as an example of a recipe, and by extension, a kind of computer program. Then later, she contrasts this with an actual recipie out of _The Art of French Cooking_, Volume I, by Julia Child.
Ullman points out that in the real recipe book, there are many terms that depend implicitly on human experience, such as what a "nice brown" or a "rosy center" mean in the context of cooking beef. The rest of the essay explains an argument that artificial intelligence is difficult because humans just have so much tacit, difficult-to-articulate knowledge.

After reading the essay, I wondered if we could somehow have humans help out with robotic cooking. After all, I've seen The ESP Game and PeekaBoom, in which humans collaborate to solve image recognition problems that are difficult for computers. I've solved my fair share of CAPTCHAs to get free stuff or make blog posts, and as far as I can tell, most of them weren't doing anything useful. Besides slow me down, that is. So why not build a human-assisted cooking machine? Instead of typing in meaningless words to get free stuff, now you have to determine from a photograph whether a cut of beef has a rosy center.
Of course, this is a bit of a pipe dream. Still, a friend of mine recently pointed me to a service that makes it slightly more possible. Amazon's Mechanical Turk allows you to write applications that make calls to humans. You pay the human a certain amount of money (usually a few cents), and Amazon collects a percentage. In return, Amazon provides the API, puts up the web site, and advertises to potential problem-solvers.
www.mturk.com

What will be really interesting is if we can get people on cell phones to use something like the site. Then everyone bored on a bus or in a car or elsewhere might be willing to help out.
There's some discussion of how you can tackle the security issues that come up. The ESP Game and Peekaboom handle this in part by recognizing that non-colluding cheaters usually won't pick the same wrong answer. For an overview of that work, see Luis von Ahn's web page at
http://www.cs.cmu.edu/~biglou/research.html
There's also a paper written by some colleagues of mine at DoCoMo
"Secure Distributed Human Computation"
C. Gentry, Z. Ramzan, S. Stubblebine
www.docomolabs-usa.com/pdf/PS2004-032.pdf

Finally, there's even applications of human input to search problems. (Just in case you thought this was all about language and cooking!) Michael Mitzenmacher and others have done work on human-guided search strategies. You can see some of his papers here:
http://www.eecs.harvard.edu/~michaelm/ListBySubject.html#Hugs
Probably there is more such work. Anyone have good links?
Two things strike me as interesting about this type of work. First, it's an implementation of the old idea of an oracle Turing Machine with a new type of oracle. Instead of looking at an NP oracle or a carefully crafted oracle, we use a human. Second, we are still in the stages where the formalization of the problem is being worked out; this gives us a chance to see how different formalizations reflect different approaches. That, in turn, gives insight into one of the overarching concerns of computer science: how to represent and reason about problems.


(Post a new comment)


(Anonymous)
2005-12-20 11:38 pm UTC (link)
Well, shouldn't the language rather be something like {x a^n b^n y c^n d^n z | n in N} ? At least that's what I think after skimming over the online article. And, please excuse the nitpicking, the paper is named "Evidence against the context-freeness of natural language", unless I completely misunderstood something.

(Reply to this) (Thread)


[info]ephermata
2005-12-22 10:27 am UTC (link)
Thank you - fixed.

(Reply to this) (Parent)


[info]ciphergoth
2005-12-21 12:38 am UTC (link)
Strictly speaking we're finite, and no more powerful than FSMs, like all real computers. But I've no doubt that given unbounded brainstuff we could be Turing-complete.

(Reply to this) (Thread)


[info]ephermata
2005-12-22 10:38 am UTC (link)
Yeah, I didn't get into that. This, as always with a finite world and asymptotic results, gets into some fun issues. For example, Ned Block consdered a "Blockhead" that consists of a gigantic (but finite) look-up table for responses to everything a human might be asked in the course of a lifetime. The Blockhead might reasonably be able to pass a Turing Test. Is it "intelligent" ? If not, does that mean the Turing Test is flawed?

You can read more about that in an anthology of work on the Turing Test edited by Shieber. See
www.turingtest.com

or online (along with a discussion of the Turing test in general) at
http://plato.stanford.edu/entries/turing-test/

Wired also has an article that touches on this in the context of the 1994 Loebner prize for AI that can pass the Turing Test. Several of the entries relied on look-up tables.
http://www.wired.com/wired/archive/3.04/turing_pr.html
of course, the contest has changed in the years since then; the current home page is at
http://www.loebner.net/Prizef/loebner-prize.html

(Reply to this) (Parent)


(Anonymous)
2005-12-23 07:44 am UTC (link)
It is important to make a distinction between whether or not natural language is context-free and whether problems solved by humans are context-free. Anyone can tell you whether or not a string is in the language you mentioned, but whether that pattern occurs in natural language is a separate issue.

(Reply to this)

Human Oracles
(Anonymous)
2005-12-29 09:37 am UTC (link)
A similar thing came up with a friend of mine. He wanted to sort his rough list of his top fifty movies, and thought to use quick sort, since this is generally considered fastest (though I guess that's debatable on a set so small). Anyway, he hiccuped here for a minute on what it would mean for the computer to sort something based on his opinions. I responded by suggesting that he use himself as an oracle. All we're really counting in the running time of comparison-based sorting algorithms is the number of comparisons. In his case, the rest of the running time was essentialy nil; what he wanted to minimize was his own work. Just like, say, PCPs. So the computer just ran quicksort, prompting him on which of two movies he preferred every time it needed to make a comparison. Maybe this kind of thing is common, but it seemed amusing at the time. This was actually the most efficient way for him to sort the list, assuming he doesn't have any rough bucket-sort-like ability to claim that a movie belongs in some range of numbers without actually knowing what the positions of the other movies are. Okay, he probably does have that ability.

- Alex Jaffe

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…