Human Visual System Neural Network

Since the beginning of time people have been interested in finding out how the brain works, and this project deals with line and edge detectors of the human visual system. This project will use neural network software developed by your customer. You may also use a package found on the Internet or on CDs included with textbooks.

Neural Networks (NNs) are machine learning programs based on neuron-like building blocks similar to the neurons in the human brain. Most of the research and applications of neural networks involves feed-forward networks trained by the back-propagation algorithm. These NNs usually undergo a training phase by feeding it a set of inputs with known outcome, and then back-propagating the known results to adjust the weights among the neural elements. After many iterations of training (called epochs), the NN is able to detect subtle patterns in large data sets and make predictions based on what it has learned through past observations. See An introduction to neural networks and Neural Network FAQ.

The design of most NNs, however, does not correspond with our knowledge of the human brain. We will investigate neural networks that simulate line and edge detectors known to exist in the human visual cortex. The main objective of the experiments is to demonstrate good visual pattern recognition using pre-wired line and edge detectors similar to those of the human visual cortex. Specifically, it is anticipated that the pattern recognition accuracy of a neural network system using such detectors in the early layers will be superior to one using adjustable weights directly from the retina or to one using randomly connected neural elements in the early layers the system. Some programming will be required on this project.


This is a continuation of a previous project, see Project 1 at IT691 Fall 2009 Projects and the associated Research Day 2010 paper entitled Human Visual System Neural Network (slides).

Your first task is to repeat the experiments of the previous project by using a different neural network package, either the one from your customer or another.

Your second task is to extend, as time permits, the future-work experiments described in the Research Day paper.

Fast Agile XP Deliverables

We will use the agile methodology, particularly Extreme Programming (XP) which involves small releases and fast turnarounds in roughly two-week iterations. Many of these deliverables can be done in parallel by different members or subsets of the team. The following is the current list of deliverables (ordered by the date initiated, deliverable modifications marked in red, initiated date marked in bold red if programming involved, completion date and related comments marked in green, pseudo-code marked in blue):
  1. 9/30 (should complete this item in about one week) . Become familiar with Robb Zucker's neural network package and possibly find another that we could purchase for under $300.
  2. 9/30 (can be done in parallel with above item) . For training, generate 40 random non-identical retinal images for each of the 6 characters for a total of 240 (40*6) input patterns. For testing, generate similarly another 240 input patterns. Store these bit patterns for later use. You might be able to obtain these bit patterns from last year's team leader Stanley Alphonso.
  3. 9/30 (do after preceding item) . Design the paper's Experiment 1 system in the NN package first using 10 hidden-layer units (the most achieved last year). Use the 240 training 400-bit retinal images to train the system, initially training 50 epochs. Determine accuracy (percent correct) on the 240 training patterns and on the 240 test patterns. Determine accuracies on the training and test sets after training for 100, 200, 400, 800, and 1600 epochs. Then repeat the above with more hidden-layer units until you reach 50 hidden-layer units.