1. THEORY OF
AI Algorithm Steps: Code the Auditory Short Term Memory 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" / | | \_______/ | \___/ \_______/-----------|---\______/ |Decision-Tree of Mind-Design
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.
2. WHAT IS LONG-TERM MEMORY?
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.
The diagram ai4u_157.html is a flowchart 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 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
Try in advance not to introduce any
evolutionary bugs.
The
AI Debugger program may shed some light in general on how to debug
and troubleshoot programs in artificial intelligence.
7. Auditory Short-Term Memory Resources