M-5 (download
demo)
Train and Run Neural Networks on your Palm!
..........................
Simulated Neural Networks can outperform traditional computers at some tasks! M-5 uses the classic Feed Forward Back Propagation algorithm to adjust connection strengths (weights). It uses floating point math to provide results equivalent to or surpassing those of desktop systems costing hundreds of dollars. It can have up to eight variables on the Input layer, has three neurons in the Hidden layer and an Output neuron.
M-5 uses four Memo files . The NNtrain file contains the data to train the Neural Net.
Use the Palm 'Memo Pad' to create the files. The first line of the training file should be 'NNtrain'. The next eight lines contain the eight parameters that the data values represent. The 10th line should be a value from .1 to 1, this is the learning rate for the net (typically .5). Line *11 is the desired number of iterations through the data set. Line 12 describes the Output value, this text will appear on the screen label when running.
If you have the registered version, any number smaller than 3 in line 11 will be considered the training tolerance and sets M-5 to Automatic Training mode. It will continue to train until all Net Outputs are within that tolerance of the Desired Outputs.
Following the output value (9=Cherry 5=Apple 0=Banana in the example) enter the training facts using a scale of 0 to 9 (the network uses values from 0 to 1 but for easier data entry we have scaled the inputs and output), one set of Inputs plus the desired Output per line. In the example above, the second line (90090979 9) represents one set of data for a desired output of Cherry (9).
Round=9 Oblong=0 Yellow=0 Red=9 Large=0 Small=9 Soft=7 Juicy=9 Desired output=9
The NNtrain file can contain any number of training facts.
The NNrun file follows the same format as the NNtrain file. It is used to present data to the Neural Net after it has been trained.
The data sets do not contain a 'desired output' value so you can have some text following the 8 digits to identify the data ("...sample" in the example). M-5 will run the data through the trained net and produce the output file NNout.
The NNrun file can contain up to 500 input data sets.
M-5 saves the Weight matrix to the NNweights file during training and loads this file again (if it exists) each time it is launched.
Once you have the NNtrain memo, launch M-5.
If you have the registered version, tap the M-5 logo to display graphics while training.
Tap 'Train' to begin training the Neural Net.
M-5 will run your training data through the Net the desired number of times adjusting the weight matrix values.
Hold the up or down button to break out of the training. It will save the current weights so you can resume training later.
If you have prepared a NNrun file you can tap 'Run' to see how well the net is trained. When you 'Run' the net it will update the NNout memo file. Typically it will take hundreds of iterations through the data before the net begins producing good results.
NNout file produced by 'Run'
Neural Net example:
A lender might use a Neural Net to prescreen applicants, they would use client history to train the Net.
First determine the relevant parameters and scale them for inputs (0 through 9).
1. Age divided by 10 would produce 2 through 9 for the first input.
2. Marital status could be entered as married=9 single=5 divorced=0.
3. Education, years minus 6 would cover 6th grade to 3 years college.
4. Income divided by 10000=0 to 9.
5.. Residence could be 9=own 5=lease 0=other.
6. Debt to income could be scaled from 9=good to 0=bad.
7. Years on job (0 through 9).
8. Sex, 9=female 0=male.
Here's how the NNtrain file would look after entering training facts from past clients...
The NNtrain file could typically contain hundreds of training facts.
The NNrun file would contain the data on applicants for the net to evaluate after it is trained.
After training, running the Net would produce an NNout file similar to this...
The lender would then use this information to eliminate bad prospects and to set interest rates.
With a little imagination there are a variety of 'real world' applications for Neural Nets!
United States Patent 4,970,819 Mayhak. November 20, 1990 ---------------------------------------------------------------
Firearm safety system and method.
Abstract: Actuation of the firing mechanism of a firearm is prevented until grip pattern sensing means on the handgrip of the firearm supply to a microprocessor signals corresponding to a grip pattern stored in a programmed simulated neural network memory. All of these components are contained within the firearm. Programming of the neural network memory is accomplished by using a host computer with a simulated neural network to train that network to recognize a particular grip pattern using grip pattern signals generated by the grip pattern sensing means as the sensing means is repeatedly gripped for the person for whom the firearm is to be programmed. -------------------------------------------------
Inventors: Mayhak; Gary D. (Scottsdale, AZ) Assignee: V/GER, Inc. (Scottsdale, AZ) Appl. No.: 411636 Filed: September 25, 1989 Current U.S. Class: 42/70.01; D22/104 Intern'l Class: F41A 017/06 Field of Search: 42/70.01,70.11
What are Neural Nets? Look here...
http://blizzard.gis.uiuc.edu/htmldocs/Neural/neural.html
http://www.dacs.dtic.mil/techs/neural/neural3.html
http://www.enee.umd.edu/medlab/neural/nn1.html
Gary Mayhak / Tech Center Labs / http://www.talestuff.com/
last updated 10-09-02