Artificial Intelligence Technology Reviews

Written by Stéphane Richard (Mystikshadows)

INTRODUCTION:

Artificial Intelligence is still a fast growing science. Today, more and more applications of A.I. are created and there's just no telling what the future holds for it. No matter how you slice and dice it, Artificial intelligence has evolved greatly over the past 20 years or so. Today you can find highly specialized fields of A.I. that have very specific applications. This brought me to wring this article whihc aims at giving you the most widespread A.I. technologies with their descriptions along with some reference links for each of them so you can learn more about them and see where they might fit in your projects. Here is the list of technologies we will be covering in this article.

  • Knowledge Tree Architecture
  • Learning Machine Architecture
  • Process Of Elimination
  • Decision Making Engine
  • Expert Systems
  • Fuzzy Systems
  • Case Based Reasoning System
  • Support Vector Machines
  • Neural Networks
  • Bayesian Networks
  • Behavior Based Artificial Intelligence
  • Evolutionary Computation

As you'll see here, there's atleast one good purpose for each of these A.I. systems I'll describe here. These fields can be used in anything from games to real simulations to anything inbetween as well as domain specific applications. So have a read, you just might find something interesting here.

Knowledge Tree Architecture:

What It Is:

Knowledge Trees are, as the name says, more of a data structure than an actual A.I. Engine per se. However, when such a structure is devised and implemented, it makes it easy, with minimal code, to interrogate the knowledge in such a way to answer questions. The general idea behind this structure is that you go up the hierarchy to determine the knowledge element's classification and go down the hierarchy to determine a knowledge element's information contents. You can say that a knowledge tree and it's functionality is more of a search algorithm than an A.I. specific engine however if the tree is organized the right way, the responses you may get might surprise you.

One of the classic example if this type of organization is of course the Life classification tree (the Taxonomy chart) where plant, insect and animal life are grouped under their species groups in order to make the information about a specific lifeform easy to follow down the hierarchy towards the specific details of the given lifeform. With this type of structure you can easily know that a dog barks, has 4 legs, by going down the tree right down to a dog's specific information. Going up the tree will tell you such things that a dog is a canine which is a mammal, which is an animal lifeform, and so on and so forth. It's one of the oldest form of knowledge organization for the purposed of later retrieval of that information there is. It's also one of the best one when it comes to organizing a vast amount of knowledge.

Where you can learn more:

Learning Machine Architecture:

What It Is:

Another one of the classic A.I. fields. One of the first Learning Machines applications was a program that could "learn" to play chess and get better at it with every game it played by somehow saving moves and strategies that it tried that worked. Today, this field pushed itself quite forward where this knowledge can also be statistically and mathematically evaluated to determine the best possible moves based on the current position of the player's pieces and the location of the enemy pieces. Today, a real A.I. based Chess program is quite hard to beat as it can anticipate the player's actions alot more accurately.

Chess playing is not the only field where machine learning can be useful. This technique is still used in many simulation based projects to anticipate reactions to decisions/moves made by one of the elements of the equation. All in all, learning machines are problably the most widespread older A.I. engines you can find.

Where you can learn more:

Process Of Elimination:

What It Is:

This Technique is based on the classic detective Sherlock Holmes. Essentially you define a conclusion by defining all possible exceptions and alternatives and proving them wrong. Once all the of the alternatives have been proven wrong, the one and only remaining alternative therefore must absolutely be right. Of course, in such a system, the more alternatives you can prove wrong (hence enter in the system) the more valid you make the right alternative. Depending on the domain in which you elaborate the system, making sure all alternatives are present and accounted for can become tedious due to the amount of data you need to enter for the alternative.

One of the best system to use to implement this type of A.I. application is of course Prolog (also known today as Visual Prolog). Prolog is just the language to implement process of elimination systems of all types. Whether it's a very small system or a big complex one. Just keep in mind that this specific type of A.I. application can only be as accurate as the data it works with. The more complete dataset the more precise the conclusion the system will arrive at.

Where you can learn more:

Decision Making System:

What It Is:

We can define a decision making system as an application that can come to a decision, a choice between two or more alternatives (conclusions). The means by which the system can arrive at that decision is where the science lies in this type of A.I. application. The main idea behind decision making can be pushed all the way to actually making a decision. It seems however that Decision Support Systems are the most used types of decision making systems. Basically help the user arrive at his own conclusions based on what the support systems yields as results.

One of the most widespread of these tools is of course the "Monte Carlo Method". This method is often used in business when evaluating risks of failure of projects and/or investments strategies. But it doesn't stop there. Monte Carlo excels when the need to calculate results based on many variables (that are hard to calculate) are involved. For example, Integral calculations. But there are also other fields where the Monte Carlo Method can be applied. As you'll see when you take a look at the links below.

Where you can learn more:

Expert System:

What It Is:

Expert System is a class of A.I. that has been developed back in the 70s by researchers in artificial intelligence. This concept serves to simulate how an expert in a given field would act or react to a given situation that requires his expertise in the field. Contrary to popular beliefs, Expert Systems are not meant to replace the experts but rather work with the expert on a given situation. It's common practice that the expert be present to change and adapt the expert system depending on what new technologies and theories arise in his particular field of expertise.

Expert systems are used all over the place in car diagnostics, medical field, and so many other fields. Expert Systems are designed to work with a wide range of domain specific data in the field. As such, and because of the vast amount of related data needed by an Expert System, it's usability is usually restrained to a very specific area of expertise. If it wasn't, the amount of research, analysis, calculations and processing needed would become quickly overwhelming.

Where you can learn more:

Fuzzy Systems:

What It Is:

Fuzzy Systems (Fuzzy Logic itself) is a science that deals with uncertainty. It is designed to reason approximately rather than precisely. Fuzzy systems are probably the most wide spread of the A.I. systems yet it is also one of the most contraversial. For example, statisticians reject it because they claim that probability is the only sure means of defining uncertainty. Nonetheless, Fuzzy logic has it's share of userbase and so far has proven itself amongst all the uncertainty based domains.

Fuzzy logic is widely used to control household applications like a washing machine (to determine the load size and adjust the washing cycle accordingly) or even a refrigerator. The best area where fuzzy logic is used is in high-performance error correction to improve information reception over a limited-bandwidth communication link affected by data-corrupting noise. For example Two decoders may analyse the data in parallel, arriving at different results for the values intended by the sender. Each can then use as additional data the other's likelihood results, and repeats the process to improve the results until a consensus is reached as to the most likely values.

Where you can learn more:

Case Based Reasoning Systems:

What It Is:

Case Based Reasoning Systems are applications designed to solve situations and problems based on similar past problems. For example, a computer technical support that fixed a printer that won't print based on other printers that weren't printing that he fixed is using case based reasoning. There are many other fields that use case based reasoning as well. Anything that can be solved based on other solutions to the same kind of problem that worked before can be thought of as case based reasoning.

In essence, Cased Based Reasoning Systems is based on a four step analysis method. The first step is "Retrieve" which means that when a situation occurs the first thing to do is to recall any and all past experiences that was of a similar nature that pertain to the current situation. The second step is "Reuse" which means that if the past situations were solved using a given suggestion, they should be applied here first to see if they will solve the current situation as it did the past one. The third one is "Revise" which is apply the passed solution to the current situation to see if it worked or not. The last step is "Retain" which means when the solution has been applied (adjusted if needed) to the situation and it worked, save it as a new case to add to the arsenal of past experiences to work with.

Where you can learn more:

Support Vector Machines:

What It Is:

Support Vector Machines are defined as a set of related learning machine used mainly for classification and regression. A vector means that it works with a list of related elements or items that have to do with the give system to analyze. For example, sets of data that may need some form of classification before it can be processed in some way. SVMs are typically used in combination with other A.I. methods as their main purpose is to organize data (much like the knowledge Tree Architecture) but in lists of related classified items rather than a hierarchy or tree of items.

One of the fields that this method can be used for is GIS systems where perhaps longitudes and lattitudes may need to be geographically sorted out before one can apply any geographic based calculations or apply a dataset of elements over a specific geographical set of longitude and lattitudes. In that respect, there are of course many mathematical fields where such a technique can be applied for example to analyse the graph of a mathematical function or specific formula.

Where you can learn more:

Neural Networks:

What It Is:

This techniques was inspired entirely by the way neurons work in our brains. A Neural Network is nothing more than a much of neurons (nodes) interconnected to each other (exchanging information) in order to seamingly work as a group towards a final result. Each of these Units are so simple that their states are represented by a single numeric value. Each of the units generate their results based on their activation value. In the network, some of these units can weigh more than others (influence the outcome) and that influence is also represented by a numerical value. Needless to say that Neural networks since they start as very simple elements need to be trained into their application so to speak. Hence before a neural network can be used, it must be "educated" into what it is dealing with, how it will deal with it and what the output should be based on what they should do with these values.

One of the major fields of applications of neural networks is pattern recognition. For example, the ability to recognize a person in a photograph based on the evaluation of the distance between the eyes, the width of the mouth and nose, facial characteristics like scars (if any) and the likes. Needless to say that Finger Print recognition would be a good application of a neural network system. It's among the newest A.I. engines and more and more fields of application of neural networks are discovered as it's usages evolves and progresses.

Where you can learn more:

Bayesian Networks:

What It Is:

Bayesian Networks are best described as graphs. Calculated graphs that give you 2 types of information. The points (or nodes) on the graphs represents the variables themselves while the curves on those same graphs represent the dependance relations between the variables of the graph. Learning the structure of a graph, in the case of Bayesian Networks, is just as important as the data (nodes and curves) that were generated as it also describes the recipe, so to speak, that was used to generate the graph.

Bayesian Networks are used for modelling knowledge in such fields as gene regulatory networks, medicine, engineering, text analysis, image processing, data fusion, and decision support systems. with this wide range of applications, it goes without saying that like neural networks, a Bayesian networks need to be trained into it's field, however, the training principles differ from the list of numerical values needed by a neural network because numbers, formulas and rules can be used to train a Bayesian network.

Where you can learn more:

Behavior Based Artificial Intelligence:

What It Is:

This is a process by which a character (in a given seen) is predetermined to follow a specific set of rules as far as it's environment is concerned. The oldest of such example is the classic game of life where a dot lives as long as there isn't too many neighbours in which case it will die. But today things have evolved a whole lot in that field of Artificial Intelligence.

One of the best modern examples of this is a group of whales the travel from place to place, there is typically a leader in the group, if they detect a good enough concentration of plankton, they will dive to eat but if it's not a high enough concentration of food, they will typically just keep on travelling. The whole process involves setting things in regular motions and adding influencial parameters to the general formula. Needless to say that there are many domains where this technology can prove to be more than helpful and useful.

Where you can learn more:

Evolutionary Computation:

What It Is:

Evolutionary Computation is a rather brand new field, technically a subfield of Artificial Intelligence itself. This can't be eplained in once sentence alone because Evolutionary Computation is really a set of sub technologies that can all be used with the goal of achieving Evolutionary Computing. Evolutionary Computation can be recognized by a list of criteria. These are: Iterative progress, growth or development, population based, guided random search, parallel processing and they are often biologically inspired. In other words, they are often simulation of real world biological evaluation and organization that can be observed in biology.

As you can imagine, one of the main fields of application of evolutionary computation is life and ecosystem simulation. The classic game of live can be thought of as the first Evolutionary Computation experiment in a way. Where Behavior Based A.I. focus on the intelligence of animals and how they respond to their surrounding in a present context. Evolutionary computation can be thought of as as how an organizm, life form, human, anything else that can evolve, adapts to it's current environment if a need to adapt is present. Sure some of this can be implemented in behavior based A.I. But Evolutionary Computation is idea when simulating organisms and other lifeforms that actually need to genetically mutate in order to really adapt to their surroundings. As you can see, this ends up being a very different type of application all together althought some mutations are caused by a reaction to an organism's environment and direct surroundings.

Where you can learn more:

IN CONCLUSION:

There's no doubt that Artificial Intelligence is a very broad domain that has many fields of applications. It's also no doubt that each of these fields of applications ramify themselves into even more sub fields. It would take a very big book to really cover everything you need to know in the field of Artificial Intelligence. What I hope to have gained with this articile is that I have made you curious enough to persue your quest for knowledge in the A.I. Field. One of the main reason each A.I. technologies I described here includes links to even more information about the technology.

I'm always open to discussions and answering questions, exchanging A.I. experiences and Method of operations with anyone, so if you have a question, if you know of a specific application of one of the fields mentionned here that I haven't specified, be sure to email me (see my email below) and let me know about it. I'll be happy to modify this article to reflect this new found information. Until next time, happy coding and learning (if you choose to further study one of these fields).

MystikShadows
Stéphane Richard
mystikshadows@gmail.com