VALIS (Vote Allocating Artificial Immune System) is a classification algorithm inspired by the immune system. Antigens correspond to data samples, and the immune response corresponds to classification. VALIS consists of multiple antibodies that bind to the antigens depending on the affinity measure. As the name implies, classification is performed by voting: each bound antibody votes for its class.

Test of VALIS on a toy problem

Test of VALIS on a toy problem. From left to right: classification results at three training stages and the true class distribution (video).

The system was tested on a character recognition problem. Training data consisted of randomly scaled (x0.9 .. x1.1) and rotated (±15°) numerals from 0 to 9. Classification accuracy of 99% was achieved with 300 antibodies. VALIS successfully performed generalization of the same characters with different scales and rotations. The system can be considered to be a kind of distributed memory. Classification is performed collectively, so there is a significant degree of robustness to antibody deletion. After 80% of the antibodies were deleted at random, classification accuracy dropped only slightly to 96%.

In another experiment, the system was trained to distinguish between 6 different programming languages given a piece of source code. 96% classification accuracy was achieved. Examples of antibodies corresponding to different languages:

Assembler@, mov, lf
Basic$
Cfp, {#13, }, <, \n
Fortran#10c
Lisp;;, ), ))#13
Pascalen, in#13, :=

Presentation: English / Russian

Project status: Research: incomplete | Implementation: prototype | Tech report: Russian

My research was never funded. You can support the development of VALIS at my Patreon page.