I think the mark of intelligence is the ability to make adaptive assumptions from some implicit state and make your result more correct.
I attended a colloquium recent from an assistant professor from Berkeley about convex optimization and its use in Robotics. (I’m a PhD student in AI/Machine Learning) He presented a Robot that could fold laundry. This is actually a rather complex project, because unlike factory assembly robots, this robot wasn’t allowed to make assumptions about the state of the cloth. It could be arbitrarily twisted and crumpled (within reason – no knots or anything) before the robot manipulated it.
The robots took a really long time to actually accomplish the task (we’re talking minutes per piece of cloth), but it was able to find the cloth, grasp it, analyze it with a camera, build an internal model, and figure out how to untangle and fold it.
This is fairly close to AI, but not perfect. The issue I have with things like Siri is how context-free they are. Siri makes very local assumptions about what you meant based on other words, but she lacks the ability to make corrective assumptions based on more global context. On the other hand, Google does this to a degree.
More to the point, one of the major problems with AI and Machine Learning in general right now is a severe lack of flexibility. Slightly different problems will require learning everything again from the ground up. Even that cloth folding robot had to be almost completely retrained just to change the problem to “tying a rope”. A significant amount of effort is also put into feature selection. We have pretty good algorithms that can learn tasks as long as you have a team of data analysts that can figure out what’s important to the model, and know how to control samples so you don’t accidentally overfit.
There’s definitely some work on both ends, Deep Learning tackles the former problem fairly successfully (with “successfully” being a relative term), while some of the work in Transfer Learning tackles the latter. Neither are really “there” yet, but the work is there.
A big part of the issue is market realities. For one, ground up, semi-supervised deep transfer learning takes a huge corpus of data and often a long time to “bootstrap” (though it’s fairly robust after that bootstrapping phase). From the perspective of a developer, getting this sort of generalized model-learning AI would be ideal, but it’s far easier to take some out of the box software and massage it to perform a domain-specific task (even if massaging the problem this was can still involve years and a lot of math). “A lot of data” is also hard to come by for a lot of domains, especially if it has to be hand-labelled by an expert (otherwise you can whore that part out to Mechanical Turk or something).
So we kind of have AI, but it requires a lot of human intervention. IMO, the state of AI right now is sort of like doing complex numeric calculations before computers. Certainly possible, but more error prone and often arduous.