|< Day Day Up >|
This book has touched on only a few AI-based technologies (speech recognition, data mining, rule-based systems, agents). There are many other branches (see Table 9.3) that you may want to explore. This section discusses a few of them.
Fuzzy logic is a branch of AI that takes account of various "real-world" factors. It was created because not all algorithms are able to deal exclusively with 1's and 0's. Fuzzy logic is able to interpret a broader range of variables and their associated values, a very useful capability when the inputs are contradictory and might cause traditional algorithms to respond incorrectly. It was first introduced in the 1960s as a result of dealing with natural-language understanding.
Fuzzy logic is especially effective when dealing with input from digital sensors such as cameras and electrical sensors. As a result, the manufacturing industry has been one of the primary users of this technology so far. It is especially important for controlling machine temperatures and speed.
Robots receive their input from a variety of mechanical devices, and fuzzy logic can be helpful in controlling some of them. It has contributed to breakthroughs in handwriting and voice recognition where even humans have trouble.
Fuzzy logic comprises several different algorithms, and there are many theories about how exactly to approach this subject. Readers interested in learning more may want to check out www.fuzzy-logic.com. The Web site references an online book that presents fuzzy logic in a very understandable way.
The first AI games were variations of board games like checkers or chess. Now that so many hardware advances have been made and memory is cheap, the games industry has exploded. Games that claim to have "AI inside" are often the most sought after. They usually involve some sort of simulation. "Age of Empires" (see Figure 9.1), "Mindrover," and "Mission: Impossible" are all games of this kind. The games industry is hugely competitive, and games these days are as graphics-intensive as a Hollywood movie.
Figure 9.1. Screenshot of the scenario editor used in Microsoft's "Age of Empires," a strategy game that spans 10,000 years. This is just one of many games that AI technologies have made more life-like and appealing.
There are many commercially available SDK's that allow developers to quickly add AI functionality to their games. For instance, DirectIA (Direct Intelligent Adaptation) is a behavior simulation program designed by the MASA group (www.animaths.com). This company is based in Paris, and although its products are good, they are too expensive for game hobbyists. Another product that may be used to create games written in C++ is Spark (www.louderthanabomb.com). It is a fuzzy logic editor that features real-time graphical debugging. Although you may not consider games to be a business-oriented topic, game development is a huge industry. If you are interested in learning more about this AI branch, you can visit www.gameai.com.
Genetic programming, also known as evolutionary programming, seeks to utilize some of the same biological factors that drive human evolution. It uses variables that represent chromosomes, genes, and traits. This is not as scary as it first may seem to those who hated biology. Genetic programming can be very effective in systems that need to determine an optimal path. It is being used more frequently in industries that must solve complex scheduling issues.
In most cases, genetic programs involve the creation of several potential solutions that are evaluated to determine whether they are "fit." Programs deemed fit, according to some predefined function, will be used to "breed" a new group of potential solutions. The others will be eliminated. The evaluation process is continued until it is determined that no improvements can be made and only one optimal solution remains.
A growing number of researchers are becoming interested in genetic programming. This area can involve computer programs that create themselves. For more information, refer to www.genetic-programming.com.
Microsoft.NET is fully capable of producing an application based on genetic programming. MSDN Magazine published an article about genetic programming in August 2004. In the article, titled "Survival of the Fittest: Natural Selection with Windows Forms," Brian Connolly presents a program written with Microsoft C#.
Natural Language Processing
Natural language processing involves more than just recognizing what the user is saying; it involves understanding as well. Language understanding has long been a major hurdle for the AI industry. For years, products have featured speech-processing abilities that can interpret spoken text into commands or queries. The problem with most of these products is that they do not handle language variability very well.
The overall goal of natural language processing for users to communicate with their computers using "natural" language. Users should be able to speak to their computers much the same way we speak to one another and have the computer understand them.
This chapter features a recent startup company named Sonum Technologies that has developed a patent-pending natural language processor. The product holds much promise in the area of natural language processing.
Neural nets are designed to emulate the thing that all AI applications are trying to be like the brain. Borrowing from many years of cognitive research, neural nets attempt to simulate the activity of neurons, the basic building block of the brain. The human brain is known to contain hundreds of billions of these brain cells, and researchers suspect that the interaction between them is what forms thoughts.
At one time neural networks were seen as the solution to the question of AI. They soon fell out of favor, and many projects based on neural-network techniques were abandoned. In the last few years neural networks have begun to regain popularity. They are now seen as very useful in solving certain kinds of problems, such as pattern recognition. In fact, the next version of Analysis Services features a new algorithm based on neural-network processing.
Machine learning is the branch of AI that aims to enable software programs to learn from data or even from the results of previously executing on a dataset or set of conditions. This technology has been used in a wide range of applications and has enormous potential for enhanced applications.
Machine learning can be useful in areas like data mining and information retrieval. In fact, many machine-learning techniques were utilized in the making of the Microsoft Analysis Services software. Machine-learning techniques have been used, and will continue to be, in other Microsoft products including Speech Server.
Machine learning has also been used to enhance games by enabling them to learn from the users. A game that learns in this way is better able to recommend appropriate strategies to the user.
Generally, machine learning involves some sort of training process in which the program is notified when it makes a bad decision. It then must have the ability to adjust the way it makes decisions based on this input. Readers interested in learning more about the fundamentals of machine learning are encouraged to read "Data-mining: Practical Machine Learning Tools and Techniques with Java Implementations" by Ian H. Witten and Eibe Frank (http://www.cs.waikato.ac.nz/~ml/weka/book.html).
The field of robotics is perhaps the most visible and entertaining aspect of AI. Most people think of robotics when they hear the term AI, because it is hard for them to envision intelligence coming from something that is not humanlike. Honda recently began an intense marketing campaign to announce its advanced humanoid robot named ASIMO (see Figure 9.2).
Figure 9.2. ASIMO is an advanced humanoid robot that was sixteen years in the making. Developed by engineers at Honda Motors Corporation, ASIMO will become the basis for robots designed to assist the elderly or to replace humans in performing dangerous work.
The field of robotics is not concerned simply with the construction of these machines. It also involves the creation of software to guide their movements. This is the trickiest part, because so many skills are needed to navigate physical spaces. Most robots have great difficulty just moving through a room. There have been great advances in this area, and some of the most significant have come from MIT's research laboratory (see www.ai.mit.edu/projects/humanoid-robotics-group/cog/cog.html). It is there that the Cog project seeks to bring all areas of AI into one functional whole.
|< Day Day Up >|