Skip to content

lantunes/synaptic-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Synaptic Matrix

This project is a Java implementation of a synaptic matrix. To learn more about the synaptic matrix, see the project page for the Python implementation.

The synaptic matrix implemented in this project consists of the following API:

/**
 * The inputExample must be an array containing only 0s and 1s.
 */
void train(int[] inputExample, int classCell);

/**
 * The input must be an array containing only 0s and 1s.
 */
int[] evaluate(int[] input);

The int classCell in the train() method above represents the label corresponding to the example given by int[] inputExample.

The synaptic matrix is implemented in the SupervisedSynapticMatrix class. The following example demonstrates how it is created:

SupervisedSynapticMatrix matrix = new SupervisedSynapticMatrix(784, new SynapticConfig(1, 15, 4200));

The first constructor argument, in this case 784, represents the length of the input vector. The second constructor argument, the SynapticConfig, contains the synaptic matrix's hyperparameters. These are denoted by the variables b, c, and k. These are constants used while updating the weights of synapses. For more information about these constants, see Chapter 3 of Arnold Trehub's book The Cognitive Brain.

This project constitutes largely speculative, experimental, and exploratory work. As such, it is not meant to be used as a formal library. Nevertheless, feel free to use the code for your own purposes. If you do, let me know how you've used it and what results you obtained.

NOTE: The MNIST utility classes in this project were lifted from the https://github.com/sina-masoud-ansari/MNIST repo, with the exception of MNISTViewer.

About

A synaptic matrix based on the work of Arnold Trehub

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages