From Turing to CAPTCHA

The subject of artificial intelligence (AI) is one of my favorites. I find it so interesting, not because of the much debated argument of whether an AI can be created, but because of the many misconceptions and blatant inaccuracies most of the people believe about AI. It is a controversial subject with many ties to Science, Philosophy and Psychology, and it is "doomed" to attract further attention at an exponential rate with the advances in information technology.

Alan Turing, the famous English mathematician was one of the pioneers in the studies of artificial intelligence. Turing had a pivotal role in the construction of one of the first computers in the late 50s. Afterwards he moved on to work on creating programs for this computing machine. Around that time he also toyed with the idea of machines that could think. While he did not coin the term "Artificial Intelligence", which is ambivalent in essence anyway, he came up with the idea of a theoretical test, later named after himself: The Turing Test. The Turing Test defines what is "human" and what is "artificial" by example.

Specifically, the Turing Test acts as a shortcut for circumventing the vague arguments of what is AI. Instead of trying to describe the differences between "human" and "artificial", Turing gave a solution by defining that any test or group of tests which have the feature of being able to distinguish between a human being and a machine, without discrimination or further knowledge, is called a Turing Test.

The standard example, used in most texts, describes two rooms which are isolated from the exterior, with no capacity for those outside of the room or inside to communicate with the other side, other than through a small slot, which allows only for a piece of paper to pass through. In one of the rooms, a human being is placed, while in the other a thinking machine is placed. The person who is performing the Turing Test has to come up with a question or problem or any other form of text that can provoke some kind of answer, and he or she transfers this query to two pieces of paper. The two pieces are then inserted into each one of the slots and the person at the outside waits for an answer. His query is called a Turing Test if he or she can deduct, without any other hint other than the answer offered back through the slots, the room which houses the human being and the room which houses the thinking machine.

In order to bring this into perspective let's see an example. The person at the outside writes down the following text on both pieces of paper, :

1 + 2 = ?

a human being that understands math would give back an answer of 3. However computers capable of scanning such a piece of paper, understanding the notation and doing the simple math also exist. This test can not reliably allow the person at the outside to figure out which room houses the human being and which the machine. In this case the test in question is not a valid Turing Test.

Computation is not something that can distinguish human from artificial intelligence. That is were Turing and his test gave the researchers a great tool. Turing did not want to define a specific test, however he gave us a benchmark to logically deduct if a specific attribute of human intelligence or even human behavior can act as a way to distinguish humans from computers. Let's see another scenario to make this more clear.

642511296267962 = ? -- Give an answer within 1 minute

With this kind of test you can see the glory of Turing's idea. Very few, if any, human beings can give an answer within one minute for this question. However many computers can. If both test subjects try to answer truthfully then the one giving the correct answer is the machine!

"Well", you might say, "what is the point of all this? Did Turing provide us with a test for AI that distinguishes humans from computers through the human inability to compute large numbers?". Well for starters Turing, and I will state that again here, did not offer, suggest or provide any test. The beauty of his definition is that a test for AI can and maybe should transcend a specific area of human intellect (such as computations in mathematics) and can move further on to combine more. If this test was to fail as a candidate for a proper Turing Test, we would need a machine which has the computing power to find out whether this problem is beyond the capacity of a human being and decide to... lie! Machines don't lie, this is a human trait. This second test relies on that.

But what if we could create a machine that could decide whether a mathematics problem is within the capacity of the human intellect and decide to give a false answer, if the problem was deemed too difficult. You may say that such a feat is not possible, but I will argue that it is not beyond of our current capacity in computing power. After all, humans have a varying skill in computing numbers and "setting" the capacity barrier of the computer close enough to a statistically good point, would surely create enough doubt to the person carrying out the test.

It seems that this second test gets closer to be called a Turing Test but it is not foolproof enough. As far as I know, no proper Turing Tests exist as we speak as most of the propositions can be either fooled in practice or in theory (which is as good, because what is theoretical today may become practical tomorrow). However the Turing Test concept gave security experts some good ideas to help against cracking attempts from individuals automating exploits. The most common tool of this kind is CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) and it serves as a way to protect online services such as blogs, forums and subscription forms from being spammed from automated scripts. The CAPTCHA test is usually a small box of distorted characters that are difficult or impossible to distinguish by an automated procedure. The focus of such a process is to discourage a cracker from maliciously spamming a forum, or creating multiple email accounts at popular webmail services to use for sending spam. This process (used in this site as well) was functioning pretty well till recently. A post at the Ars Technica site describes how modern malicious software has the capacity to give correct answers to CAPTCHA checks. This news bit has been reported by other news services as well, and its validity cannot be challenged. The CAPTCHA then is not a proper Turing Test, in fact it was always thought as a best effort case for approximating a Turing Test.

The juicy part of this story though is that so many sites have been using CAPTCHA to tell humans from software apart, that now a serious change in the theory of security has to take place. More than that, and this is the focus of my story, what was considered a successful test till yesterday, gives us false results today and in the future, and if we extend this line of though a bit more, what we considered to be artificial yesterday is considered human today and tomorrow...

My opinion is that the Turing Test idea is less of a help towards distinguishing a human from a computer, and more of a logical tool to help us define what is human. By refining the test more and more, whether the test is based on mathematics, psychology, recognition capacity or creativity, we can understand what are the scientific attributes of "humanity". However, and this is my favorite part, even if we devise a successful test, something like CAPTCHA but transcending all aspects of human intelect, which can tell humans from computers apart, there is still a chance that some very powerful computer, armed with vast collections of data and superior software, will be able to offer reasonable answers to this new test... will this be considered then human enough?

Comments

no amount of experimentation

no amount of experimentation can ever prove me right; a single experiment can prove me wrong
-- albert einstein