Let us say, we are looking out of a beach under clear blue skies towards a few ships sailing away. How did we know that we were looking at the sea, above was the blue sky and those were ships. Ship_Sea_Sky

Isn't it quite amusing that we have a name for everything that we want to name? And that we have learnt how to differentiate between those names? Would a 3 month old child know how to differentiate between the sky and the sea, considering that both are blue? Or would it know but would just lack the capability to express the difference in terms of names? A 3 year old child would probably have seen ships in books and TV and as a result, when it sees a real ship on a sea, it would immediately make a best guess that it is a ship; Anything so big and floating on sea should be a ship. Basically, the child is finding a pattern. Repeated pattern finding and confirmation (in this case, a verification by the child's parent) would enforce the idea that it is a ship. Errors can still be possible. Even a grown up person can see an oil rig in the middle of the ocean from far and mistake it to be some ship (since the pattern matching algorithm would first point to a ship).

Machines now have the capability of recognizing faces (every camera has it), roads (try using google map maker) and web scale artificial intelligence is everywhere (Google, Siri etc). You ask a question and it can throw millions of answers to you. Most times, you get specific answers to your questions. Throw a huge pile of meaningless data and data mining algorithms can find patterns out of them where even a human would possibly find none (try http://www.gapminder.org/).

Yet, a machine that can tell perfectly what it sees is still not fully developed. What I mean here is, looking at the above photo, can a machine tell the following:

I see the sea. The sky is blue. There is a ship in the sea.

A recent project seems quite interesting in this respect: A Robot that can detect obstacles. Most of the technology required for such an intelligent machine are already available in the form of image processing and machine learning algorithms. Now, as is always the case, a machine designed to work under a limited environment is easier to build as compared to general purpose AI (such as Asimov's Robots). The biggest step would be when a machine would just know what to do under every circumstance in the real world (better than or equal to humans).

Naturally, this could be done by mimicking human behavior. How do humans learn? From the time when a child has learnt to speak, it starts asking the question "why". A child is curious about everything; a stone, a stick, fire, everything it sees has to be investigated. This is one quality that a machine should have if it has to learn. Unsupervised machine learning algorithms would enable a machine to recognize patterns but it would need to ask the question "why" by itself before it can learn everything there is in the world.

Imagine that a robot with such a capability starts analyzing data in the internet, finds patterns and starts asking questions about it on the thousands of forums in the internet. Some questions may make no sense, just like a child which sometimes speaks nonsense. Some would. And there would always be people answering these questions. And then true AI would be born..