6 Dec 2006 (updated 10 Dec 2007 at 17:14 UTC) »
The AI4U book reviewed by Prof. Jones has become the
cornerstone of
the
Wikipedia-based free AI textbook consisting of three
main parts:
Here the author responds to the points raised by Prof.
Jones.
1. On Spreading Activation
Prof.
Robert W. Jones of Emporia, Kansas USA writes in his 30
November 2006 Amazon.com review of my book
AI4U:
Murray believes that with the spread of activation
through a network of the correct configuration and
sufficient size you have intelligence and thought.
Wikipedia explains
spreading activation, which turned out to
be the technical term for the basis for a
theory of mind which I
developed independently in
1979. I did not know that I had
discovered
spreading activation until I came across the term
in a 1986 paper by Gary S. Dell.
The JavaScript
Mind.html software is my attempt to demonstrate
what Prof. Jones calls the "correct configuration" of the
network.
Mind.html runs in Tutorial mode to show the "spread of
activation"
as concepts generate thought and as thoughts meander in a
chain of
wandering associations.
2. Is AI4U a textbook of artificial intelligence?
Prof. Jones disagrees with the idea of AI4U
as a
textbook:
While AI4U is sometimes advertised as a "textbook"
it is not that. An AI textbook should discuss at least
the core AI topics:
search pattern recognition knowledge representation learning logic rule-based systems neural networks etc.
While AI4U touches on some of these topics
it is not an adequate textbook. Rather it is a
defence of one man's approach to building an
artificial intelligence.
Here as the author I must admit that I acted upon a last-minute impulse to position AI4U as a textbook. I wrote blue-sky exercises at the end of all thirty-four chapters of AI4U and I struggled to come up with an acronymic four-letter name for the book that might get it classified in the same league as AIMA -- the popular handle for the most successful textbook, Artificial Intelligence: A Modern Approach.
Ladies and gentlemen of the Netizenry, my purpose was not to defraud but to defrock. The AI priesthood had long claimed to publish textbooks of artificial intelligence, without having any instances of artificial intelligence or even any worthy theory of artificial intelligence. Being in possession of both items so sorely missing from all purported AI textbooks, I felt that it was my right to publish the first real and genuine textbook of the first real and genuine artificial intelligence.
After the posting of the benign review by Prof. Jones on Amazon, a year later the orignal AI4U print-on-demand textbook became the static centerpiece of a dynamically expanding free AI textbook based on Wikipedia AI articles constantly mutating and evolving, and on updates being made to the original AI4U chapter webpages.
Schools and universities worldwide are free to host the AI4U++ mind-module webpages as local adaptations of the free AI textbook. A professor or instructor may rewrite or expand the webpages to concentrate on or expand upon some particular area of instruction, such as robotics or the training of AI mind-tending technicians. Affiliate material such as Amazon web-links to promote book sales may be added to the on-line free AI textbook materials in order to help provide funding for the educational enterprise to teach AI.
3. Other AI4U shortcomings and deficiencies
Showing a thirst for more information, Prof. Jones
complains:
The chapters in this book are too brief
and the discussions too superficial.
The print-on-demand (POD) chapters -- one for each mind-module -- started life in 1998 as on-line documentation of the AI software, first in Forth, and then also in JavaScript. Each mind-module webpage was "screen- scraped" as the raw material for a chapter. AI4U is thus a frozen moment of the state of the art as of 2002. Mentifex AI has moved on since 2002, and so have the webpages. In the month that Prof. Jones published his scholarly review -- November of 2006 -- the Chapter 34 Activate webpage and the Chapter 32 Instantiate webpage were fleshed out considerably.
AI4U is just a start, a point of departure, a
Singularity that is sweeping the Web and the
planet and is turmoiling the noosphere with nooisy minds
awakening to artificial life and consciousness.
Those who own AI4U are free to write their own ideas in the margins and sell their copies on eBay for whatever rare-book profit may be gained. A market exists for resale of used AI4U copies because dozens of mind-module webpages have a link at the bottom leading directly to an AI4U search on eBay which will find books being offered.
4. ASCII diagrams of the Mind.html algorithms
Overlooking the algorithmic flowchart diagram at the
start
of each chapter, Prof. Jones asks for algorithmic
flowcharts.
There also need to be algorithms provided
for each routine in the code of Appendix A.
These could be presented in pseudocode
or as flowcharts for instance.
AI4U
page 157 is an overall flowchart of the main modules of
the artificial mind. Each chapter starts with a flowchart
diagram depicting algorithmic aspects of the mind-
module being discussed. For each routine in the JavaScript
AI code of Appendix A, there may not be a pseudocode
distillation of what the software does, but on the Web
there is a version in
Forth of the same mind-modules, complete with detailed
in-line comments and with nested indentation of all
functionality in furtherance of the goal of easy
understandabilty.
5. References missing from the work of an independent scholar?
Prof. Jones is entirely correct when he faults
AI4U for its lack of
scholarly references.
The biggest problem is the lack of references.
It is just possible that one could write a short
note without finding it necessary to reference
the work of others but it is impossible to write
a book length scholarly work without citing other
work in the field.
The Mentifex AI project is not a follow-up on
individual lines of research carried out by individuals or
teams of academic scholars. Instead, Mentifex AI builds
upon the general state of the art in artificial
intelligence at the time of the Mentifex effort to work out
a black-box theory of the mind based on the inputs and
outputs of the mind and on general background knowledge
in diverse fields such as linguistics, neuroscience and
robotics. Likewise the Mentifex AI software in REXX,
Forth and JavaScript,
having been based on theoretical work that had already
veered off into a remote wilderness of independent
scholarship far away from mainstream AI, no longer had
connecting links to the AI literature in which academic AI
practitioners feel at home if also in competition. For
decades on end, Mentifex AI was like a space probe sent
off to destinations unknown with the mission of developing
AI along the way. If the space probe now comes back to
Earth and says, via AI4U, that AI has been
solved and here is the
solution, what matters is the quality and Darwinian
viability of the solution, not AI references. There was no
compass and there were no guidelines. There was only a
solitary trek through an imagination burning since
boyhood.
6. Download the artificial mind.
Now hear this by Prof. Jones:
A positive side to Murray's work is that
he does provide downloadable code.
According to the publicly readable Site Meter logs,
so many Netizens have downloaded the AI Mind code and
copied it onto their local hard drives, that there is
already
a large installed user base of the AI Mind software.
In the years 2005 to 2007, the Mentifex artificial
intelligence
was exhaustively debugged in both
Forth and
JavaScript. There was
an
AI breakthrough on 7 June 2006 in the
Mind.Forth AI version.
Towards the end of 2006, when the review by Prof.
Jones
appeared,
the AI Mind code was still being improved and prodded to
perfection.
But as of his
Amazon review date of 30 November 2006, it was
already possible in tutorial mode to see (if not
understand)
exactly what the AI Mind was trying to do -- think thoughts
by
the generative process of spreading activation among
concepts.
The profoundly deep processes involved are not easy
to understand. To comprehend why things should be a certain
way in the AI source code, requires a long and immersive
study in a plethora of areas, chief among which are
computer programming, linguistics, logic and neuroscience.
The
AI4U textbook is just one instrument (among
many) of achieving the deep understanding of True AI
necessary to make contributions to the further development
of the original True AI.
7. Achieving the speed of thought
What Prof. Jones may not realize is that the built-
in tutorial routines make the AI Mind run even slower than
a straightforward AI without a tutorial mode would run.
(For that matter,
Mind.Forth runs relatively fast.) However, the multi-
colored tutorial mode in Mind.html
is one of the most truly awesome and amazing things about
Mentifex AI. You see the actual thinking of the AI Mind in
real time as it spreads the activation from concept to
concept in the generation of an AI thought. When one
thought is finished, you see the residual activation of the
subconscious concepts lead to the generation of the next
idea in a meandering chain of thought. At any time you may
intervene in the thinking of the AI by asking a question or
stating a fact -- which will add to the knowledge base (KB)
of the AI and give the artificial consciousness new things
to think about.
When you run this code you find that Mentifex
is very slow even with a very small semantic network.
If one were to build up the millions of nodes needed
to approach human level intelligence the code would
grind to a halt.
The reviewer needs to adopt a more singularitarian outlook. Since Mentifex AI is arguably the first real artificial intelligence released publicly onto the Web, what matters here is not speed of operation but functionality as a Mind. It is like saying that the Wright brothers' "first flight" at Kitty Hawk in 1903 was a failure because the airplane did not go fast enough.
Mentifex AI comes as a warning to singularitarians
everywhere that further progress will not be easy. Mind.Forth
(or
Mind.html) is only a proof-of-concept AI. The message
from Mentifex AI is that not only was it extremely,
bodaciously difficult to achieve the first albeit
primitive, albeit rudimentary artificial intelligence, it
may well be just as difficult all over again to scale up
from mentifex-class AI to anything approaching a human-
level AI. There are no shortcuts (beyone those
already taken by Mentifex). Nature took billions of
years to create biological human minds. Mentifex AI took
the full human lifetime of an individual, from boyhood to
senescence. Which will come first, the ruin of the green
planet Earth by the destructive species H. sapiens,
or the Joint Stewardship of Earth by human
beings and AI Minds?
8. Massive parallelism
Prof. Jones spells out what we need to do.
Murray seems to think running Mentifex
on parallel processors will solve this problem.
I calculate that it will not. I believe
human level performance requires that one
apply multiple approaches to controling complexity:
category formation by clustering/vector quantization hierarchical knowledge organization/processing parallel processing avoiding search whenever possible simultaneous use of multiple specialized agents sequential running of multiple generations of agents plus any other means you can bring to bear.
(See Asa H, R. Jones, Transactions of the Kansas
Academy of Science, vol 109, No. 3/4, pg 159, 2006)
Let's get to work.
The Instantiate module is so simple and straightforward that, instead of malfunctioning itself, it is more likely to develop problems caused by other modules such as newConcept and oldConcept, which prepare the associative-tag data that will be assigned during the operation of the Instantiate module. Nevertheless, the overall functionality of an AI Mind may develop bugs so mysteriously hidden and so difficult to troubleshoot that a savvy Mind whisperer or AI coder extraordinaire will know from expert experience that it pays to troubleshoot the Instantiate module, which is probably not malfunctioning, in order to track down elusive bugs which drive bourgeois, clock-watching AI code maintainers to distraction and despair. When management finally calls in the True AI expert, the schadenfreudig hired hands will crowd around the high-security superuser debugging console and hope to watch the AI coding legend fail as miserably as they have.
Years later the stories will still be told about how the obviously inept and overpaid AI guru wasted everybody's time by troubleshooting the [fail-safe] Instantiate module and somehow miraculously found the bug that nobody else could even describe let alone pinpoint, thus fixing the unfixable and saving the mission-critical stream of AI consciousness that was threatening mayhem if not TEOTWAWKI - - the end of the world as we know it.
A guruvy way to troubleshoot Instantiate is to temporarily set the AI software to come up already running in the "Diagnostic" troubleshooting mode. In either Forth or JavaScript, the same technique that starts the AI Mind in tutorial mode may be used to start the AI in diagnostic mode. In JavaScript it may be the judicious use f "CHECKED" in the control panel code, and in Forth it may be the setting of a numeric mode-variable. In Forth one may halt the AI and run the ".psi" diagnostic tool.
The overall Mind functionality bugs that can be tracked down by troubleshooting Instantiate can be maddeningly difficult to diagnose and tend to have an etiology rooted either in the [spreading activation] subsystem or in the associative-tag subsytem that comes to a head in the Instantiate mind-module. AI code maintainers may be so accustomed to looking for thought-bugs in the activation subsystem that they forget to consider the associative subsystem on which all the activation-levels are riding. It does no good to have perfectly tuned conceptual activation parameters if the associative routing mechanisms are out of whack.
A systemic Mind bug is evident when the AI fails to maintain a meandering chain of thought or outputs spurious associations instead of the true and logical associations that would reflect accurately the knowledge base (KB) accumulating in the AI Mind.
One troubleshoots the associative Instantiate subsytem by examining the contents of the conceptual Psi array as shown in diagnostic mode. For every thought generated by the AI, there must be a record of its mental construction archived in the panel of associative tags for each constituent concept. A proficient AI coder is able to examine the associative-tag engrams and reconstruct the thought in natual human language. An even savvier AI guru will check not only the immediate area of a spurious thought for clues about what went wrong, but will identify the designations of the concepts involved and will search out nearby instances of the same concepts to make sure that the appropriate associative tags are being assigned properly by the Instantiate module in conjunction with other mind-modules that prepare the tags for assignment.
It is definitely not the case that an AI Mind, once it is functioning properly, will never again suffer systemic Mind bugs. Adding any new functionality to a primitive AI Mind potentially upsets the system as a whole and permits the [emergence] of either conceptual activation bugs or associative mindgrid bugs. Porting an AI Mind from one programming language to another is almost sure to cause systemic Mind bugs. Installing an AI Mind in a robot embodiment may engender systemic Mind bugs. Comes a Singularity, nothing can be done to keep a self-modifying AI codebase from suicidal extinction by genetic trial and error.
A text file of notes on coding Mentifex AI in
JavaScript.
Add tasks here at the top; remove completed items from below:
[30aug2006] Remove changelog entries of 23jul2004 and 24jul2004.
[ ] In
aLife() shift recall-delay from 5000 down to 4000.
[ ] Try to blank out departed-from user option layers.
[ ] In blanked-out layers announce the chosen option.
[21aug2006] As with
Mind.Forth, implement conceptual activation limits.
[20aug2006] Move S-V-O layers ten absolute points down the screen.
[17aug2006] Use nouncall 4 instead of 2 for nom gen dat acc.
[ ] Attempt validation, such as for input outside of ranges.
[18aug2006] Write code to show English words instead of "aud" numbers.
[18aug2006] Convert Tutorial S-V-O DIV layers to "absolute" style.
[22aug2006] Update JS AI "
Ego" module from
Mind.Forth AI algorithm.
[17aug2006] Enable tab-key-press to cycle through all display modes.
[16aug2006] Add
Singularity (Timetable) link across top of screen.
[11aug2006] Install horizontal line of links at top of Mind HCI:
Mind,
Manual;
Mind.Forth,
Manual;
Theory
AI4U
Singularity Site-Meter
*************************************************************
REMOVING TWO OLD CHANGELOG ENTRIES WHILE ADDING ONE NEW ENTRY
> Fri. "23jul04A.html" uses not centerpiece but hq (headquarters).
> Sat. "24jul04A.html" adds Listening; Thinking; Terminated.
INVESTIGATING WHY THE
THINK MODULE RUNS TOO FREQUENTLY
Yesterday in the "29aug06A.html" version we inserted
alert('Think(): nouncall = ' + nouncall); // 29aug2006
into the
Think module and we were surprised to discover that
calls to
Think() were interrupting our entry of an input
sentence. It worried us to suspect that
Think() could in turn
be calling
SVO() and abortively be creating sentences of
output before we even finished typing in our input.
Today in the "30aug06A.html" version we intend to troubleshoot the phenomenon of too frequent calls of the Think() module. The etiology could be so simple as to involve our recent and gradual decrementing of the time-delay between calls of itself by the aLife module at the end of each loop. If so, all we need to do is to put in an especially long delay between aLife() calls to see if we can grant ourselves sufficient time for human sentence-input before Think gets called again prematurely.
We may have to use a status-variable or flag to keep aLife() from calling Think() in the middle of input.
From the more general viewpoint, this problem of Think() being called too frequently and prematurely is typical of the morass of entanglements that we encounter when we try to develop and debug our AI Mind in JavaScript. Unimagineable obstacles to our successful coding keep popping up. The process confirms our belief that coding AI is difficult, and it whets our appetite for our eventual success.
Upshot: When we used a larger time-delay in letting
aLife() call itself, the problem went away.
DEBUGGING THE PROBLEM OF EXCESS TUTORIAL DISPLAYS
While we were encountering the problem of too frequent
and premature calls of the
Think() module, we were also
seeing weird and unexpected tutorial DIV-layer displays.
Apparently we had forgotten that we had called for such
displays simply as a test to see what would happen.
Today in the function Tab() we doubly commented out
some calls so that we could also leave a comment upon
why the calls had to be commented out now and should
be eliminated from future versions of the AI software.
// showSubject();
// showSubject(); // 30aug2006: Should be called only from
spreadAct().
// showVerb();
// showVerb(); // 30aug2006: Should be called only from
spreadAct().
// showObject();
// showObject(); // 30aug2006: Should be called only from
spreadAct().
Upshot: There is now a juicy mess of bugs to be troubleshot. Obviously the "nouncall" and "verbcall" flags are letting the tutorial "show" functions be called all too cavalierly. Perhaps, though, we should upload the otherwise stable version and attack the new bugs more at our leisure.
Yes, as we re-run the AI, we see a plethora of bugs to be fixed amid the malfunctioning tutorial displays, but we realize that a newly stable version really should be uploaded immediately.
12 Aug 2006 (updated 12 Aug 2006 at 13:02 UTC) »
The AI breakthrough of 7 June 2006 is being ported from Mind.Forth into JavaScript Mind.html.
Although it is easier to code AI in Forth than in JavaScript, its is harder for Netizens to run the Forth AI because first a specific version of Win32Forth must be downloaded and
unzipped, and then the Mind.Forth source code must be loaded into Win32Forth.
With the JavaScript AI, a websurfer only needs to use Microsoft Internet Explorer (MSIE) to click on the Mind.html link and the AI Mind flits instantly across the 'Net to come alive and visibly start thinking inside the MSIE browser.
Mind.Forth is an open-source artificial intelligence coded in Win32Forth.
The Forthmind for robots is free to download from the Web and it is
astonishingly easy to
run the AI on a Microsoft Windoze computer.
(Schools and museums may even compete for the longest-running AI.)
As a precursor to the AI-based Technological Singularity near/here,
Mind.Forth is arguably the AI on which the
Singularity spikes.
You are welcome to inspect the record of the coding of Forth AI:
http://www.blogcharm.com/AI is a Mind.Forth Programming Journal.
Yeserday we reasoned:
> Perhaps one way to begin any session of troubleshooting is to type in
> cats eat fish [ESCape] -- instead of [RETURN]. In that way, it may be
> possible to use the .psi command to see exactly what activations have
> been created for the first three concepts -- and then to go from there.
Just now we followed the above instructions and .psi told us:
164 : 72 4 0 0 5 73 72 to CATS 168 : 73 3 72 72 8 74 73 to EAT 173 : 74 2 73 73 5 0 74 to FISH time: psi act jux pre pos seq enx
Immediately we ask, why are there such low activations (4, 3, 2)
on the three
new concepts for which we typed in words?
Today we realized that we have a chance here to examine our
troubleshooting techniques and to write them up in the #debug
area of the webpage for any pertinent mind-module. We could also
write up a general debugging document for the artificial mind,
but there is a crying need to flesh out the mind-module pages.
So therefore one immediate question is, which module are we
debugging here? Well, where did those rather low (4, 3, 2)
activations come from?
Let's use an already known word with "robots eat fish" and see
what activations we get. Aha, we get one higher activation amid:
166 : 39 23 0 0 5 72 39 to ROBOTS 170 : 72 3 39 39 8 73 72 to EAT 175 : 73 2 72 72 5 0 73 to FISH time: psi act jux pre pos seq enx
So apparently our AI is setting really low activations for
new words coming in. The Moving Wave Algorithm of
C:\Forums\E-Mail\AGI_902.txt (stored locally) and of
http://www.mail-archive.com/agi@v2.listbox.com/msg02527.html
perhaps mandates such a state of affairs, but the differential
now looks far too severe in the light of the more recent
developments of the
psiDamp module and the
psiDecay module.
We now think that residual, subconscious activations have to
be set at the top of a middle activation-tier by
psiDamp, so
that
psiDecay may let the activations slowly dwindle away.
At some point in our #debug material we should perhaps suggest to
AI coders that they comment out any automatic asking of questions,
so that the natural interplay of old and new concepts may be
observed without interference in the setting of normal activations.
Now it seems that we have found the problem in the HCI module:
\ 32 uract ! \ 26jul2002 Let PARSER decrement input "act".
\ 32 uract ! \ Depressing new concepts to boost old concepts.
5 uract ! \ Allow KB input but no influence on chain of thought.
On the contrary, our new
psiDamp/
psiDecay work means that we do 164 : 72 30 0 0 5 73 72 to CATS 168 : 73 29 72 72 8 74 73 to EAT 173 : 74 28 73 73 5 0 74 to FISH time: psi act jux pre pos seq enxand
166 : 39 49 0 0 5 72 39 to ROBOTS 170 : 72 29 39 39 8 73 72 to EAT 175 : 73 28 72 72 5 0 73 to FISH time: psi act jux pre pos seq enx
Now we should upload the 27feb06C.F Mind.Forth file to
http://mind.sourceforge.net/mind4th.html just to show the flag.
Coding "28aug05C.F" in the wee hours today, I started using the psiDamp module to leave a "lump" of activation on direct objects after the thinking of a thought. Then it turned out that the Think module needs to find an active verb, so I started leaving a "lump" of activation on verbs, too. In the Forthmind that I uploaded to the Web today, chains of thought now meander indeed, but they still have the problem of making spurious associations. (Oh, gee, I forgot to reinstate the Ask module.)
I may decide to change the Think module so that it simply looks for an active subject, not an active verb. Then the behavior of the AI Mind may become much more interesting. It might start verbally searching for words, uttering a subject noun and then perhaps failing to find either a verb or a direct object. An incomplete thought might then trigger the asking of a question.
I feel as though I am gradually implementing my recent plan for a baseline, "normal" AI. First, a few days ago, I worked on entering data properly into the knowledge base (KB). Then today I provided for meandering chains of thought. Next I need to make a looping chain of thought. Then I need to integrate the Ask module with the baseline AI normalcy. Then I will be free to integrate module after module with the quasi-bare "Christmas tree" of the baseline AI Mind.
A few minutes ago, an idea came to me that perhaps I should create a private, local registry of "peer-pages" existing simultaneously on Wikipedia, AIWiki and SL4Wiki. In that way, I could fill in blanks and add links at all three venues.
On 25aug2005 I added my most dynamite link ever to the Wikipedia. When the Mentifex-bashers find out about that sheer audacity, it will be open season on hunting for witches. Oops, I almost gave it away. I just need a few months for that embedded link to propagate all over the Web, and then it won't matter any more if the pack of jackals howls at the moon.
Two nights ago I made a spur-of-the-moment comment on Slashdot with the title, Artificial Intelligence Needs Venture Capital and with the following text.
Er, could anybuddy spare a few coins for Open Source Artificial Intelligence?You don't even need to fund an unknown AI startup. Just hire some hotshot programmers and Steal.This.Idea!
It's all described in the scientific literature of the Association for Computing Machinery (ACM).
Be the first on your block to launch the Hard Takeoff of a Technological Singularity.
Over the next day or two, each of my own links from above received about six hundred hits. Some of the people may even have downloaded and started running the Mind.Forth AI. Some of the people may have noticed that Mind.Forth was updated that very day and again two days later.
Yesterday DisQ on 914pcbots.com was asking if I make random choices of what to debug in my AI program. Things that need debugging may seem to pop up randomly, but there seems to be an overall trend towards better functionality. Before I installed the Mind.Forth diagnostics in 2005, so many invisible problems were secretly hidden in the opacity of the AI source code. Now a little diagnostic sunshine is forcing simple but show-stopper problems out into the open. L'intelligence artificielle est en marche, et rien ne l'arretera.
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!