Hi Ben,
If the AI "knows" the machine as its natural context (stacks, registers,
etc., ie, "world"), then the supercompiled code should be the only code
it can comprehend and self modify. The code produced by the C++
compiler would be orders of magnitude more complex. Imagine an article
in your favorite magazine where every noun and verb were indirect
references to paragraphs in other articles of the magazine, and you
could only aproach comprehension of the article by route of approaching
the comprehension of the intersection of all of the articles --- after
reading and rereading every article many times --- eg, Foucault's
exemplary chapter from 'Les Mots', "Las Meninas". This is the situation
faced by a "self aware" (as in the first sentence) AI written in C++.
If the product of supercompilation is akin to the most minimal
implementation in assembler (machine code), then that's the only thing
the AI will be able to understand --- unless you're thinking of the AI
as an expert system programmed with knowledge of the product of the C++
compiler.
That being said, it's difficult to imagine. Rather, consider the "self"
of the AI, as in "itself", is an application in nodes and links and self
modification in terms of nodes and links rather than machine code
(differentiating terms). The remainder follows. If the application is
the knowledge of the machine, etc.. Don't drink, and think about this one!
Regards from NJ,
John
The idea is to maintain two versions of each Novamente-internal procedure:
-- a version that's amenable to learning (and generally highly
compact), but not necessarily rapid to execute
-- a version that's rapid to execute (produced by supercompiling the
former version)
As learning produces new procedures, they may be supercompiled.
At present supercompiling a Novamente procedure is slow and takes up
to a few seconds or even a few minutes for a large, complex
procedure. However, the supercompiler itself is still in a
preliminary version and could probably be optimized by an order of
magnitude. In the long run there is also the concept of
"supercompiling the supercompiler" ;-)
This is research that we're just now starting to play around with --
we got the first results supercompiling very simple Novamente
procedures just last week. If all goes well, more serious work in
this direction will commence in the fall.
Of course, this aspect is "just computer science" -- albeit very
difficult and advanced computer science. It's the learning of the
procedures that's the really subtle part... which is the topic that
has taken far more of my attention . Fortunately the
Java-Supercompilers team (Andrei and Arkady Klimov) seem to have the
supercompilation aspect well in hand...
But though it's "just CS", it wil be very useful for Novamente-learned
procedures to be faster than, rather than a couple orders of magnitude
slower than, Novamente-embedded procedures coded directly in C++ .
This is not the hardest part of having Novamente learn to
self-improve, but it's a necessary component.
-- Ben G
-Original Message-
*From:* [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED]
*Sent:* Sunday, July 04, 2004 11:11 PM
*To:* [EMAIL PROTECTED]
*Subject:* Re: [agi] Teaching AI's to self-modify
Ben,
Aren't optimizations by supercompilation going to make the future
changes of that code more (maybe a lot more) difficult?
Sincerely,
Jiri
In a message dated 7/4/2004 9:58:41 AM Eastern Standard Time,
[EMAIL PROTECTED] writes:
http://www.supercompilers.com/
To unsubscribe, change your address, or temporarily deactivate
your subscription, please go to
http://v2.listbox.com/member/[EMAIL PROTECTED]
To unsubscribe, change your address, or temporarily deactivate your
subscription, please go to
http://v2.listbox.com/member/[EMAIL PROTECTED]
---
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/[EMAIL PROTECTED]