This is a Visual Basic program that learns to recognize handwritten digits from 0 to 9. The input is a list of 5607 labelled handwritten digits stored in the "Hand Drawn Digits 8x8.txt" file. The pixel intensity values in the file range from 0 for white to 16 for black.
Perceptra converts the pixel values into sensor readings and finds the edges using the center surround perceptive field edge detection technique. This technique is used by the human eye.
Perceptra starts with no shape pattern binons (binary neurons). It is a deep learning supervised machine learning algorithm that is continuously learning. As it processes each image it creates new shape pattern binons or recognizes existing ones in the image. These are kept in an active binon tree. It then predicts the digit based on the shape patterns that have occurred in previously processed images. After it has made a prediction it then updates the found shape pattern binons with the actual digit label.
It counts repeating patterns and combines patterns at each level of complexity to create more complex shape patterns. This is a hierarchical and breadth first binon creation process.
Some of the rules used in the pattern recognition algorithm include:
- Two source shape pattern binons can only be combined if both have become familiar as a result of being experienced in a previous image.
- Shape patterns that are adjacent, repeat and are the same size are counted.
- A pattern can be combined with an adjacent pattern if one or both of them are repeaters, count > 1.
- When two source pattern binons are combined adjacently the value in the target binon is based on the ratio of the repeat counts of the two source binons.
- A pattern can be combined with an overlapping pattern if they both have a count = 1 and they share a common sub-pattern.
[ZIP file] Perceptra1D.zip - It contains
- Data file "Hand Drawn Digits 8x8.txt"
- Executable "Perceptra1D.exe"
[ZIP file] Perceptra1D source code.zip - It contains:
- Visual Basic form - MainDisplay.frm
- Visual Basic module - Main.bas
- Visual Basic project file - Perceptra1D.vbp