VB Strong A.I. Project

Status
Not open for further replies.
G71 said:
Only 5 WordIDs (4 real words) per phrase? How about keeping just a single WordID field in the Phrase table and adding an extra unsigned int sequence number field to track the order so you would have N rows (/WordIDs) per phrase with the same PhraseIDs and unique sequence number?

I thought about composing <a href="http://www.dennisgorelik.com/ai/Phrase.htm">phrases</a> out of N words.
But this is wrong because of two reasons.
Reason #1:
Long phrases are not typical. That means that long phrases are used very rarely. That means that long phrases have very weak association with other concepts.
That's why it has no sense to remember long phrases.

Humans also don't remember long phrases.
Typical phrases consist of 2-3 words. 4 and 5 words phrases are relatively rare. So I think that phrase lenght should be restricted to 3 or 4 <a href="http://www.dennisgorelik.com/ai/Word.htm">words</a>.
(Not extended to N words as you proposed).

Reason #2:
From database performance point of view it's better to keep phrase in one record (PhraseId, WordId1, WordId2, WordId3) instead of keeping phrase in multiple records:
(
PhraseId, 1, WordId1
PhraseId, 2, WordId2
PhraseId, 3, WordId3
)
 
G71 said:
How do you want to teach the system?
There are two basic stages in teaching the system:
Stage #1: AI developer (I or you) programs "learning routines" and <a href="http://www.dennisgorelik.com/ai/SuperGoal.htm">super goals</a>.
Stage #2: AI System self-learns by using the learning routines. Learning process is directed by the <a href="http://www.dennisgorelik.com/ai/SuperGoal.htm">super goals</a>.

Example #1 of learning routine:
Chat with an <a href="http://www.dennisgorelik.com/ai/Operator.htm">operator</a>
After AI response to operator, operator rates AI's answer as good or bad.
AI makes conclusions what is good and what is bad.

Example #2 of learning routine:
Chat with a regular user. The longer user stays in chat - the better AI evaluates AI's actions.
AI makes conclusions what things are good to say and what things are better not to say.
 
Dennis,

I would not worry about the performance issues considering this particular table. It's just a bunch of numeric values (very few per row). You may have many rows but If well indexed (which you have to do anyway), the performance will be relatively OK (assuming you will use a decent DBMS). You will probably often need to select PhraseIDs of phrases which contain certain WordID. Considering the current design, that query would take 5 conditions (instead just 1) and more work for the DB engine. What I proposed would also avoid the nulls in short phrases and it would add flexibility. I'm sure you ideas will go through many changes during the development so the flexibility is generally very important. When working on AGI, keep the DB design as dynamic as you reasonably can. My understanding is that you have at least a good idea on how to convert users text-input into 4- word phrases. That's something I would like to see. What if they talk about relatively long mathematical formulas? How would you break it? Also note that having simply VarChar(20) for all words is not enough. I could never tell it that I used to code for the PriceWaterhouseCoopers (=22 chars) and not all strings in sentences are regular words. Teach it chemistry and you will find the VarChar(20) pretty short. Again, you can use a sequence and break "words" into more rows if necessary or use multiple word tables with various limits (or both ideas combined). Of course it adds some overhead but that should apply just to the very initial and the very final stage of the internal processing (+ considering the chat-like communication, relatively limited number of input/output words (at the time) would go through that process.
 
G71 said:
I would not worry about the performance issues considering this particular table. It's just a bunch of numeric values (very few per row). You may have many rows but If well indexed (which you have to do anyway), the performance will be relatively OK (assuming you will use a decent DBMS). You will probably often need to select PhraseIDs of phrases which contain certain WordID. Considering the current design, that query would take 5 conditions (instead just 1) and more work for the DB engine. What I proposed would also avoid the nulls in short phrases and it would add flexibility.

I worry about performance, because there will be more than 100000 phrases in phrase dictionary.
There will be two typical operations on <a href="http://www.dennisgorelik.com/ai/PhraseDictionaryTable.htm">phrase dictionary table</a>:
#1) Find PhraseId by sequence of WordIds.
#2) Find Phrase by PhraseId.

In "One phrase - one record" model these operations are obvious and fast.
In "One phrase - N records" model these operations are less obvious and essentially slower. Especially operation #1. How are you going to get phrase which consist from sequence of three word IDs: WordId1, WordId2, WordId3?
How are you going to build SQL query? In particular "Where" condition?

You probably keep in mind operation #3:
Find all phrases which have specified WordId.
But this operation is not typical and will be executed rarely (if executed at all).

You are right: "One phrase - one record" model waste some space for Null values. But "One phrase - N records" model waste some space for additional key (SequenceNum) values.
So, these models are ~equal from "hard disk memory consumption" point of view.
Moreover, with "3-words in a phrase" restriction "One phrase - one record" model use hard disk space much better.
 
G71 said:
My understanding is that you have at least a good idea on how to convert users text-input into 4- word phrases. That's something I would like to see. What if they talk about relatively long mathematical formulas? How would you break it?

Here is "Phrase search solution":
Imagine 10-words sentense:
Word1, Word2, ..., Word10.
For any 10-words sentence there will be
10 words
9 two-word phrases
8 three-word phrases
7 four-word phrases
6 five-word phrases
(I don't consider phrases longer than 5 words)
=====================
Total: 40 Text units in the <a href="http://www.dennisgorelik.com/ai/TextUnit.htm">TextUnit</a> collection

So when I read a text I just consider them all.

Some phrases are incidental and would not occur again in other places.
Such prases will be <a href="http://www.dennisgorelik.com/ai/Forgetting.htm">forgotten</a> (removed from phrase dictionary) gradually.

So, for me it doesn't matter if text is a regular text or it's a mathematical stuff.
However I don't think about mathematical text - it very specific and not very common form of communication.
Usefullness of mathematical notation is quite limited also :)

If you like to know how I separate words then read:
<a href="http://www.dennisgorelik.com/ai/2004_02_01_aisdevelopment_archive.html#107642545616307750">Reader implementation --- Parse statement</a>
This description is out-of-date a little bit, but it will give you main idea.
 
G71 said:
Also note that having simply VarChar(20) for all words is not enough. I could never tell it that I used to code for the PriceWaterhouseCoopers (=22 chars) and not all strings in sentences are regular words. Teach it chemistry and you will find the VarChar(20) pretty short.

PriceWaterhouseCoopers is definetely not a word. It's phrase.
People treat such "words" as phrases.
Why should AI treat it as a word?

If AI text parser feels that current substring is too long then it tries to find other types of separators (including change from uppercase to lower case).

If there is no separators then word is cut at 20 chars. Not big deal :)
 
G71 said:
Again, you can use a sequence and break "words" into more rows if necessary or use multiple word tables with various limits (or both ideas combined). Of course it adds some overhead but that should apply just to the very initial and the very final stage of the internal processing (+ considering the chat-like communication, relatively limited number of input/output words (at the time) would go through that process.

1) Yes, AI text parser should be able to find short words.

2) I don't think that "multiple word tables" is a good idea.
Multiple tables drammatically increase AI operational logic.
Human's brain doesn't work this way.
 
G71 said:
How would you tell to your AI that "Mr Black wore a black shirt yesterday” ?

"Mr Black" and "a black shirt" are quite typical <a href="http://www.dennisgorelik.com/ai/Phrase.htm">phrases</a> with completely different meaning.

Also "Black" and "black" are different.

Did I answer your question?
 
G71 said:
How does your AI deal with unknown words?
Unknown words are added into <a href="http://www.dennisgorelik.com/ai/WordDictionaryTable.htm">WordDictionary table</a> and into <a href="http://www.dennisgorelik.com/ai/ConceptTable.htm">Concept table</a>.

Also multiple records are added into <a href="http://www.dennisgorelik.com/ai/CauseEffectRelationTable.htm">Relation table</a>.
These <a href="http://www.dennisgorelik.com/ai/Relation.htm">relations</a> point to another <a href="http://www.dennisgorelik.com/ai/Concept.htm">concepts</a> which were used together with unknown words.

From this point unknown word is not unknown anymore. :)
 
G71 said:
What's the structure of the sub-system which provides the CauseNeuronID and EffectNeuronID for the Cause-Effect relation table?

I don't understand your question.
Do you mean: "How does AI discover what is the cause and what is the effect?"?.
 
Last edited:
G71 said:
Can your "strong AI" learn how to play games like Tic-Tac-Toe?
Right now I don't have "strong AI", therefore it cannot play :)

Moreover, AI prototype which I'm trying to build now wouldn't have two important features which make learning games (or other activities) possible.

These features are:
1) Ability to build it's own<a href="http://www.dennisgorelik.com/ai/SoftcodedRoutines.htm">softcoded routines</a>
2) <a href="http://www.dennisgorelik.com/ai/MotivationSystem.htm">Motivation system</a> (<a href="http://www.dennisgorelik.com/ai/SuperGoal.htm">super goals</a> and <a href="http://www.dennisgorelik.com/ai/SoftcodedGoals.htm">softcoded goals</a>).

If you like, we could discuss these features.
 
Dennis: sorry to take so long to reply.

Having read your description of this AI, it appears to be a combination of two things:
1) a lexical analyzer
2) a database with a series of weighted phrase-concept associations.

I'm not yet sure what the weightings are for exactly, but I see a major problem with your AI; its analysis of language has no sense of meaning whatsoever, and an extremely poor sense of context. For instance, your five-word phrases system would be able to draw some context out of the sentence:

"I had gone to the place where she had gone, but she was gone."

But none at all out of:

"I had gone after her. I went where she had gone. She was gone."

So, what does this AI do other than rate phrases by popularity?
 
BigBlueHead said:
Your AI appears to be a combination of two things:
1) a lexical analyzer
2) a database with a series of weighted phrase-concept associations.

You are right, but not exactly :)

1) a lexical analyzer
Yes, my AI does text analysis. But this analysis is not about search for verbs, nouns, and adjectives.
Intestead my AI parser is looking for meaning of every <a href="http://www.dennisgorelik.com/ai/TextUnit.htm">text unit</a> in a text.
Find a meaning of a <a href="http://www.dennisgorelik.com/ai/Word.htm">word</a> means to find all concepts which are related to specified word.

You might want to ask: "How The AI parses is going to find this relations?".
The key to the answer is: "If words are used together, then the words probably are related to each other".
The more words occur together the stronger are <a href="http://www.dennisgorelik.com/ai/Relation.htm">relations</a> between these words.

In addition to looking for "http://www.dennisgorelik.com/ai/Concept.htm">concepts</a> relations in one sentense, my AI parser is going to search for relations between concepts in different statement.
It's implemented by using short memory.
Information about concepts which were used in previous sentences will be kept in <a href="http://www.dennisgorelik.com/ai/ShortMemory.htm">short memory</a> for some time (until it will be forgotten).

You might want to look at the core reading algorithm here:
<a href="http://www.dennisgorelik.com/ai/ReaderPrototypePlan.htm">http://www.dennisgorelik.com/ai/ReaderPrototypePlan.htm</a>


2) a database with a series of weighted phrase-concept associations.

Actually relation table is about concept-to-concept associations.
That means that relations could be:
word-to-word
word-to-phrase
phrase-to-phrase
word-to-<a href="http://www.dennisgorelik.com/ai/DeepConcept.htm">deep concept</a>
<a href="http://www.dennisgorelik.com/ai/DeepConcept.htm">deep concept</a>-to-phrase
... and so on.

In addition to that I'm going to implement in my AI reader prototype feature which relates to read/write ability only:
<a href="http://www.dennisgorelik.com/ai/TextPairs.htm">text pairs</a> mechanism.
Text pairs allow to embed "correct text intuition" into AI.
 
Jiri is a busy man so i will just fill in, AGI means Artificial General Intelligence. Something Jiri is extremely keen on. :)
 
Let me just point out one thing. It seems to me that many believe that a chat bot is the way to achieve true intelligence (real AGI)

So, you teach it a couple of words, let it ask someone a question using those words. It has encountered a problem and it askes the human operator who has the answer how to solve the problem in question. The operator tells you how to solve it and you solve it. Do you call that AI at all? Because i sure don't.

Another example. It has basic and grammatic knowledge, it begins chatting and some friendly human operator tells it lots of new data (which of course is correct). The chatbot has now got new data and it asks the operator how to solve a particullar problem. The operator gives enough hints for the problem to be solved and the chatbot solves it. You call that AI? I do not call that AI, sure as hell not Strong AI.


What i call AI is when it figures out how to solve a problem without any assistance.

My design will allow us to start our AI with a handfull of parameters (less than 10 at the moment) and it will be able to learn how to interact.
It will of course need a Goal too. The algorithm is built in a way that makes sure that it always tries to obtain as much knowledge as possible (identify everything unknown) unless a superior goal supercedes that ability.
A goal that allows it to interact is for instance "Provide your familiy" and sub-goals are that the familiy needs food, water and wood (fire)

That is what it gets to know in our "Republic".
We will also tell it how to walk. I have designed a solution so that it can learn how to walk by itself too but it would take time to perfect it so we have choosen not to.
 
Last edited:
BigBlueHead said:
Dennis: sorry to take so long to reply.
I see a major problem with your AI; its analysis of language has no sense of meaning whatsoever, and an extremely poor sense of context. For instance, your five-word phrases system would be able to draw some context out of the sentence:

"I had gone to the place where she had gone, but she was gone."

But none at all out of:

"I had gone after her. I went where she had gone. She was gone."

1) Well, I claim that my AI has very strong sense of context.
:)
I explained it in my previous post: my AI keeps track of relations between concepts.

2) From my AI point of view there is no big difference between these two examples which you provided.
My AI parser would just keep information about concepts occurred in previous sentences in the <a href="http://www.dennisgorelik.com/ai/ShortMemory.htm">short memory</a>. Therefore it will be able to find relations between concepts in these several short sentences.

3) At the same time handling pronouns (like "she", "he", "it") is not an easy task for AI.
It's not easy for humans also :)

Nevertheless my model should be able to handle pronouns.
Let's see how it works:
- After reading huge amount of text (including extensive chat) AI would know that "her" and "she" words are strongly related.
Also AI would know such facts as:
"Woman" and "she" is strongly related.
"Man" and "he" is strongly related.
"Cow" is related to "it" stronger than "cow" <a href="http://www.dennisgorelik.com/ai/Relation.htm">related</a> to "she".
"Mary" is related to "she" stronger that "Mary" related to "it".

Such knowledge would help to correctly understand sentences like:
"Mary milked a cow. She was tired."
:)
 
Baal Zebul said:
Let me just point out one thing. It seems to me that many believe that a chat bot is the way to achieve true intelligence (real AGI)

So, you teach it a couple of words, let it ask someone a question using those words. It has encountered a problem and it askes the human operator who has the answer how to solve the problem in question. The operator tells you how to solve it and you solve it. Do you call that AI at all? Because i sure don't.

You miss the point that operator teaches AI only for limited time. All other time AI makes decisions by itself.
Of course AI has to <a href="http://www.dennisgorelik.com/ai/Learning.htm">learn</a> a lot from operator's tutoring.
 
Baal Zebul said:
Another example. It has basic and grammatic knowledge, it begins chatting and some friendly human operator tells it lots of new data (which of course is correct). The chatbot has now got new data and it asks the operator how to solve a particullar problem. The operator gives enough hints for the problem to be solved and the chatbot solves it. You call that AI? I do not call that AI, sure as hell not Strong AI.


What i call AI is when it figures out how to solve a problem without any assistance.

Ok, lets consider another example: Baal Zebul reads new information in this topic and asks his friends what does it mean. After short discussion Baal clearly realized what does this new information mean. Then Baal continued reading.
Could Baal Zebul be considered as an intelligent system (after he used help of another intelligent system)?
 
Last edited:
If I was started with no knowledge about Language, then yes.
If i was started with a basic language that allowed me to learn more then No.

I simply see it as a excuse for not being able to solve the real problem.
 
Status
Not open for further replies.
Back
Top