Last Good Quote: Son's are the seasoning on our lives. - Someone on Facebook

Wednesday, July 25

Creating AI - The Baby

In a previous post, I discussed an article I read which compares how humans think to how machines think. In the next set of posts I'm going to explore this concept a bit.

Sensory Input

It all starts with sensory input. So what sensory inputs does a program have? I can think of a number of them but I will limit myself to text for the time being. (I reserve the right to branch out though!)

Let's look at how a new born baby starts to recognize things. I think the first thing a baby recognizes is momma's milk. (some might say it's momma nipple, but let's keep it PG13, huh *hey geekboy get your mind out the gutter*)

A baby drinks milk for the first time, he doesn't know what it is but he knows he likes it. The taste and smell of milk gets stored in it's memory as well as the fact that he likes it. (Hey look it's a boy!) At this point life consists of smells and tastes that are milk and not milk. Anything that is milk he likes, the jury is out on anything else.

Following that logic, when the "baby" program encounters text it stores it in it's memory, however it knows nothing about it or what do with it.

Side Bar: It's important to note that the baby did not store multiple memories of the milk. Therefore the "baby" program will not store multiple versions of the same text.

Sounds simple so far...
Side Bar: I've always noticed that nature uses simplistic methods to create complex results, thus a side objective with this program is to keep the rules extremely simple.

With that in mind, the following logic is applied to all sensory packets that come into the program.
Each saved object will have a "goodness" attribute

If the program get a "bad" vibe from the object, subtract one

Otherwise add one to it's goodness attribute


I know, I know the brighter bunch of you are screaming...How does a program get a "BAD VIBE" this guys is full of .... Well hold on a second, put that issue to the side for a second, I promise I'll come back to that in the next session.

Using these rules what would the following set of inputs give me? Assuming that "b" gives a off a "bad vibe".


IN MEMORY
--------------------
a a: +1
a a: +2
a a: +3
b a: +3, B: -1
a a: +4, B: -1
b a: +4, B: -2
a a: +5, B: -2



OK, final step, we will now give the baby program two responses, one negative..."waaaa", and one positive *cooo*. Using the above mentioned rules interaction may look like the following:


IN OUT
--------------------
a *coooo*
a *coooo*
a *coooo*
b *waaaa*
a *coooo*
b *waaaa*
a *coooo*


At this point the baby progam has learned to like the letter "a" and dislike the letter "b"

Here is a basic summary of the rules our "Baby Program" follows:
Rule 1: Incoming text is saved and assigned a goodness value of 0

Rule 2: If text gives off a "bad" vibe from the object, subtract one

Rule 3: If text gives off a "good" vibe from the object, add one

Rule 4: If goodness value is positive, output *cooo*

Rule 5: If goodness value is negative, output *waaa*
The next section will go into how the "baby" program gets a good or bad vibe from input.

0 comments:

Post a Comment

Followers