« first  « prev 

Jump to:


Artificial Immune Systems and Negative Selection

1. Conclusions


In this article a simple implementation of an artificial immune system has been presented. Two example problem areas have also been explored with promising results. Hopefully the article will provide a good starting point for Delphi developers who wish to use artificial immune systems in their applications.

Artificial immune systems are a relatively new area of artificial intelligence research which is extremely promising. A vast array of unexplored application areas exists, including many problem areas for which traditional AI techniques (neural networks, genetic algorithms, expert systems) were not appropriate. The main strength of the AIS is the fact that it is able to learn without any negative training examples. This lifts the burden placed on AI developers to include examples of every possible fault or anomaly which can occur in their system. Being able to train an anomaly detection system using only experience of what is "normal" is a huge advantage.

Some other advantages of artificial immune systems are:

  • Simple training algorithm: learning involves only the random generation of detectors and the application of the negative selection algorithm
  • "Self taught": no user intervention is required when creating the detector set
  • Simple matching rule: Once a detector set has been generated the detection of anomalies is very simple. This means that detection is also computationally inexpensive
  • Inherently distributed: Artificial immune systems are distributed by nature. The generation of the detector set and subsequent monitoring/ classification can be performed on different nodes of a distributed system with no modification to the architecture or computational overhead

Despite their many advantages, artificial immune systems are by no means perfect. As with all artificial intelligence techniques they have a number of drawbacks which can not be ignored:

  • Provability: Artificial immune systems draw their strength from randomness. The generation of the detector set is random and, therefore, it is impossible to prove that an AIS will be able to find every possible novelty or fault which may occur.
  • Parameter setup: A common problem with AI systems is that the setup of system parameters, such as the size of self and detector sets and the matching threshold, is based on guesswork by the developer.
  • No unified model: The architecture presented here is the most popular but my no means the only type of AIS. Many others exist, details of which can be found in literature. Until agreement is reached on exactly how an artificial immune system should work, there will always be the opportunity for misunderstanding amongst developers.

Though this article covers the basics of artificial immune systems, it barely scrapes the surface of this extremelycomplex field. We conclude with a small list of questions which are not answered here, in the hope that they willinspire more research:

  • How can we continually adapt our detector set to cope with changes in the system over time?
  • Are there better techniques for generating detectors?
  • Would a binary (or similar) encoding cut down the size of the detector set?
  • Can we adjust our detector set to become more sensitive to particular anomalies?
  • Do we need to compare new patterns to every detector?
  • What's the best method for distributing our AIS?

1.1. Acknowledgements


I would like to thank my employers JTL Systems Ltd for their continued support and for providing some of the data used in this article. Also, the UK Borland User Group at a meeting of which this article was first presented (February 2003).

1.2. Links and Resources


1.2.1. Downloads


Note that you download and use software and source code entirely at your own risk. No responsibility will be taken, by anyone, for any damage of any kind which may or may not be caused by the use of these files.

That said, please do feel free to download and use the software, I ask only that I am credited as the original author and that you e-mail me a brief outline of your project - simply for the sake of curiosity. Also, if you make amendments, alterations or upgrades to the code which you feel are beneficial, please send me a copy so I can update what is included in this article.

fridge.zip Fridge data sets
fridgedemo.zip All code for the fridge demo, including code for the AIS component set
FridgeDemo.exe The fridge demo program, ready to run - though you'll need the data files too!
linux.zip Linux data sets
linuxdemo.zip All code for the Linux demo, including code for the AIS component set (again!)
LinuxDemo.exe The Linux demo program (will work with any text file...)

1.2.2. Links


1.2.2.1. Logical Genetics Resources:


1.2.2.2. Artificial Immune Systems:


1.2.2.3. Delphi Stuff:

  • Model Maker The CASE tool I used to create the class hierarchy and diagrams in this article
  • DUnit A fantastic unit testing framework which allowed me to write the code for this article in a very short time

« first  « prev 

Jump to: