Monday, May 30, 2005

AI tools

Internal and external tools

Internal tools

Internal tools are such tools which are integrated into AI by AI developer.
Example of human's analogue would be a hand + motion part of the brain, which human has since birthday. Another example: eyes + vision center of the brain --- this vision tool is also integrated into human's brain before the brain starts to work.

External tools

External tools are such tools which are integrated into AI by AI itself. AI learns from its own experience or from external knowledge about the tool, then practice to use the tool, and then use it.
Example of human's analogue here would be an axe. Another example could be calculator.

Indistinct boundaries between Internal and External tools

How would you classify "heart pacemaker"? Without this tool some people cannot live. Also human doesn't have to learn about use heart pacemaker. At the same time humans don't get "heart pacemaker" with their body. Is it external or internal tool for humans?

In case of AI intermingling between internal and external tools is even deeper, because AI is pretty flexible.
For example, AI can learn about advanced math tool from an article in magazine, and then integrate itself with this tool. Such integration can be very tight since computers have very extendable architecture (in comparison with humans). So, "external tool" can become "internal tool".

Internal tools

Importance of internal tools

Internal tools are very important for AI because mind cannot communicate with the world without tools. External tools are unavailable for a mind without internal tools.

Internal tools integration with AI

Internal tools are connected with the mind through a set of neurons. This set of neurons is associated with the tool. When the set is active - the tool is active. When the tool is active then set of neurons is active.
Let consider internal tool integration on example of "chat client program" (like ICQ, MSN, or Yahoo messenger).
"Chat client program" is represented in the main memory by neuron nChatClientProgram.
If AI decided to chat then AI activates nChatClientProgram neuron. That activates "chat client program" (the tool). The tool reads active memory concepts, converts them into text and sends text message over internet. After that the tool activates neuron nChatClientProgramAnswerWaitMode in the main memory.
When the tool gets response from Internet, then the tool:
- Parses incoming text and put received concepts into the short memory.
- Activates neuron nChatClientProgramAnswerReceived.
Activation of nChatClientProgramAnswerReceived causes execution of softcoded routine associated with nChatClientProgramAnswerReceived neuron.
After execution, the results are evaluated against AI's super goals. AI learns from the experience, in particular:
1. Desirability of nChatClientProgram, nChatClientProgramAnswerWaitMode, nChatClientProgramAnswerReceived, and other related neurons are evaluated (see Reward distribution routine). Successful chatting experience would increase desirability of nChatClientProgram neuron and therefore probability of "Chat client program" use in the future. Unsuccessful experience would reduce probability of such use.
2. Softcoded routines are evaluated and modified. Modified routine can be applied to process results of the next incoming message.

List of internal tools to develop for strong AI

1. Timer. It's good to have internal sense of time.
2. Google search - helps to understand new concepts.
3. Chat with operator.
4. Internet chat client.

External tools

Importance of external tools

External tools are important because:
1) There could be millions of external tools.
2) AI can use already developed humans' tools.
3) External tools can be converted into internal tools and gain all advantages of internal tools.

External tools integration with AI

External tools are connected with the mind through internal tools.
Internal tool: web browser.
External tool: stock exchange web site.
Through internal tool AI can use external tool.

Story of my interest in AI

Jiry> When did you first decide to attempt making Strong AI?
Jiry> Was there anything particular what triggered that decision?

I'd say it was ~year 2001.
It wasn't sudden decision.
I was interested in AI among many other things.
Gradually I recognized how powerful could such tool be.
Also I decided that since computers are getting more and more
powerful, AI should be implemented pretty soon.

Originally I didn't think that I should develop AI, I just thought
that I'll be among early adopters of AI, that I will just tweak it after someone
(probably Microsoft) would develop AI framework.

Gradually I understood that I have to build AI by myself, because:
1) practically all other researchers go in wrong directions.
2) I learned about approaches which should give successful results and
put approximate AI model together.

Monday, May 23, 2005

AI operator

What are the responsibilities of AI's operator?

AI developer can define some default values for parameters like:
- how quickly should AI system forget new information.
- what weight increment should be applyed to relation between two concepts which were read near each other.
- ...

AI will be able to work with these default values, but in order to achieve optimal performance, AI operator has to tweak these default values.
Operator will observe and analyze how AI performs, modify default values, and see for improvements in AI's mental abilities.

"AI's operator" is not the person who talks with AI all the time.
"AI's operator" almost doesn't talk with AI.
"AI's operator" observes how AI's mental process works. Also "AI's operator" "tunes/tweaks" AI's mind.

See also:
AI's operator

AI answering comlex questions

> Imagine that the example talks about 2 accounts, initial amount $100
> on both and several simple financial transactions between the
> accounts. I believe your AI would get confused very soon and would not
> be able to figure out the balance.

In the situation of such complexity regular human beings cannot provide adequate answer.
What do you expect from AI under development?

If we are talking about perfect AI now, then again --- AI will not read text with "one-time parsing" approach.
Instead, perfect AI will read like human: read sentence, think, make decision whether to read father, or re-read again, or skip reading at all, or use another source of information (e.g. ask questions or go to Google), or do anything else. Perfect AI would accomplish chosen action until AI would be satisfied with the results.

But let's return back to today's reality: we are talking about developing first AI prototype, so we'd better skip too complex tasks for now.

Friday, May 20, 2005

How to translate text from one language to another

Language translator prototype
0) Originally we have a sentence in a source language and we want to translate it into a destination language.
1) Take "source language" sentence.
2) Find all text concepts (words and phrases) in the source sentence.
3) All these text concepts constitute "source language text thought".
4) Search for all concepts which are related to the source language text thought.
5) As a result, we'll get set of concepts which conctiture abstract thought.
6) Now it's time to search for related text thought in destination language.
7) So, we search all concepts which simultaneously:
a) Relate to this abstract thought.
b) Relate to the concept which represents destination language.
8) At this point we have all concepts related to the original text and to the destination language. This is "destination language text thought".
9) Now we can eaily convert this "destination language text thought" into "destination language text".
Strong AI can build the final sentence (by using a word dictionary, a phrase dictionary, and text pairs dictionary).
See also:
Text synthesizer.

(Originally written: Sep 2004).