Getting a Robot to Determine Its Own Truth

This piece describes an approach I am working on for an upgrade to SuperDroidBot “Anna” and a sharable brain service I am working on.  This is obviously only ONE approach to getting a robot to have a concept of truth.

What is Truth?

In this system, “Truth” is a probability distribution defined by a Mean, a Standard Deviation, and a count of observations (N).  The mean truth represents the average degree to which a memory is correlated with absolute truth of 1.  It is a “correlation coefficient”, or “r” in stats.  I represent truth as percentages in my examples (-100% to 100%). 

Let’s take the following statement, heard for the VERY FIRST time by a robot…

Observation #1:   Jane is beautiful.

This might result in the following values for truth. 

                N=1, Mean=85%, StdDev=20%

The mean and standard deviation are arbitrary for the first observation, but take on meaning and usefulness as additional observations are made.

What is Memory?

Memory is organized as a set of “Atoms”, each atom represents a memory.  Among many other things, a memory could be a word, a person, a place, a concept, or an association of some kind.  Each atom has its own “Truth”.

Natural Language Quantifiers

For a given observation, the specific words used have an effect on the truth value.

  • Jane is beautiful -  Value = 85%
  • Jane is somewhat beautiful -  Value = 60%
  • Jane is very beautiful -  Value = 90%
  • Jane is always beautiful - Value = 100%
  • Jane is not beautiful - Value = -85%
  • Jane is never beautiful - Value = -100%

I call each of the underlined words a "Quantifier".   I maintain a list of quantifiers in the database that hold the mean truth and standard deviation for each of these quantifiers.  For example, “never” would have a value of -100%, while “always” would have a value of 100%.

Learning From Multiple Observations

What happens when the robot hears the same or similar statements multiple times?

Observation #N:   Jane is beautiful.

Lets say that before this observation, truth was stored as:

N=5, Mean=81%, StdDev=14%

Truth would then be recalculated as (the next section provides the formulas for the recalculation):

N=6, Mean=82%, StdDev=13%

In this example, the mean went slightly up, and the standard deviation went slightly down.  If people are in common agreement generally that Jane is beautiful, the mean will converge on some value like (85%) and the standard deviation will shrink.

Performing Logic with Multiple Truth Values, Synonyms, Negatives

Often a logical chain of several atoms needs to be evaluated.  Consider the following example:

Jane is beautiful.    Mean = 85%

Beautiful is the same as pretty.  Mean = 85%

Is Jane pretty?

a.       Answer “Yes” if result is greater than some truth threshold, say 60%.

b.      Result = 85% * 85%= 72%      72% > 60%, so answer “Yes”

One can see from the math above, that if more synonyms were used in the atom chain, the truth result would get smaller, and the statement would no longer pass the threshold to be outright true.  I plan on having ranges for truth every 10% or so, with different English answers for each, so that answers like “Likely”, or “Possibly” might come out for statements that are close to true but don’t quite meet the threshold (60% in this example).

An example with a negative…

Jane is beautiful.    Mean = 85%

Beautiful is the same as pretty.  Mean = 85%

Pretty is the opposite of ugly.  Mean = -85%

Is Jane ugly?

a.       Answer “No” if result is less than some truth threshold, say -60%.

b.      Result = 85% * 85%* -85% = -61%

These are greatly simplified examples, as many algos process many different chains of atoms at the same time and process dozens or hundreds of truths to get an answer to a single question.

A tangent, but I should be able to calculate a confidence in the result based on the combined standard deviations and sample sizes…just haven’t figured out how yet.

Giving Qualitative Answers for Quantitative Questions

In the previous example, the result was 72%.  Ideally, the spoken answer would vary according to the result and the confidence in the result, so answers to Yes/No questions would have answers that reflect uncertainty ranges, as in the following examples:

  • High Correlation Answers:  Definitely, Without a Doubt
  • Medium Correlation Answers:  Probably, I believe so, I think so, Yes
  • Low Correlation Answers:  Maybe, Possibly, Could Be
  • Little or No Correlation Answers:  I am not sure, Your guess is as good as mine, Who knows?

Getting a Robot to be Open Minded

Having an open mind means taking new information into account.  If each new observation is allowed to be processed, then the summary statistics are recalculated with each new observation, which means a new N, Mean, and StdDev.  If new data is trustworthy, then this is ok, but what if it is not?  Perhaps some skepticism over time is beneficial.

Getting a Robot to be Open-Minded but Skeptical – Having a B.S. Detector

Skeptical means being selective about what new observations are allowed to be processed.  My intention is to filter out new observations that seem to conflict too much with previous experience.

  • Be open minded when N < 10.
  • Filter out readings from sources that are not trusted.
  • Filter out new observations that are more than 2 standard deviations from the mean.
  • For facts that not in debate, the standard deviation will shrink over time, so outliers don’t have to be very far away to be “rejected”.

Truth for concepts where there is no consistent truth

For concepts where there is a great variance of opinion (like the weather or whether a given rock band plays good music), the mean will tend to converge on a value that is in the middle (-50% to +50%), and the standard deviation will tend to be a lot larger.  This widening of the normal curve will result in fewer values being “rejected”.

Getting a Robot to Give Verbal Feedback that Information is Accepted or Rejected

There are basically a few common circumstances.  For each of these cases, I have or intend to have a list of possible responses from which I choose a verbal answer at random.

  1. A fact is heard for the first time - Possible Responses:    “I was not aware of that”, “That’s interesting”, “That’s new to me”, “Ok”, “Got it”
  2. A fact is learned that is already known - Possible Responses:    “I know”, “I’ve heard”, “So I’ve heard”, “Tell me something I don’t  know”
  3. A fact is heard from a trusted source that conflicts with prior learned information (falls outside some threshold – 2 standard deviations) - Possible Responses:    “I don’t believe you”, “I doubt it”, “Are you sure?”, “That doesn’t sound right to me.”, “Stop kidding around.”   In extreme cases, this could even result in “I think you are full of crap.”, “I think you are lying”.
  4. A fact is heard from an Untrusted Source -  I am considering having the robot reject the new data (not recalculate truth distribution), but give passive aggressive B.S. type responses to humor the speaker like “Interesting”, “Hmmm”  “Yawn”, “Whatever”, “If you say so”, “Whatever floats your boat”, “Hard to say”

Getting a Robot to Determine Whether a Source Is Trusted

Trustworthiness is just another correlation.  Each time a new observation that comes in, the observation should be tested to see if it agrees or conflicts with existing data.   

If the fact check is found to be sufficiently true, truth would be recalculated for the given source (a particular human being for example), giving the source credit by using a 100% as a new value to add to the truth stats.

If the fact check is found to be sufficiently false, truth would be recalculated for the given source, taking some truth away from the source by using a -100% as a new value to add to the truth stats.

Using “R Squared” – The Coefficient of Determination

Because the mean is also a correlation (r), we can calculate the coefficient of determination and use it for some simple tests.  If “R Squared” values are fairly low (0-50%), this would mean that the truth being evaluated is questionable, as the correlation (positive or negative) is weak.  In regression, R squared is supposed to describe the percentage of variance explained by the given factor.  I think this will turn out to be useful later.

Getting a Robot to Derive its Own Truth Instead of Being Told Truth by Humans

Because truth is a correlation coefficient in this model, and correlations can be calculated from any two series of data with the same number of items, then a robot could derive truths on its own from sensor data or other sources.  I have started by getting the robot to be able to remember data series verbally and calculate and verbalize correlations.  The next step is to get it to “learn and remember” a meaning from the result.   Some examples:

  • A stream of light sensor data could be correlated with a stream of temperature sensor data.  A robot might calculate that light level is 80% correlated with temperature level, and effectively derive and learn a “truth” that when the light is higher, the temperature is likely higher. 
  • A robot could compare a football team’s “Running Yards Allowed Per Game” with whether it won/lost and determine “Giving up yards against the run is highly correlated with losing”.  The goal would eventually be to have the robot hear that a given team gave up 200 yards on the ground and say “So they lost didn’t they?”  That is a long way off.

Getting a Robot to Answer Questions About its Own Logical Conclusions

I have not figured out how to do it yet, but I have two primary goals:

  1. Get the Robot to be able to explain its own reasoning by asking “Why?” or “Why do you think that?”…I’d like it to be able to answer “Jane is pretty because pretty is the same as beautiful, and I have heard many times that Jane is beautiful.”
  2. Get the robot to answer in qualitative and quantitative terms how confident it is about its logic.  So I can ask “Are you sure?” …and it could say “I am fairly confident of that.”

 

You might want to have a
You might want to have a source’s trustworthiness be listed according to domains. For example I may be trusted about computers, but my knowledge of sports is almost nonexistent. Also, I can rarely get actors names right, though I know their rolls (example: yestday I was recommending the movie Galaxy Quest to a friend and could not thing of Tony Shalub’s name).

There is also the problem with human memory. For example, talking with that same friend about the Star Trek episode “Spock’s Brain” I mentioned a joke that Spock mad at the very end of the episode and was told that nothing like that appeared in the episode, and Cory is extremely knowledgable at Star Trek TOS. Yet I could have sworn I heard it.

Another problem with my memory occurred many years ago when the Fletch movies with Chevy Chase came out, but I had also read the books. I mixed things up in my memory so that an episode which occurred in the books seemed to have been from the movies; I even remember his saying the lines, and yet due to the content of the episode I knew it could not have been from the movies. The problem was that Chevy Chase played such a good Fletch that when I read the book I saw it in graphic detail in my mind.

These are fairly common problems with human memory. You might want to have Anna start with a very low truth value for anything from a human until it is justified by other sources unless this is a personal observation such as Jane is beautiful.

Thanks Jay

First of all, I want to give you a huge thanks.  It was some of your ideas in another post that inspired me to rethink this whole topic.  You got me thinking and trying to figure out solutions, so thank you very much.  That’s about the highest compliment I can give anyone and it doesn’t very much in my life outside LMR.

I’ll cogitate on the domain idea.  Makes a lot of sense.  I am uncertain as of yet how much I will use the trustworthiness value.  I think the robot will need to be tolerant of people who are wrong a lot.  I doubt I could function in life if I wasn’t.  I do want it to sniff out people that are intentionally wrong though - liars, or people that are kidding/B.S. ing.

I am ok with people sources being wrong, as I believe this will just result in either the standard deviation growing, or the information being rejected.  Interesting behavior should result either way. For example, I intend to have the robot express surprise when a new account differs significantly from prior accounts, but it still accepted.  The rejection scenario should only happen if the robot has had several exposures to the fact in question and has a firmer opinion of truth.  (N > Some Threshold, and StdDev < Some Threshold).  I will probably make the brain very tolerant of differences of opinion on new issues.

I find the idea of the brain getting skeptical (the B.S. detector) and expressing it “You are talking crap now.” to be intriguing.  I am hoping it will be funny.

Instead of using a low truth value for info from humans, I think I am okay with adopting new information as it is received, with a high truth value if that is how it was heard, but with a large standard deviation.  The high truth, low N and the high StdDev will basically represent (Here is what I have heard, but I am open minded and not set in my opinion as I’ve only heard this once)

I spent last night studying Wolfram Alpha, which seems to be an amazing new source of data and question answering potential.  I intend to add it to the other 3rd party services as soon as possible, and start using it for some questions/data.   As a non-human source, I suppose it should be given a lot more weight than the average citizen.  Maybe I’ll just increment N more for sources that are obviously better.  Lets say a Wolfram observation is worth 5 N, While a person’s only increments N by 1.

I doubt I will get into fictional stories and such with the bot brain, except when I am asking it questions about movies, tv, song lyrics, etc.  The natural language requirements to process narrative accounts of stories are just way beyond me just yet.  I’ll keep plugging away though.  Thanks again for the brain food.

I’ll let you know once I have some of this working on the website.

Regards,

Martin

Who is Jane?

Ok, i am just kidding and I only read 60% of the whole story since my own time restrictions and to being able to comment :slight_smile:

That idea for a shared brain is very interesting. I am sure MarkusB will find it interesting too. For me some of those equations are stuff from outer space but I am trying to get the picture. 

However, in my opinion truth is not only a logical result of some parameters but also the point of view. The true loaction of an object for example could be right OR left of the line, depending of the observers position.

Similar?

The somewhat understandable graph approach for organizing the robots view of the world was my main take away of the half-hour video. On this page.

The main site does not have or mention any API for public use yet. It does look like it is worth keeping an eye on to see how the concept progresses.

I wonder how you derived

I wonder how you derived those formulas. Can you identify?

Re: Derivations

The new mean is just a weighted average of 2 values…the old mean weighted by N, and the new observation with a weight of 1

For standard deviation, I used a spreadsheet to test my formula against fictitious sets of values and their actual standard deviations.  OOOPS, it looks like I didn’t translate the formula I am using correctly from my spreadsheet into my LMR post.  Squaring the NewValue makes no sense without subtracting out the mean first.  That’s really messed up!  Sorry, I’ll definitely need to fix that.  I am going to remove that from my post until I can resolve.

Regards,

Martin

Opinions

Good point, I suppose “opinions” or “POVs” might have been better terms for truths.  I think a robot can derive an opinion on Jane’s beauty or whether penguins can fly by listening to multiple people and/or asking them and forming its own opinion from that.  Locations seems like a bit of a special case as a robot would likely store its location truths in some coordinate system rather than left/right type truths.  As you point out, there are a lot of things that are simply points of view.  I once wondered about how AIs could form opinions on things that are not factual, but just preferences.  Example:  Does an AI like Nirvana?  (the grunge band)  I didn’t have a solution at the time, so I took a shortcut and just gave the AI opinions or had it derive its own opinions from those of its designated creator.  I’d like to think of something more creative moving forward.

On a side note, the shared brain got hooked into WolframAlpha last night for answering questions.  I wish I could quantify how many times smarter the brain got in the last 24hrs.  I went to bed trying to guess.  The scope of Wolfram is amazing.  Because of this rapid increase in IQ, I’m hoping to move on to more matters of EQ (Emotional Quotient), which I think will ultimately be more interesting to people.  Forming opinions, points of view, etc. and knowing when and how to share them will be an important piece of that.

Re: Similar

I tried that video and attempted to follow what he was saying in between football today.  I’d like to see some examples of how they “query the graph” and such.  Thanks for posting.  I want that robot to anticipate my needs by bringing a brewsky.

Time

As time pass some info get invalidated or updated. If a trusted source says it’s day at 9am and then says it’s night at 12pm, that source it’s not a liar, but time just passed and info need to be updated.

Some info have a well defined expiring date, like government ministers, school, work and sports, while paleontology facts aren’t going to change. Info time expiration could be asked after input with questions like “it will change soon?”.

I wouldn’t say paleontology

I wouldn’t say paleontology facts aren’t going to change. Science changes all the time :wink:

And here we have the POV

And here we have the POV again. I say it’s 11:44am not and my fellow LMRian birdmun in Indiana/USA is telling me that it’s 11:45pm YESTERDAY. 

Updating an AI is important but also determin where the information is coming from.

I am following up here and

I am following up here and hope we all can understand more by discussing that kind of techincal evolution.