Moravec's paradox
en.wikipedia.org
en.wikipedia.org
It's also not clear that there's really a valid comparison here. In order for computers to recognize objects we need to program them to learn recognition on their own (because programming them explicitly to do it would be far too hard). When we program a computer to solve a logic problem the computer isn't learning to solve that problem, it's the programmer, not the program that "knows" how to solve it.
Trying to teach a neural network to play chess is probably much harder than teaching it to recognize images (at least my very limited experiments suggest this to be true).
"Trying to teach a neural network to play chess is probably much harder than teaching it to recognize images (at least my very limited experiments suggest this to be true)."
That, sir, depends on your definition of "hard". The rules of chess are, after rules, so you could just set a neural network free within those constraints to play until it found a way to win, and continue to play until it reached a certain performance level.
My attempts to train similar networks to learn the rules of chess (just the rules, I'm not even talking about trying to win) have not led to good or steadily improving performance, despite the fact that there's effectively no limit to the amount of training data that can be generated for chess.
There are a number of possible reasons for this of which I think 2 likely ones are that:
1) The networks I'm using have insufficient computational/storage capacity to learn the rules of chess.
or
2) Even if (1) is not the case gradient descent is unlikely to find a sufficiently good near optimum because the response surface is too complex.
As a conjecture, do you think splitting the logic up into several smaller neural networks with different objectives (i.e. for chess, one evaluates defensive maneuvers, one for attack, and so on) would alleviate the problem? Or at least improve the performance of the machine as a whole...
But... where's the room for doubt? This isn't an article from 1930 about theoretical possibilities of what may happen someday when we have a lot of computational power. This is an observation about how perception has proved to be much more complicated than more pure reasoning, one quite old, robust, and well-established. The question is more about why that is true than whether it is true.
In a further comment you reply about how you could not convince your neural net to play chess... but again, we are not theorizing that computers may be good at chess someday. We live in a world in which, if they are not already simply better than humans, we only a couple of years away. Certainly better than all but the absolute very best. Whereas we still get excited when we see a robot that can walk up or down a normal, rocky hill at all.
Also, it baffles me how you think that explaining why logic is easier than perceptual problems is somehow disproof of that very fact. It doesn't matter that it's "really" the programmer that knows how to play chess (even if I'd observe the machine is still doing it better) when we still can't hardly make machines walk at all, regardless of whether the programmer or the computer is the one "knowing", a concept that in this context comes perilously close to a tautological assertion that if a computer can do it it must not be true "knowing". If we were really good at both sensorimotor and logic, but with two radically different toolkits, that might be an interesting point, but that's not the world we live in.
That does not necessarily imply that perception is intrinsically so much harder than logic, merely that it is using those tools.
It may turn out for example that there exist (in a mathematical sense) functions which are good at recognizing characters which are simpler than the simplest function which is good at playing chess. If that were the case it would make sense to say that chess is intrinsically harder than character recognition, even if humans have historically had a harder time discovering the recognition functions than the chess playing functions.
On your last paragraph there's a huge difference between a program discovering a good solution to a problem, which is what happens in machine learning, and a programmer discovering such a solution then creating a program to implement it. In the first case we may begin to consider the program to be showing signs of intelligence while in the later it's just a really fast calculator which isn't doing anything the programmer couldn't do.
Is there circularity here - yes because we can say the same thing of the learning program if we treat it at a lower level of abstraction and therein lies perhaps the core of the problem of understanding what we mean by intelligence.
Again, this might follow if, say, nobody had ever tried to come up with such tools, and we were going to try for the first time this year. But people have been trying, and failing, and failing. Of course it will be easier when the tools exist; robot.walk_to(grocery_store) is as easy as any other function to call, but it is obviously much harder to implement.
In the "mathematical sense" I can simply assert the existence of "recognize_character(image_matrix)". In reality, the complexity of such a function is obviously much higher than, say, a Prolog implementation.
You keep retreating into theory, but again, that's not the world we live in. The world we live in is one in which the problem of sensorimotor perception and manipulation has received immense work on it, and remains in a state in which it is still wildly less capable than my dog in most ways, whereas we were knocking out things like SAT solvers that blow humans away (which are notably incapable of holding very many symbols in their heads at once) decades ago. It doesn't matter if you can theorize a world in which perceptual problems are easier than sensory problems; we don't live there.
So why is robot.walk_to(...) "obviously harder to implement"? How could we know that simpler implementations will never be discovered? What you call "immense work" is not even a century's worth. In hundreds of years, making a robot walk convincingly might be no more difficult than implementing an effective chess AI.
I suppose I'm getting at a concept of minimality (like Komolgorov complexity). Just having a solution does not mean it's a minimal solution. We know enough to say perception is harder right now but not enough to say perception is intrinsically harder. We can't know that new breakthroughs (or just lots of gradual development) won't make these problems simple ones.
(*Actually, I do agree that lots of smart people failing at a problem is probably a good indicator that the problem is hard. This is still no guarantee though.)
It can be difficult to understand this from our present-day perspective where we have so thoroughly internalized this idea that it has apparently passed into invisibility for some of us. Go back and read Asimov's robots work, in which he has robots walking, talking, socially interacting with humans, even pondering great ethical conundrums, while at the same time it requires massive resources to attain the raw numerical computational power available to a Commodore 64.
Go is a good example of a game that can't effectively be brute-forced. There are a lot of other examples out there; that was just the one I happened to pick.
The point is that something like crossing a room and picking up a pencil seemed easy, and to this day is still a significant achievement for robotics, still requiring fairly controlled circumstances.
Just because you failed to do one thing doesn't mean you succeeded in doing another.
Yes, it's still far from the level computer chess was 15 years ago (beating top pros), but they're getting there. And I don't think it will take any major breakthrough in AI itself.
I'm not so sure you start a good argument though. 'Harder' is all about the tools at hand. If you have the right tools, everything is easy. So to me this is all semantics. To me all the wikipedia page basically says is 'we haven't invented a good artificial tool for generalized, fast perception'.
Of course the other way to think about it is that humans and other animals devote generally much larger amounts of physical space (in the brain and otherwise) to subconscious things like perception and subconscious memory than they do to conscious things like logic...
Ok I'll rephrase. "After 30+ years of intense research it has hard to develop the tools to generalised fast perception". Whereas in that time we have developed tools that make higher level reasoning computationally cheap in comparison. But as you yourself say that's just semantics.
If you try to do something for over 30 years and make little progress, compared to another area of activity were many of the hard problems are solved in just a few years and the solutions to harder problems keep on coming, that's pretty good evidence that the first problem area is a hard one, however you try to finesse the description of the problems.
This was in response to the above post using phrases like "intrinsically harder" and "highly dependent on the representations and models used".
Apart from that I agree with you...
Boy did I leave at the wrong time. :)
Teach as in "program", right?
It seems like the problem is that computers and robots don't learn in same fashion as human and thus the process of "teaching" them things in their not learning concept X in same fashion as humans - ie, they don't learn generalizations such a way that are "ready at hand" to use when the appropriate situation arises.
Besides, the distinction between "high-level reasoning" and "low-level sensorimotor skills" seems fairly weak. Checkers already starts to blur the line: the problem space can be modeled as pattern recognition and tactics (like how humans model their own gameplay), or it can be modeled as a "dumb search" through a decision tree (like how a computer algorithm might play). Then you get to something like chess, which has a prohibitively large decision tree to do a "dumb search," then face recognition, then natural language processing, etc.
Also, the decision tree for chess might be intractable to exhaustively search, but a "dumb search" is exactly how it's done, and it is currently vastly more powerful than any competing method. And you really can't just jump from chess to face recognition and NLP -- they are completely different problems. To wit, chess has perfect information; the entire state of the game is known at all times, and the representation is clearly defined and compact, where none of this is true for sensory tasks. This means the range of techniques available to solve each type problem are completely disparate, and tat there is almost nothing that you can take from a chess program and apply to "lower level" AI tasks.
The brain is not anything like the Von Neumann architecture of a CPU. It is a massively parallel prediction machine. High level thought occurs in cerebral cortex whose base functional unit is Hierarchical Temporal Memory composed of about 100 neurons. Once we have figured out how these units are wired in the brain, “difficult” problems like pattern recognition will be trivial, and “trival” problems like playing checkers will require many hours of training and many HTM units just like in a real human brain.
For anyone interested in this, I highly recommend Jeff Hawkins' book, “On Intelligence”. http://books.google.com/books?isbn=0805078533
They know they are not making as good progress on "true AI" as they would like. But many researchers have tried very hard in many directions.
If you are so sure true AI is fairly trivial, why not do it? Even small amounts of progress would make you very famous.
Well, yes and no. If you want the entire book "On Intelligence" (which I highly recommend too) is insulting to AI researchers.
The book basically explains why we're on the wrong track.
To me AI is about reasoning and creativity and none of the stuff we currently have comes anywhere close to that.
Consider this: While reading, most humans use a different part of the brain to register consonants and vowels [2]. No matter how much we like to think we learn language in an orderly fashion, that is not the case. Our reading and speaking skills are simply built over time and experience by having neurons connect as we experience visual words and other people talking; formal language instruction probably plays a secondary role of attaching labels to already built neural networks.
[1] http://www.nytimes.com/2012/11/24/science/scientists-see-adv...
[2] http://www.nature.com/nature/journal/v403/n6768/full/403428a...
I think there are all kinds of reasoning skills that we've never been able to test, because they depend on perception and motor skills. It seems possible those would take many more computational resources. I find it hardly surprising that feeding a program abstractions and allowing it to reason about those abstractions is simple. It's the interacting with the real world, correlating abstractions with the real world and coming up with useful new abstractions, that's hard.
I don't think we'll ever have an AI until something is built that can freely interact with the world, freely gather data and freely modify itself to enhance all its abilities. An AI without pressure sensors that ever touched sand will never understand the universe.
I would claim that while a single logical frame is easy to simulate on a digital computer, creating and balancing multiple, not-necessarily consistent frames is very difficult and requires as much computer activity or brain activity as the also difficult activities of raw input processing.
One might argue that neural system began as very different systems from digital computers but the evolution of the large human has allowed them emulate discreet, including a computer's digital logic while still doing the balancing of multitudes of environmental constraints which neural system have excelled at for millions of years. And letting "us" conceive-of and to even build computers perfecting this discreet logic. Pretty amazing.
Even as a non-programmer (I am a programmer) I might relate well to an ordinary desktop/laptop running my Excel spreadsheets. I can create a spreadsheet, enter data in cells, enter formulae, format the content beautifully, specify and view charts of the data I'm entering and information I'm computing. I might be able to respect and appreciate the beauty and complexity of how the spreadsheet program was implemented in an abstract sense. I might describe to another person my ideas about how the spreadsheet program was created, its major features and concerns, and its obvious complexity. What I'd be missing though, likely, is (a) the complex interface between what I see and what supports that experience behind the scenes; and (b) the 50+ years of computing technology under the hood that has evolved to support my narrow and visible relations with my Excel spreadsheets.
From the user's view, the Excel spreadsheets, Windows Explorer, the Start button, etc., are the aspects of the computer analogous to a human's thought processes. They're visible and explainable. The user might have some vague notion that files are stored on disk, that there's something called a CPU, that does the computer thing, etc. The user has no clue, though, that the Excel spreadsheet program itself contains but a very small portion of the effort to make its visible manifestations happen. There's an enter support system from file system, CPU, memory, buses all over the place, GPU, video display, chips, specialized interfaces to I/O and other subsystems, ASIC's, semiconductor physics, electricity, magnetism, etc. The hardware, firmware, and software for the latter have had 50 years to evolve and mature. To a normal user these aspects aren't understandable. They understand Excel.
And so for us, we can understand and describe human thought and cognition in an abstract way. But most thought is below the level we're conscious of, and supporting that thought is an entire interface with the physical elements of the body, its nervous system and autonomous function, and the interface of these with the brain.
Brains are vary good at fuzzy highly parallel tasks and bad at sequential ones. Computers suck at those fuzzy parallel tasks, but are rather good at accurate sequential ones. People are easy to train individually, computers take a lot of up front effort but after that it's easy.
So you now have two terms: "AI" and "strong AI" (AGI if you wish) that are totally unrelated.
Had people been honest "strong AI" would be "AI" and the "AI" we have now should be called "fake AI" or "pink-unicorn AI" ; )
http://en.wikipedia.org/wiki/Source_separation http://en.wikipedia.org/wiki/Cocktail_party_effect
Making a robot hand pick up an egg and a cup of coffee and turn a wrench isn't difficult provided that you build in similar feedback loops and low-level "firmware" that the brain does for us, unconsciously.
But if you did that it would take tens of kilowatts to run a halfway decent robot. And that's clearly ridiculous! So nobody does it.