Hi John, Initially Novamente will not know anything about its underlying hardware architecture.
Rather, it will learn procedures that are represented in a fairly abstract mathematical form (combinatory logic) and that manipulate Novamente nodes and links as primitives alongside ints, floats and strings. In a later phase of teaching, we will teach Novamente about computer hardware and its impact on algorithms, etc., but we can get a looooong way before this is necessary -- perhaps even to the level of superhuman superintelligence ;-) ... math is pretty powerful! -- Ben > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of John Pritchard > Sent: Monday, July 05, 2004 2:31 PM > To: [EMAIL PROTECTED] > Subject: Re: [agi] Teaching AI's to self-modify > > > > 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] > ------- To unsubscribe, change your address, or temporarily deactivate your subscription, please go to http://v2.listbox.com/member/[EMAIL PROTECTED]