View Full Version : Teaching an AI? Rather than programming it?


Calle E
12-22-04, 11:11 AM
If you program an AI program to chat for you while you ain't there, what would be the best to make it ultimate?

Would you rather program it with zero cases in the database and then let it observe your conversation and make it auotomatically add the different cases that comes up and notice what you answer, next time it know that the proper way to answer "Hello" is to say "Hi". Maybe program it to read old chat logs and write questions and answers into the database that way, so years of experience from you could be transformed into the AI on one sec.

Or would you program all different cases and tell it what to answer? That would take a long time...

What would you do? Also think of the use, would you use a chat AI you knew could answer something that is weird, because you sometimes says weird things, or would you rather like it to be programmed so that you know what the AI will answer at different questions.

What do you think?

Best Regards,
Calle Ekdahl

Roman
12-23-04, 02:39 AM
You'd still have to program it to "learn" everything, and even then it wouldn't really be comparable to human intelligence, as all its actions are statistically based.

Calle E
12-23-04, 09:54 AM
It would not match human intiligence but a good one could probably trick the others that it's actually a human thats talking. To program a AI to "learn" is not easier than the other way, but wouldn't it be better? When it got some experience it would probabably cover the common phrases.

mouse
12-23-04, 02:43 PM
Would you rather program it with zero cases in the database and then let it observe your conversation and make it auotomatically add the different cases that comes up and notice what you answer, next time it know that the proper way to answer "Hello" is to say "Hi".

One of the tricky things of human communication is that it is based on context and comprehension, rather than on a simple stimulus-response combination . Take the question "How many hours before dawn?". It clearly requires an answer based on the current (local) time. You need to be able to understand the question before you can give a valid answer.

Maybe program it to read old chat logs and write questions and answers into the database that way, so years of experience from you could be transformed into the AI on one sec.

Above question "How many hours before dawn?" seems quite trivial, but in fact it only gets presently two hits in Google. (http://www.google.nl/search?hl=nl&q=%22How+many+hours+before+dawn%3F%22&btnG=Zoeken&lr=) The flexibility and richness of human language does not fit into a simple relational database, there are just too many combinations of words possible that can make up a meaningfull sentence.

It would not match human intiligence but a good one could probably trick the others that it's actually a human thats talking.

How to trick a human when your AI is not able to understand simple questions? It's even quite difficult for me to trick my fellow human, and to trick my girlfriend doubly so.

Calle E
12-23-04, 03:10 PM
Yes, you got a point. Some questions have to be programmed like if it get a special question if will respons with the right time. Didn't think about that, but I still think it can manage to trick people.

Take this for instance:
You: Hello
AI: Hi (Since I use to response with 'hi')
You: How r you doing? ("You" always uses r instead of are and my AI recognise it and understans it, it knows what I use to answer too).
AI: Fine thx.
... Heres the conversation use to end if we don't have anything to say, if so the AI probably tricked him. Let's think of a possible continue.

You: How are your latest project going? (This is a question, my AI don't recognise the phrase but it looks for hints what to answer and see 'going?' it knows that I use to answer 'fine' to 'going?' and so it does.)
AI: Fine
... Ok, heres your question.
You: How many hours before dawn? (Here, my AI cannot recognise 'dawn?' but since it can see in my chat log I use to answer with a number it knows that it can't know it because I rarely answer the same number at a question that demans numbers. Then it answers 'I don't know' because it know that as it is a question and 'You' don't know I am not supposed to know it either, in most cases)

AI: I don't know.

This doesn't work in all cases, but in most. Or what do you think?

Dilbert
12-23-04, 03:38 PM
du kan inte ta för givet att någon kommer att säga "How r you doing", men detta går ju att lösa genom att använda en väl sammanlänkad relationsdatabas.

men sedan så är det stora problem för om jag skriver "Ho wr you doing", då kommer den inte att förstå någonting. Du bör inte tro att du kan göra en chatbot som kan ersätta dig i MSN/ICQ konversationer eller liknande eftersom att AI:n läser och känner igen ord, vi människor ser helheten och sedan relaterar till vår egna kunskap. Så om du ska få din AI att verkligen fungera så bör du då få den att läsa igenom en mening eller en godtycklig längd, och sedan läsa "Ho wr you doing" som helhet istället för Ho, wr, you, doing. Och sedan gör den vad datorer gör bäst, den räknar ut procenten för hur troligt det är att det står "How r you doing" istället för "Ho wr you doing" och sedan så testar den alla andra möjligheter.
Det är lite svårt för den måste se varje bokstav som en bokstav och se det som en byggsten och orden är inte lika viktiga (förutom om de är rätt), sedan så måste du kolla på hela meningen och kunna rätta till ord enligt en databas för hur troligt det är med ett ord i en mening, samt vilken "position" den har i konversation.

hmm, gör det så kanske om 1 år så kan den ersätta dig. ;)

And if you do not understand Swedish then tell me and ill translate it for you.

Calle E
12-24-04, 04:04 AM
I am from Sweden, as well. And if I understood right you want to write all in one like howareyoudoing but it will arise problems when trying to distinguish words out of that. I do not take for sure that the other will write how r you doing but since I had talked a lot to this guy my AI knew this was an option, and he knew that it was an option. And it wouldn't take a year to teach the AI alll experience it needs, it could observe old chat logs. Maybe it will take a year to make it if I start, but I think this project is to big for me...

Best Regards,
Calle Ekdahl

Dilbert
12-24-04, 04:18 AM
not for it to write it "howryoudoing", it could see that "you" and "doing" are allready correct and then it would try the combinations of h, o, w, r to see what is most likely.

mouse
12-24-04, 08:48 AM
This doesn't work in all cases, but in most. Or what do you think?
I think that it works in a few cases, not in most. In your example I am likely to ask something similar as "Why do you not know how many hours it is before dawn?". How would your AI look up an answer for that?

If it returns with "I don't know" once again, my suspicion would grow that we are either dealing with one dim human or a chatbot.

Persol
12-24-04, 10:39 AM
Alice already does this. It only works well because most IM chats are between fairly uneducated people. If you write a program that says 'asl?' and then can respond, you'll fool most people.

If that's all you want, alice is the answer... but most people talking to it will simply think that you are being a jerk.

G71
12-25-04, 01:42 AM
Calle: Forget the AIML junk. It's time for the real AI development. The system needs to understand the input. NL is often hard to get a meaning from but nothing prevents you from using alternative (cleaner) communication formats. Get the AGI working and then put some thoughts on adding the NL layer.

Calle E
12-27-04, 03:42 AM
Calle: Forget the AIML junk. It's time for the real AI development. The system needs to understand the input. NL is often hard to get a meaning from but nothing prevents you from using alternative (cleaner) communication formats. Get the AGI working and then put some thoughts on adding the NL layer.

How would you do that?

If it returns with "I don't know" once again, my suspicion would grow that we are either dealing with one dim human or a chatbot.

Yes, it would certainly response I don't know again, but what's the matter? They will think the real lperson is trying to be funny, not a chatbot is dumb...

Best Regards,
Calle Ekdahl

mercurio
12-27-04, 05:48 AM
I think that however smart you make a bot at understanding mangled words or sentences, you still have one sucker bot: it will keep up the conversation no matter what, while a human faced with too much unintelligible crap will say: seeya later weirdo and move on. As a person.

Even a much simpler bot - languagewise - would be a lot more convincing if they bothered to program some spunk into it.

mouse
12-27-04, 09:35 AM
Yes, it would certainly response I don't know again, but what's the matter?
When building an AI, usually the aim is to imitate a feature of human intelligence. If your hypothetical bot fails in imitating one such feature, it is hard to categorize it as AI.

Dilbert
12-27-04, 11:36 AM
atleast from a human viewpoint

Calle E
12-27-04, 03:23 PM
Maybe. I found what Mercurio said very intresting.

Even a much simpler bot - languagewise - would be a lot more convincing if they bothered to program some spunk into it.

That gave me an idea. If you had right phrases, then you could convince others that you were busy, but not absent. Heres an example of that:
You:Hi
Me:Hello
You: What's you doing?
Me: Nothing at moment. Can we talk later, I'm busy.
You: Ok.

See, that is one that would probably work. "You" would think that "Me" was on the computer but to busy to answer.

But this misses the point of having an AI a little. Because why would you like to trick you friends like that? More fun would be if you could trick your friends to a longer talk. But that seems impossible, or at least complicated.

Best Regards,
Calle Ekdahl

G71
12-28-04, 12:08 AM
Calle: From my point of view, there is nothing cool in fooling people.

How would you do that?

I don't think I can explain it well briefly.
Do you know the Novamente system? It's an AGI project. AFAIK there is no publicly available demo yet but the system is under active development for several years now and there is a lot of public info. It supports NL. I have my doubts about the quality of the NL support, but it also has a lower level language called "KNOW" which can be used to communicate with the system. The NL input gets converted to KNOW before it's used by the system. The KNOW is one of those clear formats I was talking about. You should be able to find some details about that if you are interested. I'm working on my own AI system. It's not gonna support NL any time soon. NL is just a mess. I designed a form-based format for my AI-AI and User-AI communication. For now, I call it ARSL (ARTEX Scripting Language). ARTEX = name of the system (Artificial Reality Explorer). The module which handles communication is called ARTCOM. The following paragraph is from the ARTCOM documentation:

<i>"A typical ARSL script (kind of “story”) is a collection of statements (kind of “sentences”) of various types. During the communication, users are typically selecting statement types from the Statement Type tree, then filling associated forms in the Statement Form area and finally inserting the generated statement into the Script area or Chat area (Figure 2-1). For some of the new concepts (especially for Action concepts), forms can be partly designed by users. Using the form-based communication, users can script complex stories and pass it to the system as a source of experience (“Complete Scripts”). Users can also pass scripts which contain one or more “?” parameter values or the “?” statement(s). Such script is understood as a “Script to Solve”. When requested, ARTEX tries to solve it by replacing the “?”s with real parameter values and/or statements."</i>

ARSL has about 25 types of statements and 10 types of parameters. If I simplify a bit, I can say that a statement is a partly predefined sentence with some parameters to fill. ARTCOM also contains several "special editors" for some concepts (like concepts of relative positions; action concept editor; formula editor.. etc). I'm trying to keep ARSL very intuitive. It's a lot more user friendly than the KNOW (which is AFAIK not intended to be used by regular users). I cannot go into details now. And generally, I prefer to go into details with developers who might be able to contribute to the project. If you think you are one of those then let me know. It's not gonna be very informative but, just in case, here is the high level architecture of my AI:

http://www.mageo.com/home/GEORGE_71/artex/ArtexHighLevel.PNG

BTW I have done lots of coding in various computer languages, but not much in .NET which I decided to use for this project. So I'm learning on the fly. I'm currently the only developer on this project. Things go slowly because I keep working on a bunch of other interesting private projects and the family stuff is also pretty time-consuming in my case. I wish I could get some enthusiastic & experienced .NET developers for this project. BTW while I'm writing this, I'm listening to the domain registration agreement from the GoDaddy.com where I'm about to register some domain names (I'm using a text-to-speech convertor). The "Go Daddy" name is of course heavily used in the agreement. I would be interested to see how well would a NL-Supporting-AI-system (like Novamente) get the meaning from such document.

mercurio
12-30-04, 06:37 AM
Maybe. I found what Mercurio said very intresting.

But this misses the point of having an AI a little. Because why would you like to trick you friends like that? More fun would be if you could trick your friends to a longer talk. But that seems impossible, or at least complicated.

Best Regards,
Calle Ekdahl

Hi Calle,

I think that a very honest appraisal, but remember that people do it all the time: if I'm a businessman I'll pretend to be very occupied (with customers) ESPECIALLY when I still had to lure them in. Telling them I've got all the time in the world for them might be more honest, but guess what: it would put them off, because they expect, no DEMAND you're a busy man, if you're any good.

Same with banks and money, remember? If you have, you can borrow. Or if they THINK you have, more exactly.

So filling in expectancies is what we do, and sometimes it's pretend, sometimes outright lying, but in all cases it works...

:)

Calle E
12-31-04, 08:43 AM
Ok, thx for the replies everybody. AI is hard to do, especially if it are meant to communicate with people. Your opinions have been a help. Even though I will put the project on hold.

mercurio
12-31-04, 01:53 PM
OK, but on a parting note, you might want to check out Edward de Bono's Six Thinking Hats stuff. It may seem strange at first, but think how a chatbot with different possible viewpoints (whole outlook on life really) would make a more interesting conversational partner:

http://www.mindtools.com/pages/article/newTED_07.htm

Not trying to sell anything here, it's just a very informative peek into the taking of positions in discussions. ;)

caffeine_fubar
01-03-05, 02:46 PM
You can teach AI by telling it to learn from random responses. From those responses, possibly what kind of answers it can say to carry on a good conversation. It would be difficult, but entirely not impossible. Our minds run on statistics too...... the only difference is the formations of invisible facts that MAY exist to balance an equation that is to our knowledge, unexplainable (beliefs... religion)

river-wind
01-11-05, 03:39 PM
www.20q.net is fun!


it's been learning for 20 years!

nexus
02-24-05, 02:43 PM
Different thread in the same forum regarding "chatbot" "AIs" http://www.sciforums.com/showthread.php?t=44608

G71, that was a very interesting if somewhat cryptic post. Do you have a link to the project you were referring to? I develop in .NET, primarily C# so it is of much interest to me. Thanks.

testify
02-26-05, 05:42 AM
/bump

G71
02-27-05, 01:55 PM
Nexus: It's not online now. The doc needs some updates and there is a lot of code to write. We can discuss details through email if you are interested. jjelinek.us @ gmail.com

Cyber
03-18-05, 07:36 AM
Hi, I'm new to this forum. The topics are quite interesting, so I joined.

I believe that the correct response to a question depends on the question AND the environment. The AIs that I know of do not take into consideration the environment. This could be things such as the time of day, the setting (for humans, anyway) and quite importantly, recent dialog/topics/facts (/moods?). Some factors in the environment are more important than others and the AI should know this.

Therefore, answer=f(question, environment)

I suspect that a true AI cannot be programmed using structured programming. If it can be done with a computer, I suspect it will be done using artificial neural networks or self-modifying code (which will become quite messy, very quickly).

G71
04-18-05, 12:52 AM
I suspect that a true AI cannot be programmed using structured programming. If it can be done with a computer, I suspect it will be done using artificial neural networks or self-modifying code (which will become quite messy, very quickly).

It all depends on how you define the "true AI". Structured programming is being used within object oriented programming (OOP). I would be interested to know what part of the "true AI" functionality cannot be coded using OOP (?). OOP is IMO suitable for coding the core of the "true AI". Thinking is IMO primarily an object oriented activity. There are some tasks for which it makes a lot more sense to use artificial neural networks (ANN) rather than OOP (and other types of programming), but when talking about "true AI", I view those as lower-level sub-tasks. So ANN might be just a handy tool for an AI system (like a calculator for me - I just use it when it makes sense).
Whenever I had something to do with a self-modifying code, it was always the type of code which was changing itself during runtime (which is an extremely hard-to-read type of code and developers should stay away from that technique whenever possible!). AI should IMO never change its own code when it's running. It can play with copies of its components, do a lot of testing and then possibly replacing some of its original parts while being ready to switch back to the previous version if needed. Some of the core parts (code and data) should never be modified by the AI without an approval from the author (or an authorized subject). Our AI systems are being designed to work for us. It makes no sense to invest resources into development of an AI system which would self-modify so that its goals and our goals could/would become incompatible and could cause undesirable scenarios. So, self-modification - YES with limits, but I do not see it as a necessary thing for the first version of the "true AI". ANN - YES, but it may not be needed for the first version as well (depends on the environment/interface). "True AI" may initially have nothing to do with ANNs and self-modification techniques. Both things can come later, after the system gains significant amount of knowledge.

theoneiuse
08-08-05, 05:24 PM
You'd still have to program it to "learn" everything, and even then it wouldn't really be comparable to human intelligence, as all its actions are statistically based.

the field needs thinkers like you keep it up

G71
08-10-05, 04:30 PM
Theoneiuse,
Data-driven AI can exceed the human level of intelligence and can get hardly predictable since it will see more links between concepts than humans.