At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Articles » General » Beginner

How To Get Started with Artificial Intelligence

One of the most frequent questions I get asked by people is, "Where do I start?!". Indeed, where should AI beginners start? Simple - find a field in AI that takes your interest and read up on it. AI is so broad that trying to look into everything AI-related at once will bog even the most enthusiastic of people.

This essay will look at several areas of AI and try to highlight what is interesting and what is a little more pedestrian. The areas we will touch on are gaming, neural networks, genetic algorithms and evolutionary programming, robotics, and artificial life.

Gaming

Finally, after many years of amazing-graphics-no-gameplay games, games are appearing with top-notch graphics but also some very impressive artificial intelligence. The modern first-person shooters such as HalfLife, HalfLife: Opposing Forces, Unreal and Quake III: Revolution all demonstrates some very impressive AI. Other games such as Colin McRae Rally 2.0 are using modern AI techniques like neural networks to control the opponents within the game. This is definitely an interesting time to get into gaming AI.

So, where to start? This very much depends upon your skills as a programmer - if you're good you might be able to tackle a complete game yourself, or enjoy tweaking an existing game (such as one of the mod-able games like the Quake series). Either way, programming knowledge of a 'real' language is a must - most games are C/C++. Nevertheless, if you write the game from scratch, it can obviously be written in any language you want. For more details about where to start, look at How to Get Started with Gaming AI.

Good Points

The best part about gaming AI is that the effects are very visual and understandable. You are not presented with a list of numbers or a graph - what you program will have a direct effect on how you play the game. This can be very rewarding if time is spent tweaking the AI. It is also more fun that most AI programming for the same reason - program, play, tweak.

Bad Points

You need a game to go with it! Most gaming AI projects are never completed because it is incredibly hard to write some game-related AI without writing the game too. Modifying existing games can be incredibly daunting, and adding large changes can be double the work - writing the code then integrating into the game.

Neural Networks

The field of Artificial Neural networks looks at utilizing data structures that are designed to mimic neurons within the brain to perform data recognition and classification. They can be (and have been) used for a huge variety of tasks: predicting the stock market, extract image data from radar information, controlling cars, robots - you name it.

The neat thing about neural networks is that they learn. They are basically fancy mapping functions: they will map one group of vector inputs to another, but they learn how to do this mapping themselves, either through supervised or unsupervised learning. Start with neural networks is not easy since they are fairly theory-heavy, requiring a certain degree of algebraic understanding and even calculus if you really want to understand how the algorithms used are derived.

Generation5 has a series of essays that are geared towards slowly introducing neural networks: firstly by covering perceptrons (the simplest neural network), then detailing multilayer perceptrons and the back propagation algorithm. If you want to start with neural networks, be prepared for a lot of reading and programming since they are not easy to understand without "hands-on" experience.

Good Points

Neural networks are very useful in AI and can be applied everywhere. Creating a good neural network is also a very rewarding task. They can also be applied to areas such as sound and image processing or even robot controllers - making for more interesting research and results.

Bad Points

Neural networks are perhaps not the best place to start since they quite heavy - academically and algorithmically speaking. Most neural networks are very hard to program since there are no set architecture guidelines nor defined types of neural networks for certain problems. There are as many types of neural networks as there are problems!

Genetic Algorithms and Evolutionary Programming

GAs and evolutionary programming are very interesting fields, if the ideas of evolution and genetics appeal to you. People with background in biology will find evolutionary programming very stimulating, since it takes a lot of theory from biology/genetics/theoritical biology.

Genetic algorithms basically use the power of evolution and genetics to evolve solutions to a problem. Solutions to a problem are encoded as genotypes, which are then put into a population. Each genotype is tested for fitness and the best genotypes are then mated together to produce the next generation. This sequence is repeated until a solution or best-fit is discovered.

Genetic algorithms are a subset of a greater field: evolutionary programming. Evolutionary programming encompasses other biologically-inspired areas of computing such as genetic programming (evolution of actual algorithms to solve a problem). Evolutionary programming is often used in conjunction with other areas of AI such as neural networks. GAs are sometimes used to evolve neural network architectures or weights, or are used to fine-tune parameters in finite-state machines (in gaming).

Starting with genetic algorithms is relatively easy since the theory is understandable for anyone who took high-school biology. Take a look at the Generation5 essays for more information.

Good Points

Easy to start with since the basic theory is understandable to most and the programming is nothing too complex. Genetic algorithms are easily applicable to many problems, and are a good research topic for those interested. Biological phenomena like coevolution, genotype/phenotype relationship and elitism can be interesting to incorporate into your genetic algorithm and observe how it affects the performance.

Bad Points

A little boring to work with, most genetic algorithms punch out huge lists of numbers.

Robotics

A personal favourite, robotics is almost the best of both worlds since you get the "neat" factor of Artificial Intelligence coupled with the physicality of the robot - ie, it is something you can touch, build and interact with.

Commercial robotics is starting to take off. SONY started a big drive forward in the entertainment industry with the release of the Sony ERS-110/111 AIBO (pictured right). Now with the new AIBO ERS-210 and their upcoming SDR (Sony Dream Robot) bipedal robotic companion, it is easy to see that many households will soon have a little mechanical companion!

Robotics a good field to look at since it is scaled from the simplest programmable robot to ultra-complex research robots. If you want to start with robotics take a look at How to Get Started with Robotics.

Good Points

In my opinion, the most rewarding area: if you enjoy building something and watch it work, then being able to program it to do cool stuff - robotics is definitely for you! Robots are fun to play with, fun to program and can be both practical and entertaining. You can quite easily apply any of the other AI paradigms such as neural networks and genetic algorithms to the programming aspect.

Bad Points

Will require some form of electrical knowledge. This is both a good point and a bad point. If you have never soldered something before, but want to jump into some cool robots, then chances are you will be quite limited as to what you can achieve. If you take the time out to learn and understand the electrical theory behind the robots you are building this can be an invaluable asset later on. Robotics is also expensive compared to the other areas covered (which are pretty much free, given you can get free compilers for most languages).

Artificial Life

Artificial Life is a fast moving field that looks at simulating life within a computer. It can be life in the most exact sense (mimicking biological phenomena such as digestion and nervous systems) or, more commonly, consists of abstractions of life. A lot of a-life comes in the form of cellular automata. CA are normally organized on a 2D plane and are governed by some very simple rules, from these rules some incredibly complex behaviour can arise.

For example, Conway's Life, one of the first heavily studied cellular automata are governed by 2 simple rules. A cell cannot 'live' if there are more than three or less than two cells in the adjacent 8 cells and if the number of alive cells around a dead cell is exactly three, a new cell is born. Believe it or not, some incredibly complex behaviour arises - in fact, it has been proven that Conway's Life can be setup to act like a Turing Machine, making it theoritically capable of calculating anything that a modern-day computer can calculate!

The best advice for starting in ALife is to download some CA software such as MCell and experimenting. Then look at more advanced ALife experiments like TIERRA, before trying to program something yourself.

Good Points

Can be very interesting, since a lot of parallels between life abstractions and life itself can be found immediately. The effects can be very visual, especially when looking at things like Boids (flocking behaviour) or complex cellular automata. Relatively easy to program.

Bad Points

Not very applicable. ALife isn't the sort of thing you can just apply to a problem. ALife is more used for study and research.

Philosophy

Philosophy sneaks into any field if given the opportunity, but it is an intrinsic part of Artificial Intelligence. Questions such as "Can computers really think?", "Is simulated thinking real thinking?", "Should sentient computers have rights?", as well as more fundamental questions such as the mind/body problem all tie in very closely to AI. The philosophy of AI has been boosted recently due to several high-profile Hollywood movies (The Matrix, Artificial Intelligence). The Internet has hundreds of pages of information on various AI/Philosophy topics - try searching for people such as John Searle (The Chinese Room), Daniel Dennett and David Chalmers or concepts such as dualism and computational functionalism.

Good Points

If you love to sit and think, you can't get better than the philosophy of the mind. Philosophy can encompass other fields that you enjoy: linguistics, neuroscience, ethics and software design to simply name a few.

Bad Points

If you love to think, there are no bad points. Reading up on all the theory can be a little boring for some, especially given philosophers' notoriety as appalling authors!

Conclusion

This list is by no means exhaustive, there is: constraint-satisfaction programming, speech and image recognition, fuzzy logic, pattern recognition, data mining and many more areas. Read around sites like Generation5 to pick something that you will find interesting enough to read up on for a couple of weeks, experiment with different programming techniques and languages - AI is so broad that you are bound to find something interesting.


Generation5 Essays - Browse these for something interesting.
Generation5 Programs - Ditto.
Generation5 Links - If you can't find anything on Generation5...

Last Updated: 07/10/2002

Article content copyright © James Matthews, 2002.
 Article Toolbar
Print
BibTeX entry

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -