Welcome!

Welcome to Alex Palmer's portfolio. Below you will find a small sample of projects he has worked on. For more information about Alex, as well as additional projects, please refer to his resume.

MNIST Digit Classifier

Artificial Neural Network trained on the MNIST training set. When tested on the MNIST test set the network had a 97.34% accuracy. It needs tuning as it is less accurate using digits from the canvas.

Upon hitting submit it sends the image as a XMLHttpRequest. This image is then scanned for black pixels, marking each pixel as viewed as they are checked. Upon finding a black pixel, a depth first search is run to find every connected black pixel. Note: this presents a problem with disconnected digits being read as separate. It then resizes these digits so their largest dimension is 20 pixels. Finally, it inverts the image to match the format of MNIST (white on black) and centers by weight on a 28x28 black background. It passes these images through a neural network and returns a string of each digit ordered by where their leftmost point is.

Todo:
  • Switch to a convolutional neural network
  • Train on multiple transformations of the MNIST set. My intuition is that rotations would have the greatest benefit since the MNIST set is consistently vertical whereas people often write with a slight slant.

Source    Working Example 


Conway's Game of Life

Conway's Game of Life written in JavaScript. All grid sizes have a width that is divisible by 32, allowing you to easily use one integer per 32 cell blocks. You can change the size, create your own configurations or select one of many pre-created ones. Under the grid with the samllest block size you can run an additional configuration: a spacefiller.

Working Example 


Basic Data Structures

Includes a basic and growing list of basic data structures. Currently only includes a doubly linked list, Trie and Binary Search Tree.

Source