Wednesday, October 7, 2015

Feature pruning the Asa H case-base

Each level in the Asa H hierarchical memory is composed out of concepts each one of which consists of features defined on the next lower level in the hierarchy.  (The concepts can be thought of as vectors and the features are the vector's components.)

In our publications on Asa H we have described ways in which we may prune some of these features.  Standard statistical measures of independence can also be used to prune features; mutual information measures, Fisher's discrimination index, the chi-square test of independence, etc.

Thursday, October 1, 2015

Enabling conversations with Asa H

I have given my AI  Asa H a kind of minimalist set of concepts based (mostly) on the Toki Pona artificial language:

"need" or "want" is defined by low robot battery and need to recharge
"away", "long" (distance), or "far" is defined by a Lego NXT ultrasonic sensor reading which is approaching 255
"near" is defined by a small input reading from an ultrasonic sensor
"strength" or "force" or "push" is defined by input from HiTechnic force sensors
"white" is defined by an input reading from a HiTechnic color sensor approaching 17
"grasp" is defined as a gripper servo closing and feeling an object with force or touch sensors
"drop" is defined as opening a gripper that had been grasping an object
"strike", or "hit" is defined by inputs from force and Lego NXT contact sensors
"home" is defined by a robot's docking station and recharger
"say" is defined by robot sound or other signal transmission
any "time" is defined by reference to the computer's clock (or an external time reference)
"move" is defined by input from encoders in a robot's drive servos and by any HiTechnic motion sensors
"taste" is defined by inputs from Vernier pH and salinity sensors
"light" or "bright" is defined by input from a Lego NXT light sensor
"knowledge" is defined by input (and output) of a computer file/case-base
"front", "back", "left", "right", "side", "top"/"on", "bottom", "body", "head", "hand", "arm", etc. are all defined by force or touch sensors on those various sides/parts of a Lego NXT robot.
Any "location" is defined by input from a Dexter industries gps module
"hot", "cold", and "temperature" are defined by input from a Vernier temperature sensor
"end" and "stop" are learned as the cessation of  some servo actions
"black" and "dark" are defined by a low input from a HiTechnic color sensor or light sensor
"work" or "active" is defined by motor activity continuing over time
"eye" is defined by the inputs from a webcam
"leg" or "foot" are defined by signals to and from the appropriate servos
"word" or "name" are defined by the set of categories and names learned for them
"path" or "road" can be defined by a line following system
"food" can be defined by the measured amount of energy stored in the robot's batteries
"eat" is defined by sensing  battery recharging
"earth" or "ground" or "floor" can be defined by setting down force or contact sensors
"wall" is defined by lateral touch or force sensor contacts and gps readings
"see" is defined by inputs from a webcam, light, or color sensors
"red", "green", and "blue" (or other colors) are given as inputs from a HiTechnic color sensor
"hear" and "sound" are defined by inputs from a Lego NXT sound sensor
"color" is defined by an input from the color sensor which is neither too high nor too low
"wind" and "air" or "fluid" are defined by the input from a Vernier anemometer
"wait" or "stay" is defined by prolonged lack of servo operation and fixed gps reading
"bump" or "acceleration" is defined by input from a HiTechnic acceleration sensor
"rotation" is defined by input from a HiTechnic gyro sensor
"north", "south", "east", "west", and "magnetism" are defined by input from HiTechnic compasses and magnetic field sensors
"turn" is defined by input from the gyro sensor, compass, and servos
"fast" and "slow" are defined by the level of inputs from various servos
"hunger" is defined by a low battery charge measurement
"pain" and "breakage" are defined by input from fine damage detecting (breakage) wires
"mouth" can be defined by the robot's battery charging contacts
"piece" can be defined by the components of a robot ("body", "arm", "gripper"/"hand", etc.)
for a virus AI like Ava 1.0 "reproduction" can be defined by disk or file copying
"parent" can be defined as the source copy when file copying occurs
"child" can be defined as the file copy
"dead servo" can be defined by zero current and zero motion when the servo is commanded
We can also detect when certain sensors are "dead".
"dead robot" can be defined by seeing when all or many servos and sensors are dead and/or many "pain" signals are input
"sense" is defined by input from any of the robot's sensors
"surface" is defined as a "wall" or "floor"
"control" can be defined by the activation/use of a PID postprocessor
"age", the robot keeps track of how long it's been in operation
"young" or "new" can be defined as an "age" less than some given number
"old" can be defined as an "age" greater than some given number
"inside" can be defined by gps values falling within a certain range
Asa H can make use of a NOT or inverse (see my paper in Trans. Kansas Acad. Sci. 109 (3/4), pg 161, 2006)  and then "live" can be defined as NOT "dead". (You can elect to define the inverse of just a limited number of signals.)
"room" or "container" is defined by "floor" and "walls"
"hard" is defined by strong "push" and small displacement
"soft" is defined by small "push" and larger displacement
"take" is learned as a sequence "grasp"-"lift"-"move"
"tool" is learned as sequences like "push"-"object"-"push"-X
"collision" is learned as a sequence "near"-"strike"-"accelerate"
"damage" is learned by a sensor pegging and/or in terms of breakage detectors ("pain")
level of "health" is learned as a combination of level of  "damage" and "hunger"
"leave" is defined by a "near" proximity measurement followed by a "far" measurement
"approach" or "arrive" is defined by a "far" proximity measurement followed by a "near" measurement
"feel" is defined by input from any force or touch sensor
"good" and "bad" are defined by the degree of activation of the  "health"  concept.
Neural network preprocessors have been trained to identify various "letters", "numbers", "shapes",  common objects  etc. "similar" and "different" can be defined by the degree of match reported by such preprocessors.
Algorithms are available to detect "faces" and "people" in images and to count them.
"group" or "many" or "large" can be defined as when a count exceeds some given number.
"lone" is a single person or face.

In some cases we would like to have additional definitions for a given concept.

Looking back on this work I think that up until now I may have underestimated the value of embodiment.

 As they are listed above, the english words for each of these concepts can be learned by association with each of the relevant input hardware signals seen by the robot. We can then hope to converse with Asa in this elementary robot language.  This is an extension of the simple communications reported in chapter 1 of my book Twelve Papers (see my website  under Book).

Tuesday, September 29, 2015

Pain sensors for Lego NXT robots

Fine wires can be strung between Lego NXT robot components (e.g., head, body, arms, etc.) or even between each individual brick.  When the pieces separate (break) the wires break and this provides a pain signal to the Lego brain brick or Asa H mind software.

Saturday, September 26, 2015

Open house

Today is the Emporia State "family day" open house. The state of Kansas wants us to have 10 physics majors per year so there is a lot of emphasis on recruiting.  For me at least physics, and science in general, is about ideas.  These public events tend instead to be more like carnivals. By and large my colleagues do not seem to share my values. They want to say physics is fun.  I want to say physics is important.

Some things are easy to learn.  But learning is, in general, NP hard.  You can't just learn the easy stuff.  You can't expect it to always be fun. University should not be considered a part of the entertainment industry.

Maybe the english department would do things more to my liking.

Monday, September 21, 2015

Ignoring input

I might learn nothing from reading a book written in Italian.  A specialist expert may learn nothing from a book written about some other specialty.

Asa H can be given specialist knowledge by loading a casebase learned previously. It may be that Asa should ignore input which is outside of its area of specialization. (To do otherwise may just fill the memory with useless information and slow down Asa's cognitive processing.)  This can be accomplished by having Asa ignore input when the similarity measure is sufficiently low. Whole data files can be detected and skipped in this way.

Sunday, September 20, 2015

Unassimilated memories, library use

There are many things which I haven't committed to memory but which I know where/how to find, the mass of a uranium atom for instance or my brother-in-law's telephone number.  I want to give my AI Asa H the ability to use an external electronic library.  Such an auxiliary memory would then expand Asa's knowledge without slowing down its regular search.
What we want is more than a robot librarian.  We want to retrieve individual facts, not whole books. I am looking at the universal decimal classification system for one thing.

Monday, September 14, 2015

Why no larger space program?

If the Russians had put a man on the moon first.  If venera had found life on venus. If Viking had found life on mars. If the space shuttle had reduced launch costs by more than an order of magnitude. If some economically important space processing had been developed on the ISS.
If seti had heard intelligent signals from space. If any of these had happened then we might be sending humans to mars today. But they haven't happened, at least not yet.