1.
Theory of
AI4U
Algorithm Steps: Code the audSTM Mind-Module
/^^^^^^^^^\ Recall Of Knowledge On Seeing A Cat /^^^^^^^^^\ / EYE \ REACTIVATED / EAR \ / \ CONCEPTS / _________ \ | _______ | | | | SEMANTIC MEMORY | /enBoot \ | | /"cat" \!!!!|!!!|!| | | / English \ | | / image \---|---|-+ | __________ | \ bootstrap / | | \ recog / | |c| | / \ | \"vault" / | | \_______/ | |a| | ( Sentence ) | \_______/ | | | |t| | \__________/--------|-------------\ | | recognition | |s| | | \ ______ | audSTM short| | | of "cat" | e| | | | \/ Verb \ | term memory | | | results in | a| | | | ( Phrase ) | where ideas | | | spreading | t| | | ___V__ /\______/ | are heard or| | | activation | | |f| / Noun \/ | | generated, | | | among related | | |i| ( Phrase ) | | then stored | | | concepts | | |s| \______/ | | ________ | | | _______ | | |h| | _V_____ | / \ | | | /new \ | |_|_| _V___ /English\ | / "cats" \| | | / percept \ | / \ / En \ \ Verbs /-|-\ "eat" / | | \ engram /---|--\ Psi /--/ Nouns \ \_____/ | \ "fish" / | | \_______/ | \___/ \_______/-----------|---\______/ |
The Robot AI Mind has an auditory Short Term Memory (audSTM)
module but no real Long Term Memory (LTM) module because the
Robot Mind algorithm is based on the idea that the only difference
between STM and LTM lies in how memory engrams are recalled and
reactivated in the lifelong memory channel (see diagram above)
when the short term lapses into the long term. Neuroscience
may regard the thalamus as the locus of a selective attention
system to process short term memory, but Occam's Razor
("
Entia non sunt multiplicanda praeter necessitatem.")
demands that we not design more mental machinery and more
systems of memory deposition than we need to get the
Cartesian "Cogito ergo sum" job done. Therefore Occam's Razor
applies inside each individual species of Robot AI Mind, but
in the current paleorobotic era that we humans happen
to be witnessing, the opposite of Occam's Razor applies:
Entia sunt multiplicanda propter diversitatem,
that is, AI entities are to be multiplied for the sake of
diversity in the evolutionary maelstrom of survival of the fittest.
If anyone successfully demands that there be an LTM module in
the AI Mind to go along with the STM modules, that long-term
memory module will not be a separate storage area for
long term memory (LTM) but will rather be special processing
mechanisms of the same data that were originally laid down
in what we by default call the short term memory (STM).
Since AI survival depends not on the moribund standardization
of the Robot AI Mind but rather on the healthy diaspora of many
speciating forms of AI evolution splintering and re-splintering,
any mind-designer or neurotheoretician may incorporate an LTM
in a branch of the Robot AI Mind genealogy to see how it fares.
Anything goes, and tomorrow only knows.
If a rudimentary AI Mind has only the sense of audition in audSTM
Short Term Memory but still manages to think purely in terms
of acoustic words and how they relate logically to one another,
then such an AI has very little real knowledge of the real world.
Therefore the Short Term Memory must be expanded into multiple
senses (not only audSTM but also gusSTM, olfSTM, tacSTM and
visSTM) coordinated with associative tags linked into the
linguistic system of syntax for generating sentences of thought,
so that the Robot AI may not only have real knowledge in its
knowledge base (KB) but also be able to discuss the knowledge.
http://mind.sourceforge.net/ai4u_157.html
is an overview of Mind.
// audExam() is a method of audNode() // and provides access both to pho(nemes) // stored in audition and their tags/flags. function audExam() { // ATM 13apr2002; ID & date. aud0 = this.pho; aud1 = this.act; aud2 = this.pov; aud3 = this.beg; aud4 = this.ctu; aud5 = this.psi; } // End of audExam method of audNode(). // audNode() is called from Short Term Memory "audSTM()" // and other functions which need to create, activate, // or deactivate an auditory memory node ("audNode"). function audNode(pho,act,pov,beg,ctu,psi) { // ATM this.pho = pho; // phoneme this.act = act; // activation level this.pov = pov; // point-of-view: internal/external this.beg = beg; // beginning of a word? this.ctu = ctu; // continuation of a word? this.psi = psi; // ultimate-tag over to a concept this.audExam = audExam; // a method of this object. } // End of audNode(); return to audRecog; audSTM; etc. // audSTM() is called from Listen() +/- CR() // and stands for "auditory Short Term Memory": function audSTM() { // ATM 10jul2002; or your ID & date. if (t > vault) { // Programmer declares a rough "vault" value. audRecog(); // Auditory recognition of entry or reentry. } // After bootstrapping, always call audRecog. tult = (t - 1); // Fetch the "t-ultimate" previous time. audMemory[tult].audExam(); // Examine the previous engram. // After any blank, beg(inning) is primed to be true: if (aud0 == 0) beg = 1; // word beg(inning?) flag. // 9jul2002 Diagnostic test code: if (aud0 == 0) { spt = tult; // 9jul2002 blank = space. } // 10jul2002 if (beg == 1) onset = t; // 9jul2002 Test; remove. if (aud0 == " ") beg = 1; // 1=true; 0=false for "beg". audMemory[t] = new audNode(pho,0,pov,beg,ctu,psi); } // End of audSTM(); return to Listen(); CR(); etc.
\ audSTM (Short Term Memory) is called from AUDITION : audSTM \ ATM 25jul2002; or your ID & date. t @ vault @ > IF \ If time has advanced beyond bootstrap, pho @ 32 > IF audRecog THEN ( ASCII 32 = SPACE-bar ) THEN \ end of test to prevent "recognition" of bootstrap. t @ 1- 0 aud{ @ 0= IF 1 beg ! THEN \ zero t @ 1- 0 aud{ @ 32 = IF 1 beg ! THEN \ SPACE-bar. pho @ t @ 0 aud{ ! \ Store the pho(neme) at time t \ 0 t @ 1 aud{ ! \ Store no act(ivation) level. pov @ t @ 2 aud{ ! \ point-of-view: internal #, external * beg @ t @ 3 aud{ ! \ beg(inning)? 1 Yes or 0 No. ctu @ t @ 4 aud{ ! \ continuation? 1=Y or 0 = No. psi @ t @ 5 aud{ ! \ ultimate psi tag # to a concept. \ 0 psi ! \ 26jul2002 Safety precaution reset. pho @ 32 = IF t @ spt ! THEN \ Update "space" time. ; \ End of audSTM; return to AUDITION.
5. Analysis of the Seed AI Modus Operandi
The code above stores auditory memory engrams in the acoustic
array Aud by inserting an ASCII value for a phoneme ("pho")
along with various flags that achieve in software the wetware
functionality of synapses and associative tags in a human brain-mind.
The flags used in the audSTM code are perhaps too redundant and
too wasteful of RAM memory space, and so while getting the job
done, they invite improvement amid the diversity of AI life forms.
The beginning "beg" variable is used in the Short Term Memory
module as a flag that tells whether an ASCII character being stored
is the beginning of a word in auditory memory. Although the
underlying AI algorithm must eventually be changed so that the
Mind may deal with subsets of words regardless of whether they
are at the beginning of a stored word, nevertheless the variable
"beg" has been useful to get the primitive AI program running.
The Audition module sets the "beg" (beginning) flag before audSTM
stores the datum as either a "1" or a zero "0", and the audRecog
module uses the "beg" flag not explicitly but rather hidden as a
value found, and tested for, in a certain fixed position of the
"Aud" array. If the comparator finds that a stored and matching
character is a "beginning" item (i.e., "beg" = "1"), then the
comparator initiates the string-effect process of pattern-recognition
by immediately increasing the activation "act" of the beginning item
by a value of eight (or whatever the Robot Mind coder chooses).
On the next pass-through of a subsequent comparand item,
the string-effect sequence will pass activation down to the
next-in-line character. Temporarily now, the string-effect mechanism
relies on detecting the beginning of a stored auditory engram,
that is, a word, by means of the beginning-flag "beg".
However, this mechanism is too simple for the more advanced
recognitions that the evolving Robot AI needs to achieve,
and so the beginning-flag "beg" may eventually be replaced.
The continuation-flag "ctu" for "Aud" array phonemes is set
(given a value) in the Audition module and is stored in the
auditory Short Term Memory (audSTM). The "ctu" value stored
by audSTM as "1" or "0" in a panel of "Aud" flags plays a role
in the audRecog and Speech modules. In the audRecog comparator,
the variable "ctu" is not explicitly stated but is hidden as
the value in a fixed position on the "Aud" array flag-panel
and is tested for so as to find the end of a word stored in
auditory memory. If the "ctu" flag, by no longer holding true
at the end of a word, indicates that the end of a matching
and stored word has been found, then the audRecog module
seizes the ultimate-tag "psi" of the stored word so that
a new instance of the word may be stored in auditory memory
with the correct "psi" leading to a concept. In the Speech
module, the role of the continuation-flag "ctu" is much simpler,
and once again the "ctu" flag is hidden and is expressed only
by the "1" or "0" value found in a test at a fixed position
of the "aud" panel, so that speech output may stop if the
continuation-flag "ctu", by changing in value from "1" to "0",
indicates that the character or phoneme now being spoken in
Speech is the final item that must be pronounced or displayed
in order to speak the given word.
The ultimate-tag "psi" is an integer number stored with
a quasi-phonemic word in the auditory memory channel array "Aud"
and serving to associate or link the "ultimate" phoneme of each
stored word to the concept of the word in the "En(glish)" array.
After running Mind.Forth, one may finish a session by typing in:
.aud [RETURN] in order to see the ultimate-tag "psi" at the
end of each word-engram stored in the auditory memory channel.
The numeric tags are a way of simulating an associative nerve fiber.
The auditory ultimate-tag "psi" goes only inwards to the "En" fiber
"nen" and not vice-versa. The "En" array uses the recall-vector "aud"
to reverse direction, that is, from "En" to a word stored in "Aud".
This arrangement is because, although an incoming word is recognized
by its ultimate "psi" sound, the same word, stored in auditory
memory, is reactivated by means of its onset sound "aud" as held
onto by synaptic nodes in the "En(glish)" lexical array.
The point-of-view "pov" flag is a marker in the auditory
Short Term Memory (audSTM) as to whether a word came from the outside
world or from the Robot AI Mind itself. The Audition module sets
the "pov" flag as either a pound sign (ASCII 35 #) for "internal"
or an asterisk (ASCII 42 *) for an external (non-self) point of view.
As consciousness emerges at
http://sourceforge.net/projects/mind,
most thoughts will show an internal # sign which looks anyway like
the up-and-down concept fibers of the mindgrid (as described in
Mind/ Docs/ Theory of Mind/ Brain-Mind: Know Thyself!)
with orthogonal associative tags flowing left and right to integrate
the grid. The asterisks for external (*) input already suggest
by common usage that something external to the stated item
has a connection with the item, as in fact the external agent
entering the auditory input may be associated with the input.
In the Oldconcept module, the "pov" flag is used to route
the "fex" or "fin" branching of association from a word being stored
in the auditory memory channel, so that the proper deep mindcore
Psi concept may be tagged associatively to the phonemic word in
the auditory memory channel array Aud. With personal
pronouns such as "you" and "I" or "me", it is important that
each pronoun in the mind be associated with the proper concept
from an internal (#) self or external (*) other point of view ("pov").
The "pov" flag has an effect upon self-awareness and consciousness.
6. Troubleshooting and Robotic Psychosurgery
Besides storing the "sounds" (or keyboard characters) of input
from the sense of hearing, the audSTM mind-module performs the
crucial task of linking a stored word to its subverbal concept
in the Psi array of the artificial mind. Although audSTM stores
whatever information it has at any given moment, the Audition
module retroactively changes the "psi" concept-tag in the auditory
"Aud" array by either inserting the psi tag of a recognized word
or by inserting the incrementally next number for an unrecognized
word that must automatically be treated as a new concept by the AI.
Accordingly, problems that seem to be arising in the audSTM module
may require troubleshooting in the Audition and audRecog modules
that are so tightly integrated with the audSTM module.
The artful AI coder will at least start to debug audSTM
before moving on to Audition or audRecog as the true source of
an auditory memory problem. The AI expert will run the AI Mind
in Tutorial mode for a quick overview of how any reported bug
or malfunction manifests itself -- typically by interfering
with chains of thought in the AI Mind. If the proper psi tags
for concept-recognition are not being stored in the Aud array,
chains of thought will go haywire and will possibly throw the
AI Mind into a catatonic, flatliner brain-dead state. Even if
the Ego module resuscitates the brain-dead AI with thoughts of
the concept of self or ego, most likely the thought-chain problems
will reoccur. Fortunately, running the AI for a very brief time
in Diagnostic mode may reveal the conceptual heart of darkness
to the astute observer. The trick is to choose the very best
time to run Diagnostic mode so as not to get swamped with the
diagnostic details. Another trick is to inspect the contents
of the auditory Aud array and compare the associative tags with
the contents of the conceptual Psi array. The Psi array may
show the wrong concept(s) being activated, while the Aud array
tends to show a true record of the external input from a human
or the internal stream of auditory consciousness for a non-human.
In summation, troubleshooting the audSTM mind-module will
typically involve eliminating audSTM as the seat of a problem
and delving into Audition and/or audRecog as the real venue
for debugging chain-of-thought problems and conceptual miscues.
7. Auditory Short-Term Memory Resources for
Seed AI Germination and Evolution