Recently there has been a lot of press announcing that a program has finally 'passed the Turing test' (for some value of passed and Turing test). I'm usually happy to see computer science in the news, and ideas like the Turing test and machines fooling people into believing they're human are good at exciting the public, and just might inspire some kid to think about pursuing a career in computer science. However, in his damning (and entertaining) blog post on the matter (which is well worth a read if you're unfamiliar with the whole Eugene Goostman affair), Scott Aaronson points out that this kind of news has the harmful effect of leading people to believe that the whole field of artificial intelligence is merely geared towards making realistic-seeming chatbots.I took a number of courses related to AI this academic year, and so I thought I'd write a blog post about them, to give an idea of what kind of topics in AI computer scientists really are tackling today.
Robots, sat-navs, and chess: intelligent systems
I really enjoyed this course, which covered methods to solve a huge number of problems using one simple idea: search. For some problems, such as finding the best route to drive from one place to another, this way of viewing a problem is obvious: you drive from place to place, and decide whether to turn left or right (or keep going) at various junctions on the way, until you get to your destination. You can then consider factors such as speed limits to decide which route will get you there quickest.
The key observation behind this branch of AI is that lots of problems can be solved like this if you look at them the right way. When driving, you have a position (or state) and you choose actions (like 'turn left and drive forwards ten metres'), which change your position. Think about chess: in a game of chess, you have a state (the position of the pieces on the board), and you choose actions (moves) which change the state. You have a goal state (where you've taken the opponent's king), and the problem boils down to choosing a sequence of actions which gets you to your goal.
Likewise, imagine a robot on Mars with a mechanical arm trying to dig a soil sample. Its states might be the angles of the joints in its arm, and the extent of its actuatiors. It choose actions: rotating the joints, or extending and retracting its actuators. To dig the soil sample, it must choose the right sequence of actions to move its arm to the ground and dig some soil.
A huge number of problems can be formulated this way, and developing algorithms for finding sequences of actions from a start state to a goal state is a fruitful area of AI research.
Dating websites, face recognition, and studying genes: machine learning
Machine learning is currently a huge area of AI research, although it has been around in various forms for decades. Most machine learning is about data, and lots of it. Since the rise of the Internet, there's a lot of data around: Google processes about six billion searches per day and stores data about what kind of people are searching for what kind of thing. Scientists can pool their results and produce huge databases. The problem is how to use this data to find out useful things. As you might expect, this involves a lot of statistics.
Sometimes we have a question that a person can answer easily, like 'is there a face in this image?'. It's handy to train a computer to answer this question: for example, this let's a digital camera automatically focus on a face, rather than a chair in the background. People laboriously label pictures with faces in them, and train their machine learning program by running it on the labelled pictures. The algorithm 'learns' which features of a picture indicate that it has a face in it, and can then try to guess whether a new, unlabelled picture has a face in it.
There's another kind of machine learning called unsupervised learning which focusses on spotting patterns in data that hasn't been manually labelled.
These techniques are also used by dating websites to learn what kind of people make a successful match, and by Amazon to learn what sort of books you'll buy based on your purchasing history, and by biologists to learn which genes are involved in determining different features of living beings.
Detour: computational linguistics
Computational linguistics is not just a part of machine learning, but machine learning can be useful for it.
This field focusses on using computers to analyse human language. As you might imagine, this has a huge number of applications: translating text, deciphering ancient languages, and detecting spam are just a few that spring to mind. (To see the connection with machine learning, consider how Google Translate works: it considers huge amounts of text that has already been translated, and tries to guess, based on that, how new sentences should be translated).
I didn't take a computational linguistics course this year, but I wanted to mention it anyway, because this is the field of AI which is most relevant to the chatbots which get in the news. The process of correctly parsing a question and generating a sensible response is very relevant to a lot of problems studied in computational linguistics. That said, there are many exciting and useful applications of this research (such as the vocal recognition software behind software like Siri and the Microsoft Kinect), and the goal usually isn't to produce chatbots like Eugene Goostman (fun though they can be!).
Diagnosis, mathematics, and making sense of all this information: knowledge representation and reasoning
An important feature of human intelligence is that we can reason about things we know to figure out new things. As a simple example, I know Jesse Dangerously lives in Canada, and I know Canada is in North America, so I can figure out that Jesse Dangerously lives in North America. Wouldn't it be useful if we could plug in everything we know into a computer and get it to figure out more interesting stuff for us? That's what this area of AI is about.
There are two main parts: first, we need to represent our knowledge in a way that a computer can use to reason with. Usually this takes the form of some kind of logic. This is tricky though, because the more we can say in a logic, the harder it is to reason with (usually)! So lots of different logics are used for different knowledge representation tasks. Then, we need to reason with it. This involves tweaking algorithms to make them efficient enough to handle the amount of information we're reasoning with. (The extra challenge is that many of these reasoning problems are intractable or even undecidable! But for typical inputs modern reasoners can perform surprisingly well).
This kind of thing is widely used in medicine: given a medical knowledge base combined with information about somebody's symptoms and medical history, a reasoner can be useful in diagnosis. This logical reasoning also has obvious applications to mathematics research. On a more ambitious level, some researchers are working on annotating information on the web with logical representations, allowing systems to reason about information from different sources. Imagine if we could feed all the information on Wikipedia into a reasoner. As well as discovering new information, it would give us fantastic power to query that knowledge and get immediate, sensible answers.
The big picture
So most AI researchers are not aiming to simulate a human, or produce a system we can have a casual chat with. But AI research is helping us drive robots on Mars, save the lives of patients with difficult-to-diagnose illnesses, fall in love, and even talk to our phones, and I think that's pretty cool.