Artificial Intelligence is very popular direction in science research. There are many great ideas in this field, but there are many misleading ideas too.
Many researchers try to create a set of parsing rules for every situation, for every possible syntax constructions in a language. Researchers put these rules into program code. Syntax approach gives some results practically immediately. But these results are very limited. Syntax-based programs are able to recognize and operate several types of statements. But that is all. In spite of big amount of code, syntax-based programs are not able to learn new rules. That means intellectual capability of syntax-based programs is limited. The more rules are coded into syntax-based natural language processing program – the better are results, but even huge increase in amount of programmed rules gives inessential improvements to the system (see the diagram below).
Good alternative to the syntax-based approach is “Corpus-based” approach. Corpus-based approach assumes very limited number of pre-coded rules. Based on these pre-coded rules Corpus-based system reads huge amount of text and learns about correlation between different words (and phrases).
Major disadvantage of “Corpus-based” approach was that it consumes a lot of computer resources: memory and processor power. Nowadays computer resources are inexpensive, so Corpus-based approach gives very good results (for instance, Google spell checker is based on huge Google’s web-pages database).
See tutorial about Corpus-based approach here: http://www.georgetown.edu/faculty/ballc/corpora/tutorial.html
Every intelligent system has decision making ability (otherwise the system cannot be considered intelligent). This ability is based on experience gained by the system. This experience may be considered as huge set of “practical rules” (about how to respond to various events (situations)).
Many AI developers try to put the “practical rules” into
code directly. This is just wrong. The consequences of “putting practical rules
in the code” are severe:
development takes huge amount of time because of huge amount of rules. My estimation is that developer programs a rule at least 10 times slower, than average human learns it. That means that programming “practical rule set” of 20-years old person will take at least 200 man-years (actually a lot more). Huge development time is not the major problem though. The real problem is that such system still is not able to learn.
Let’s look at newborn child. Newborn’s “practical rule set” is very limited. But this “limited rule set” includes learning rules. Right way of AIS development is to program “learning rules” and allow AIS to learn all (or almost all) “practical rules” by itself.
Problem of “learning rules” way of development is that “new born system” knows almost no practical rules. Only after some learning time it becomes practical.
I think that properly developed AIS just in several weeks will learn enough to produce essential positive outcome.
Indeed, intelligent system needs to have a connection to the outer world. But this connection may be provided by any peripheral device, not necessarily by the body. Good example of connection to the outer world is an internet connection. So, the body is not a mandatory part of intelligent system.
Some researches declare that intelligence is impossible without vision, particularly without visual pattern recognition ability.
And this is just wrong. There are many very intelligent people who are just blind (therefore they have no visual pattern recognition ability). Moreover, there are many intelligent blind deaf-mute people (that means that some people become intelligent without vision and hearing at all!).
The first version of Strong AI doesn’t have to include visual pattern recognition ability, because:
However, later versions of Strong AI could be extended with Vision and Hearing abilities.
Intelligence system should be based on neural net.
Many researches think that the neural net should be implemented as a hardware device with special hardware (not software) architecture.
Unfortunately, “hardware neural net” has several disadvantages:
Many researchers think that True Artificial Intelligence System will not be developed at least 20…50…100 years. This forecast is based on 2 facts:
Actually only statement #1 is correct.
Statement #2 is wrong: there are a lot of practical results of artificial intelligence implementation. See: http://www.wired.com/wired/archive/10.03/everywhere.html
Actually all components of intelligence are already implemented. Unfortunately not all components are assembled into the whole AI application. Some applications use up to 50% of the full intelligence functionality (for instance, Google).
Since all necessary intelligence components are described already, the only task is left --- to assemble the components in right way into strong AI. This “assembling” process will take definitely less than 50 years.
Strong AI will be implemented in less than 20 years.
I even think that there are very good chances are that Strong AI will be implemented by 2015.
LISP – is language originally designed AI applications development.
Many developers think that “LISP – is language for Strong AI development”. This idea is incorrect. LISP may be convenient for programming “practical rules”, but not for programming learning process. The problem is that without learning process intelligent system has very limited functionality and cannot be considered strong AI.
People have ideas about what intelligence is and what AIS will do. Some of these ideas are correct, some are not.
Here are some common prejudices about intelligence:
CYC – this company is a great fake in the field of strong AI development. They spent many years and tens of millions dollars already, but the result is still nothing. CYC claims that they already have beta-version of useful products, but these projects are unavailable. (Compare with Google: every user may try beta-versions of Google project. Never mind that Google has many releases of its products). By the way, CYC uses LISP a lot J.
The main idea (and main mistake) of CYC is the attempt to code whole set of “practical rules” instead of developing learning process.
Mathematic is a key component in strong AI design.
This wrong idea is based on the fact that mathematic is complex science which requires strong intelligence (in particular - strong abstract thinking skills). Out of that some people do wrong conclusion that mathematics is very useful for strong AI design.
Unfortunately, in spite that mathematics consumes a lot of intelligence, mathematic doesn’t describe how intelligence works.
Mathematic has low importance for strong AI design.
Mathematic can describe neither general reasoning nor learning process. The only thing that mathematic can do – is to help to solve some low-level calculation tasks.
Let’s consider example which illustrate why mathematics isn't useful in general reasoning.
John Doe is a typical Intelligent System.
As an Intelligent System he observes things and makes conclusions. Let's see how it looks like:
John wakes up at a morning, looks at his watch and sees that it's 8 am.
John remembers that 8 am is the beginning of his work day.
He knows that it takes 30 minutes to come to work.
John concludes that he'll be late at work.
John knows that his boss won't be happy about that.
John predicts what kind of consequences he'll get.
John tries to select actions which he should accomplish to mitigate the consequences of being late today.
1) To skip his breakfast.
2) Call to his office from the car and apologize for the delay.
So, how could all this thinking process be described by mathematics???