Saturday, December 20, 2003

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.
John decides:
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???

Induction vs. Deduction

There is no big difference between Induction and Deduction.
Induction is a conclusion which was made from a less abstract concept to a more abstract concept.
Deduction is a conclusion which was made from a more abstract concept to a less abstract concept.

In real world it's hard to define which concept is more abstract. For instance, what is more abstract: concept “human” or concept “love”?  So it has no sense to define what a deduction is and what an induction is. There is only one thing: conclusion :-)

Friday, December 19, 2003

Do we remember everything?

Question:Do you think that the human brain actually stores all occurrences in time? In other words, do you think that we have storage for every picture we see throughout our entire life and that perhaps we just lose direct access to it from interference or that we truly forget?

Moreover, our brains remember practically no pictures. Our brains do remember concepts which related with parts of pictures.
That's why if you observed a lot of cars then it will be easier to you to remember picture with couple of cars on the picture.
If you never saw cars before - you'll have huge problems with remembering the picture with cars.

So: We truly forget information with the time.
But at the same time information is stored in the brain in redundant form, so if one concept is lost then other concept could represent the necessary knowledge. However if all related to the knowledge concepts will be cleaned up then the knowledge will be lost.
But system can learn this information again :-)

Also there is such effect of forgetting, when a concept still exists but it is hard to activate the concept, because many related relations (axons) were lost.

For instance, you remember that you should take your documents when you go out of home, but this concept ("Take the documents") is not activated when you going out of home.
Later, because of another stimulus (police officer on the street, for instance) you will remember that you had to take the documents ("Take the documents" concept will be activated).
A cause of forgetting here is a "lack of references with the concept".
The cause of the "lack of references" could be "forgetting process applied to references" or "not all required references to the concept are created".

Resume:
1) We definitely don't remember everything. We remember something.
2) We constantly forget information.
3) There are two type of forgetting: "concept forgetting" and "relations forgetting".
4) Even if information is completely forgotten, AI system can learn the information again.

AI prototype and the Internet

Question:Don't you want your AI to not be dependant on the internet?

AnswerMy AI prototype will be definitely dependant on the Internet, just because the Internet is the greatest source of information.
Moreover, information on the Internet is represented in convenient-for-computer form (text --- see also: TextParser).

Also information on the Internet is indexed (Google).
Also information on Internet is fresh and is constantly updated.

That's why my AI prototype will use the Internet very actively.

Question:I disagree with your dependence on the internet. I do agree that it makes a nice addition to the logic. The AI that I am developing (AIB), or at least the newer version to come out in May, has an internet module, but it is not the base of the system. For example, what if you actually wanted to make an actual independent bot of some sort, AKA android... it would not be able to use internet as a base for its knowledge... then again, I see why you are doing this, because there aren't many other databases of textual information.
Answer:It seems that you understand "dependence on the Internet" of my system not correctly.
My AIS will depend on Internet In the learning part primarily.
Since the AIS "has been grown" it could be disconnected from the Internet.
However, True Intelligent System should accomplish constant learning .
Because of "learning necessity" it's better not to disconnect the system from the Internet.

For instance, when I'm disconnected from the Internet, I loose essential part of my intelligence: I partially loose my ability to solve new complicated tasks (because I don't have access to Google).

So, what is the point to disconnect from Internet AIS which has stronger (than humans) integration with the Internet?

AI Programming tools selection

Question:You mentioned that you wanted to use C#.net and mysql...
I do not recommend C# to anyone. It is the worst mix between the garbage
collected java implementation and the lack of polymorphism with C++.
As for mysql, good language, but why are you using an internet database?
Answer:I use C# at my work. And I like this language.
But what is the most important - it really doesn't matter which language I will use. The main feature which language should expose is "smooth integration with RDBMS".
Majority of modern languages have such feature.

I'll use C# because I know it the best.

Also C# (as part of VS.NET) allows easy integration with modules written in VB.NET, C++.NET. Integration with modules written in VB6,
C++ is also possible.

About RDBMS:
I use MS SQL 2000 (not MySQL).
This is reliable RDBMS which is easy to use.

It may happen that in production other RDBMS will be more efficient (Oracle). May be not.

But in my opinion for Prototype development MS SQL is the best choice.

My thinking about CBR is:1) CBR has some ideas2) As a whole CBR is too old (~15 years) and produced very limited results.3) CBR is applicable to certain tasks. For example some Narrow Artificial Intelligence Systems may benefit from CBR.

Question (by Jiri Jelinek): What do you think is the main reason for the "very limited results"?

1) Because problems that we are solving now never happened before -- only similar cases happened.

2) Even if we were able to find solution in our memory -- such memory would have virtually infinite size (which means virtually zero performance).

3) When we try to solve #1 and #2 -- we need to apply interpolation/extrapolation techniques, which in essence is not a CBR anymore.Interpolation/extrapolation would require calculating weights for and against set of potential solutions.Such weights can be stored in Cause-Effect relations