Ai Forums Home Welcome Guest    Monday, September 06, 2010
Ai Site > Ai Forums > The Artificial Intelligence Forum > Who here is IMPLEMENTING a True ... Last PostsLoginRegisterWhy Register
Topic: Who here is IMPLEMENTING a True AI?

eastwind.ai
posted 4/1/2010  03:58Reply with quote
Is there anyone here who is actually implementing a true AI and writing actually code and not just talking about how they would be doing. But actually experimenting with something?

Practically! It seems everyone is all talk and no work.

If you are, how long have you been working on it? What programming language? How far is your code base? Got any results so far?


lrh9
posted 4/1/2010  09:37Send e-mail to userReply with quote
I am... trying to.

http://aidreams.co.uk/forum/index.php?topic=3313.0

http://aidreams.co.uk/forum/index.php?topic=3314.0

I've made some changes and addendum, and I've changed programming language once, but the essence is in those posts.

To give you a basic gist the project is along the lines of Turing's child machine approach. (That intelligent machines will be learners that will gradually expand their knowledge base and abilities.)

In my project these "child machines" will begin in the form of software agents. These agents will acquire abilities from software modules containing repositories of dynamically callable functions and data. Anyone can write these modules, including the agent given sufficient ability. (This will allow room for the a.i. to improve itself on the fly.)

That is enough on theory. Right now I'm coding the module importer for the agent. So no viable results that could demonstrate that these agents are a.i. yet.

When I complete the importer the main thing I hope to demonstrate is that the agent is easy to use and highly configurable and extensible. With the import system alone an intelligent and motivated coder could write modules for all of the functionality displayed by current a.i. bots and apps.

Not a new accomplishment, but a milestone I feel must be passed in any a.i. system.

After that additional features that will need to be implemented:

a) An individual thread of execution for each agent. Intelligent agents in the real world have autonomy and initiative. This can only be achieved in software systems by giving each agent control over its own line of execution. (You don't have some little program telling you to go to the store. You initiate going to the store when you observe that you need something from the store.)

b) An interactive control console. On the flip side of that these agents are meant for use in human software and hardware applications. Direct control of these agents will be necessary at some point. This console will allow for a more direct form of control where commands are issued in the form of programming codes and the agent then executes these commands.

c) Basic ability modules. Any successful a.i. will need to demonstrate an ability to learn and acquire new abilities on its own accord. However, a certain degree of assisted learning is required for people to interact with their environment in any significant way. The first 25% of our lives is devoted to learning from teachers. So that we can get a career, support a family, learn and develop further. These software agents will need some preprogrammed modules to be of any significant use. Things like basic language comprehension, self awareness/identification and control, etc.

Those are the main plans for now. Eventually I want to add speech recognition and macro capabilities in the form of mouse and keyboard input emulation.


eastwind.ai
posted 4/2/2010  18:48Send e-mail to userReply with quote
i checked it out and that's really good. i want to encourage you to keep at it!

I'm still developing my theory and should begin actually implementation next year. If you want to have discussions and talk about it. You can email eastwind.ai AT gmail dot com


hunt
posted 4/21/2010  13:06Send e-mail to userReply with quote
I am! I'm using Python and the WordNet implementation for it. In a nutshell, here is what I'm working on so far...

1) Parser. Obviously pretty important. It's getting better with exposure to sentences and my own code refinement. Basically it works through recognizing what words are what parts of speech (WordNet is helpful here, basically acting like a dictionary) and recognizing patterns in the sentence to elucidate the meaning when the words themselves are ambiguous. See (3) for details on this.

2) Memory. Once everything is broken down into simple sentences, those sentences are stored in memory in a tree-like fashion. The trunk is always a noun, branching off according to what verbs it can do, then branching on from there to include any necessary conditions for verbing to happen, and any objects that can be verbed. Each branch "tip" is given an ID that other branches can reference as conditions. I hope this is making sense... Any physical properties of the object (size, shape, type, what have you) are stored under the all-powerful verb "is".

3) Sentence patterning. I mentioned above that the parser tries to reduce ambiguity by looking at sentence patterns. It does this by taking each sentence it learns and creating a "pattern" with holes punched out according to where nouns go, where verbs go, etc. (It skips over adjectives and adverbs, since they tend not to be important to the overall structure of the sentence. Dealing with adjective-noun ambiguity is another ball of wax.) What's left is a pattern of articles, prepositions, punctuation, conjunctions, certain common words, and holes where the other parts of speech used to be. New sentences can then be fit to these patterns and rated on the success of the fitting. (Honing what qualifies as a good fit is more of an artform than a science.)

4) Compare. I'm creating a learning program to develop classes of comparisons that can be made between objects. (Everything is oriented around objects.) The classes contain all related words to the class (for example, the 'size' class would contain the related words "large","small","tiny","gargantuan", etc.) so that the AI knows when someone is referring to that class of comparison. It then contains the outcome for different objects. Eventually, it will be able to draw comparisons between objects that are not specifically in its database by drawing on it's memory to see if it's sized similarly to an object that is in its database. This part of the AI is still in its early stages.

5) Emotion. This is actually a "separate AI" at the moment that's going to be integrated into the main chatbot. It's a program that learns to associate words with emotions. It does this using a basis of eight different emotions: joy, helplessness, bravery, interest, goodness, pride, passion, surprise. I chose them based on some psychological mumbo jumbo about the root of complex human emotion. The main point is that all other emotions it learns as some superposition of these basis states. It chooses what the emotion state is (eight numbers) based on what objects the user tells the AI that s/he associates with that emotion. If the objects are already associated with other emotions, it can some up the different emotional contributions to get the new state.

The reason for the emotional component is that alot of how people respond to a situation is dependent on their emotional state. However, the AI I'm working on is mostly aimed at erudition at the moment, rather than conversational learning. We'll see how it goes...


kcaz
posted 4/21/2010  19:37Send e-mail to userReply with quote
Wow, all of the ideas here are truly great! How did you get started? I'm looking for somewhere to start (I guess it has to be an idea :p) but it seems anything I could do could have been done 50 years ago.




hunt
posted 4/21/2010  23:50Reply with quote
The place to start is with a goal. Don't be too general. A chatbot is a great goal (that was my original goal, and still is my ultimate goal) but you have to be more specific about what you want to achieve. I realized right away that what I was most interested (what I *needed* to be most interested in) is turning raw text into a systematic knowledge base. So most of my project revolves around improving the parser.

I wanted my chatterbot to be able to discuss subjects by creating it's own sentences based on what it knows about whatever objects (nouns) are related to the discussion. That requires a well-defined knowledge base (as opposed to programmed best responses spit out from previous user input).

Parsing is hard. Hard hard hard. It doesn't have to be the only goal. My emotional AI (I call it Emo) was immediately more fun to play with and teach, and it was much simpler to implement. (The reason being that the teaching language was chosen to be restricted to key phrases as opposed to any natural language.)

At any rate, once you have a goal, pick a programming language. I can't sing the praises of Python enough, but there are many good options. You want to think about this ahead of time because it would absolutely stink to realize that the language you chose isn't going to work (or is just really cumbersome) after you've already cranked out a lot of code.

I guess that's my only advice. Starting from scratch is rough. I suggest picking a language in which people have already written natural language packages. WordNet is great. I started this thing thinking I'd have to build up a dictionary/thesaurus from scratch. That is a lot tougher than you think it would be. And not nearly as fun as the stuff that comes next. :)


kcaz
posted 4/22/2010  02:42Send e-mail to userReply with quote
Ok thanks!

I too love python, it is so simple!


tkorrovi
posted 4/22/2010  22:00Send e-mail to userReply with quote
Absolutely Dynamic System, well, it supposed to be absolute in a sense that it is as dynamic (changing) as possible. A system which is meant to be unrestricted, which also means, as unrestricted as possible. I know that this "absolute" there is often misunderstood and cause a lot of criticism, it may make sense to give it another name, but the original reason why i named it so was that i found no other way to express the limit.

So, a month is passed, and i post here again. Will I Dream, sorry, i see that what you said was not about me, but still i couldn't come back earlier, as i'm a person who always keeps his word, or at least tries to do that. I feel sorry for Meza, i think he is a kind of as unhappy guy as i am, but i don't allow myself to write programs which damage someone's computer, at least coding like that shows a bit of irresponsibility.

About this thread, well, if you expected that some prominent figure from IBM or Miccrosoft, or from some major university will post here, then you were mistaken, and in that case i don't understand why did you start this thread to begin with.

 Artificial Consciousness ADS-AC project
Last edited by tkorrovi @ 4/23/2010 9:29:00 AM
  1  
'Send Send email to user    Reply with quote Reply with quote    Edit message Edit message

Forums Home    Hal and other child machines    Alan and other chatbots    Language Mind and Consciousness  
Contact Us Terms of Use