What is Artificial Intelligence?

A Blog Dedicated to Artificial Intelligence Technology & News.

Archive for the ‘Artificial Intelligence and Software’ Category

Meet Akibot, The Intelligent Twitter Clone

Posted by William On October - 28 - 2009
akibot_logo

Maybe you're one of the millions of followers on Twitter. But do you know that twitter has a clone? Imagine typing your blogs. Before you were able to publish them, your twitter page has tracked all the resources of your articles . Imagine again, you are looking for the profiles of your followers, and twitter suddenly pops-up on screen to display who's and what's really on your mind. Sounds silly, but this is really the concept of Akibot, an A.I. bot designed by a twitter follower.

Akibot combines the collective intelligence provided by microblogging with an artificial intelligence engine that lets the service take action on the messages posted. This is how it works. For example you posted a message like "we'll meet tomorrow at the conference room at 8 am". Akibot would then translate the message into a service. It understands your message, then performs actions like setting an appointment to your team and even sends you and your colleagues a reminder in the form of a text message or email when the meeting time drew near.

Akibot can do several other tasks, as long as you post the message first, then let Akibot do the rest.

Click here to read more about Akibot.

5 Easy Ways to Use Artificial Intelligence in Your Java Programs

Posted by William On October - 24 - 2009
Artificial-Intelligence-JAVA

Most of the electronic stuffs we use everyday are products of artificial intelligence in collaboration with electrical, mechanical and computer engineering. These things include cell phones in general, digital radios, digital clocks, car stereo or t.v., microwave ovens and more you can add to the list.

Artificial Intelligence is also responsible in making your social network sites like twitter, easy to use, even on iPhones or Droids. It is also the core concept in web research engines like google and yahoo. Added to the list are data mining technologies, and text classification and filtering.

AI is just the theory or the concept. In order for this concept to work, we need a tool to implement a systematic program that will create its interface. And this is where Java comes in. Java is a one of the most portable and easiest to write programming language. It is in fact the widely used platform of most software applications today.

So, in this article, we will discuss the 5 easy ways to use artificial intelligence with Java.

Customer Recommender System

Most often, customers depend on recommendations to make decisions. Having a large volume of information in your site, not to mention the competitor's solutions, it is important to employ collaborative filtering in your recommender system.

Collaborative filtering strains out historical search items for a specific user and then correlates them to available information in your site, thus the process predicts the user's future interests and recommends the best given option. An example implementation for this is shown here.

Intelligent Search Applications

Intelligent Search Applications

Intelligent Search Applications

Intelligent search is a process of finding relevant information from an enormous set of non-relevant information. Finding the best results from a given search keyword is a task of a full-featured text search engine library such as Apache Lucenel

The Apache Lucene is the 800 pound gorilla in the realm of open source search. It's written in 100% JAVA however it's been ported to many other languages. Here is a short example of how to use the library.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
 
// Store the index in memory:
Directory directory = new RAMDirectory();
// To store an index on disk, use this instead:
//Directory directory = FSDirectory.open("/tmp/testindex");
IndexWriter iwriter = new IndexWriter(directory, analyzer, true,
    new IndexWriter.MaxFieldLength(25000));
Document doc = new Document();
String text = "This is the text to be indexed.";
doc.add(new Field("fieldname", text, Field.Store.YES,
    Field.Index.ANALYZED));
iwriter.addDocument(doc);
iwriter.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Now search the index:
// read-only=true
IndexSearcher isearcher = new IndexSearcher(directory, true);
// Parse a simple query that searches for "text":
QueryParser parser = new QueryParser("fieldname", analyzer);
Query query = parser.parse("text");
ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
assertEquals(1, hits.length);
// Iterate through the results:
for (int i = 0; i < hits.length; i++) {
  Document hitDoc = isearcher.doc(hits[i].doc);
  assertEquals("This is text to be indexed.", hitDoc.get("fieldname"));
}
isearcher.close();
directory.close();

Text Processing

Probably the most widely used computer application is text processing. Text processing is the manipulation of letters, words or phrases and even sentences and paragraphs. This process is performed by text processors such as your Microsoft Word, Lotus Notes etc. We do text editing of all sorts which may come handy depending on the type of document we are working on.

Text Document Classification

Text Document Classification

Text processing is enabled by text editor programs developed in JavaScript/ECMAScript,which is higly customizable. An example of a text editor program is JTextPro. A Java-based Text Processing tool that includes sentence boundary detection (using maximum entropy classifier), word tokenization (following Penn conventions), part-of-speech tagging (using CRFTagger), and phrase chunking (using CRFChunker).

A desirable feature of a word processing application is to change the case of a word, sentence or entire document. This sample application shows you, how to implement the different cases known from Microsoft Word in TX Text Control ActiveX. We are going to implement the following case changes:

* UPPER CASE

* lower case

* Title Case

* tOgGlE cAsE

* Sentence case.

Click here to see a snippet code for this implementation.

Text Document Classification

Document classification is the partitioning of unstructured sets of documents into groups that describe the contents of the documents. There are two main variants of document classification: text clustering and text categorization. The first is concerned with finding a static group structure in the set of documents, while the second (also known as text classification) can be seen as the task of structuring the repository of documents according to a group structure that is known in advance. For our discussion, let's focus on text classification.

Data can be classified according to any criteria, not only relative importance or frequency of use. For example, data can be broken down according to its topical content, file type, operating platform, average file size in megabytes or gigabytes etc. A well-constructed data classification system makes essential data easy to find.

Naive Bayesian Network is one best way to implement text classification. A naive Bayes classifier is a simple probabilistic classifier based on applying Bayes' theorem (from Bayesian statistics) with strong (naive) independence assumptions. In simple terms, a naive Bayes classifier assumes that the presence (or absence) of a particular feature of a class is unrelated to the presence (or absence) of any other feature. Here is a worked example of naive Bayesian classification to the document classification problem.

If you find this interesting, here is a sample code for the naive bayes classifier using Lucene.

Data Mining

Data mining "is a process for finding patterns and relationships in the data". This process is then used to classify users text or document into an information relevant to profiling practices, such as marketing, surveillance, fraud detection and scientific discovery.

Data mining commonly involves four classes of task, classification, clustering, regression and association rule learning. Please refer to "Text Classification" section for Classification and clustering. Regression attempts to find a function which models the data with the least error. A common method is to use Genetic Programming. Finally, association rule learning searches for relationships between variables. For example a supermarket might gather data of what each customer buys. Using association rule learning, the supermarket can work out what products are frequently bought together, which is useful for marketing purposes. This is sometimes referred to as "market basket analysis".

Refer to this link for in-depth discussion on this topic.

6 Ways To Use Artificial Intelligence

Posted by William On September - 13 - 2009

From cash registers at the grocery store all the way to personal computers, artificial intelligence has come a long way. So has the way that humans have applied and interacted with it. Artificial Intelligence (AI) can be seen in several aspects of human life.

How To Use Artificial Intelligence

How To Use Artificial Intelligence

Some familiar implementations of AI include video games, spam filtering, search engines, text analysis, and fraud detection. Artificial intelligence has become integral to the way our society functions and has great importance to many people. It has been used to protect many company’s valuable assets. Remarkably, artificial intelligence has even been used to save human lives.

1) Making Recommendations to Your Users

With the amount of data now available through the internet, being able to accurately predict what type of information your users want has become mandatory to maintaining an audience. This can be seen in sites like Amazon, Netflix, and YouTube where products, movies, and videos are recommended to visitors based on their previous actions.

Collaborative filtering is the name of a tool that allows for the combination of user input and data sources in order to predict what a user will need, like or be interested in.

Collaborative filtering is able to make automatic predictions by looking at the past interests of a large pool of users and looking for correlations. It then assumes that users who liked the same thing in the past will also like the same things in the near future. That way the system can use other users’ preferences to predict the preferences of future users.

2) Creating Killer Video Games

Video game developers have been a major driving force in artificial intelligence innovation. Video game artificial intelligence was conceived in 1951 by Christopher Strachey and Dietrich Prinz who wrote a chess and checkers game using a Ferranti Mark 1 machine at the University of Manchester.

The first video games used something called discrete logic intelligence, which provides the illusion of intelligence in the "virtual player." Video games began utilizing neural networks in 1996 with Battlecruiser 3000 AD. Video game developers can target a variety of decisions to a specific neural network. By using neural networks, the video game AI infrastructure can adapt to user behavior.

AI In Video Games

AI In Video Games

The more complex video games utilize additional technologies referred to as ‘evaluation of player actions’ and ‘emergent behavior’. Modern day video games have hundreds, perhaps thousands, of characters. New AI systems learn how the player interacts with the system and positions the characters accordingly. Artificial intelligence can utilize real-life military tactical planning and strategies, as seen in First-person shooter games such as Halo and Counterstrike.

Two new artificial intelligence technologies have emerged since 2008, including techniques dubbed "The Director" and "Milo." The Director is a strategy that provides players a different experience each time they play the game. This means that no two gaming sessions would be exactly the same. The Director also uses a procedural narrative strategy in which the AI learns how the players interact with the game and gives them increasingly difficult challenges while following a narrative.

Unveiled at E3 2009, ‘Milo’ is an up and coming technology that will allow users to interact with voice recognition AI within video games.Milo allows users to have full (and logical) conversations with the system and offers the ability to pass "items" through the TV to the AI system. Milo is currently under development by Lionhead Studios.

3) Intelligent search

Probably the most widely used form of AI is in Intelligent Search. We benefit from it when we use the mighty Google search engine, while finding Amazon products, and when we get driving directions off Mapquest. Intelligent search is everywhere. There are so many different technologies that are employed in Intelligent search it's hard to know where to begin.

Intelligent Search

Intelligent Search

One popular method uses and records the interaction of users to increasingly improve the intelligence of their search results. If a user clicks on a certain document or page it is given added weight in terms of its relevance. If web site owners link to one document or page more often than others that too is taken into account. This of course is only scratching the surface.

Another way intelligence is used in search is to find what a user is looking for as quickly as possible. The search algorithm A* (a star) is used to make sure that the amount of time, which is used for some information to travel on given paths, is decreased drastically. A function known as F(x) or the distance + cost heuristic function is utilized by the A*algorithm.

If you'd like to add intelligent search to your application we recommend you check out Lucene. Lucene is a free open source and a very innovative system which was created by Apache. It produces and optimizes intelligent searches. It's very easy to use and you don't have to make drastic changes in your system environment because it's completely file independent.

4) Document Filtering

Artificial intelligence is important and highly effective in its use of text and document classification. One common example is filtering out SPAM from your email inbox. This is accomplished by using a common classification algorithm like Naive Bayes classifier or employing an artificial neural network.

"When using this kind of technology [Document Filtering] in your applications, it's not uncommon to see success rates of up to 99.5%. "

When using this kind of technology in your applications, it's not uncommon to see success rates of up to 99.5%. So how does this all work? In a nutshell, it takes sample data that you give to it and it learns from it. For example, if an email arrives in your mailbox and you mark it as SPAM, your software then parses that email to learn what elements make it SPAM. Then when the program sees other messages with similar elements it then classifies that as SPAM and deletes it.

By no means is document filtering restricted to its application in SPAM filtration. This kind of technology can be used in countless ways. If you have interest in integrating this kind of technology in your program you might want to check out the free open source library WEKA (Waikato Environment for Knowledge Analysis).

5) Using AI In Data Mining

Thanks to the large amount of information available on the internet today - the amount of which doubles every three years - data mining has become an important tool.

"...the amount of [data] which doubles every three years...."

The object of data mining is to find and extract patterns from large data sets. Some common uses of data mining are marketing, scientific discovery, and even surveillance. A classic example is a company mining their database to find the customers that would be most likely to accept a certain offer. Companies are also using data mining extensively for getting to know more about consumer interest, spending trends, and habits. Data mining is a cost effective way for large and small companies to get the necessary data when required.

If you'd like to explore this technology further do some searching on important algorithms like, Classification, Segmentation, Association, Regression and Sequence analysis. Also, decision trees, rules, and neural networks are utilized in the modern data mining.

6) Fraud Detection

AI & Fraud Detection

AI & Fraud Detection

Data mining, and many other forms of AI, are also extremely useful in fraud detection. This use of data mining for fraud detection takes the form of looking at any abnormalities, which might turn up in the records of the client. For example, Mr. XYZ uses his credit card to the tune of $500 per month. A large number of major and consecutive purchases against that card are going to be noted down and the information conveyed to Mr. XYZ as soon as possible.

Conclusion

The large number of AI developer systems and tools present in the market today has completely changed the manner in which Americans interact and communicate with each other. tw01 Artificial intelligence can be integrated in any sort of infrastructure, be it small or large. By now we hope it is evident that artificial intelligence is capable of increasing your business opportunities by making sure that your product reaches the target market. Artificial intelligence is a complex and detailed science so, if you want to know more about it, browse through various informational libraries online (brought to you by intelligent search!).

The brain and the Memory-prediction framework theory

Posted by William On September - 4 - 2009

The full memory-prediction framework theory was first introduced by Jeff Hawkins in the book On Intelligence. The theory says that the physical arrangement of brain cortex tissue is uniform and means that there is a single principle that defines all brain and memory processing. It also notes that the brain's intelligence comes from the ability to predict future events by relying on past data.
 
Memory-prediction framework theory
Memory-prediction framework theory The memory-prediction framework gives a unified theory about complex behaviors and allows us to better understand what intelligence is.
 
This theory focuses on the cortex because we're only concerned about what makes us intelligent and not how our entire body works. After all we're trying to create intelligent software, not recreate human beings.

The Central Concept

Memory-prediction framework posits that inputs coming from the bottom of the hierarchy to the top are analyzed and ranked in a hierarchy of recognition. This then invokes a list of expectations ranked in order of potential. The framework comes into play when the brain has to compare and match up these inputs and expectations. The memory-prediction framework means that the brain does not have to consider every option at every level of the process because it uses past sequences as a guide to predict likely future sequences.

"Memory-prediction framework posits that inputs coming from the bottom of the hierarchy to the top are analyzed and ranked in a hierarchy of recognition."

The further up the framework, the longer the past sequences are and consequently the fewer options there are to finish them so the process actually accelerates as it nears the end. For example in looking at a scene, the brain first recognizes lines, then shapes and colors and finally recognizes them as objects. At the same time in the same framework, predictions about what to expect from these objects flows down to speed up our interpretation of the scene.

The framework changes as we age because we add new memories to the system. Since we start with none, as babies we truly see things for the first time. But as we age, we collect memories and this bank of expectations about the way things are and the way things work. This helps us to understand the world around us and to process external information and stimuli more rapidly, but it helps explains how different people can interpret the same situation differently because they bring different memory structures to the experience.

The Pioneer of the Memory-prediction framework theory

Jeff Hawkins originally trained as an electrical engineer and perhaps this gives us a bit of insight on how he approached the problems of brain theory and discovered the memory prediction framework theory. His theory is one of the brain as an organ capable of future predicting and error correction. The brain predicts future events by relying on past data.

"His theory is one of the brain as an organ capable of future predicting and error correction."

The system is a hierarchy so the steps of the analysis are performed in order and if the current even deviates from past experience at any level then a new string of events, or memory, is created. This string can then be used in the analysis of future situations. In this way, the system itself learns and evolves.

It continuously grows more complex and better at making predictions. Just as the theory describes a brain that is constantly adding details and sequences of understanding, the theory itself needs to grow and be fleshed out with details before it will be fully accepted.

Collaborative filtering

Posted by William On September - 2 - 2009

With the huge volume of data now available, being able to accurately predict what kinds of information your users want has become mandatory if you want to keep your audience or users.
 
Collaborative Filtering How ToCollaborative Filtering How To Collaborative filtering is a tool that allows for the combination of user input and data sources to predict what your user will need, like or be interested in. It is most useful when dealing with large data sets and pools of users. So far it has been used for mineral exploration, environmental data collection, financial data, commerce and even social networking sites.
 
Collaborative filtering makes automatic predictions about what users will be interested in. It accomplishes this by looking at the past interest of a large pool of users and looking for correlations.

It then assumes that users who liked the same thing in the past will also like the same things in the future. That way the system can use other users preferences to predict the preferences of future users.

This direct connection between similar users is much more accurate and useful than the averages that other systems use. An average tells you what the most common choice is but not what any individual might want. The key to the whole system of collaborative filtering takes two steps. The first step is to find users that share ratings system patterns from past decisions. The second step is to use those shared ratings to predict future ratings for an individual user. The more accurate the results of the first step, the better the results will be from step two.

Collaborative filtering can be used with older information if the information can be sorted correctly. The use of collaborative filtering makes the same information much more valuable. The first company to make use of collaborative filtering was Xerox. They used the system to locate documents using comments from other users. The system had some problems because it only worked if the specific keywords were exact matches. As the system was perfected, it was used with greater success by MIT, Microsoft and Firefly.

"This direct connection between similar users is much more accurate and useful than the averages that other systems use."

A new method of collaborative filtering called active filtering has been developed in recent years and is increasing in popularity. Active filtering uses a peer to peer filtering system that makes the internet much more accurate than before. Instead of just measuring and recording user action it allows users to rate items and publish it on the web for everyone to see.

These ratings can then be used to predict the preferences of future users.It can rule out totally irrelevant search results by comparing them to the highest rated results of other users with similar interests.

There are some potential problems with collaborative filtering due to the fact that it's not a completely passive system. It needs the input of users instead of just passively harvesting information. Another potential problem arises when you're dealing with smaller sample sizes. A few very biased reviews could skew the entire rating system. The future of collaborative filtering will certainly include safeguards that will eliminate these problems because its benefits too great for companies to not want to take advantage of it.

"There are some potential problems with collaborative filtering due to the fact that it's not a completely passive system."

One company that uses collaborative filtering successfully is Netflix, the online DVD movie rental company. Customers pay a monthly subscription to Netflix which allows them rent as many movies as they want each month. This means that customers are constantly visiting the site to look up new movies. Netflix has a star rating system that allows users to rate how well they liked the movies they've already seen. Netflix then uses collaborative filtering to make recommendations on other films they might like.

It does this by comparing their past preferences to that of other users and then finding others with similarly rated movies. It then looks for other highly ranked movies by those users and then recommends them to the primary user. Netflix also shows the average star rating for all users for a particular film, but also shows a predicted rating for an individual using the same collaborative filtering technique.

The collaborative filtering method works well for Netflix for several reasons. First of all, they have a captive audience who is constantly returning to the site and on whom they have collected a considerable amount of data. Second, the users have a clear benefit from participating in the collaborative filtering since it generates recommendations for them that lead to a better movie watching experience. Perhaps most importantly, the system works because Netflix makes it so easy for customers to use. One click of the mouse is all it takes to rate a film.

About Me

I am a computer programmer that loves technology, gadgets, making & learning new stuff. I love to read & basically to figure crap out.

Twitter

    Photos

    BrainNuronFormulaBulbBulbsBeachComputerBrainCollaborative-filtering-and-AIBinaryOrangeBinaryBlueBrainNetworkBinaryBlueBrainBinaryFunnel