I actually developed a software suite for creating apps using a single layer RAM network, like a virtual implementation of a WISARD.
RAM networks are a kind of neural network that is implemented with lookup tables, making them really simple to train and execute. The WISARD was the first commercially available neural network device. Here is some info about it:
elen
.ucl
.ac
.be
/Proceedings
/esann
/esannpdf
/es2016-63.pdf
(Sorry, but my karma is to low to link to the page normally, just select that paragraph and paste it into a new tab and it will automatically remove new lines)
I'll see if I could upload the programs and get a link to it.
The suite lets you train a single discriminator at a time; a discriminator can recognize one feature or simple data pattern.
One discriminator's information can be stored in a single matrix, which can be backed-up in another variable, allowing you to clear it, and train another discriminator.
I wrote one test program that used this software suite to recognize a digit from a 3x5 pixel monochrome image, input as a binary list of length 15. I simply trained a discriminator for each digit, then recalled the contents of the discriminator into a program. I did this for all 10 digits. The resulting program would load a discriminator into the proper matrix var, the discriminator would output how likely that the input was the number that the discriminator was trained to recognize, and then the program would record this and move on to the next discriminator. It did this for all 10 discriminators, and output the number that corresponded to the discriminator that gave the highest score. This was literally a virtual implementation of the WISARD in TI-BASIC, but it couldn't process in parallel like the original hardware device, naturally, so it simply runs the discriminators in series.