Binary Classification

Upon exposure to deep learning algorithms, it seemed to us that the “period of eligibility” formulation would inherently provide a mechanism of binary classification and this program was created to test that hypothesis. Using slightly modified MNIST numbers data we demonstrated successful classification but nowhere near the accuracy of that obtained by deep learning programs. The fact that the “just before” formulation was sufficient to train our artificial neurons to recognize abstract patterns may be of possible biological interest however a direct animal learning analogue is not known to us.

Program Description

The program simulates 10 neurons, each with 785 synapses, the dimension of the data vector representing the digits O through 9 in the MNIST numbers database with the first digit of the vector designating the digit image being represented. We digitized the image data thereby creating a “black and white” image rather than the greyscale image the database provides so as to make our initial task easier to visualize and code. The execution was straightforward: First a training procedure where we present a sequence of 10 stimuli to the “brain”, fire the neuron corresponding to the digit that was sent and then have any neurons that fire learn in accordance with the usual “just” before condition. Between one set of training trials and the next an element of decay is applied. The process is then repeated as often as desired.

At the end of the training cycle the matrix/neural net is subjected to a testing process and the AUC is calculated.

Unique Details of This Program

The increase in synaptic efficacy produced by learning is a constant rather than a function of the difference between the present value and a final maximum value. The same is true for the decay in synaptic efficacy increase. This was done to simplify coding. Whether modification of these particular parameters or trying other functions improves or diminishes accuracy has not been tested.

The Neural Network

The network consists of 10 neurons with no interconnections whatsoever, each of which has 748 synapses with an initial value of 1.

The Matrix Representation

Given the above neural network, the matrix representing it is a 10 by 749 matrix. The first column contains the numbers 0 to 9 which designate the neuron which will be fired when a vector representing an image of that digit is presented. The rest of the matrix is filled with ones per above.

The Code:

https://github.com/Ondaweb/CLASSIFIER