Human Visual System - Neural Nets

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 investigate neural network software for which there are packages available. Your task here is to try several free/shareware packages, choose one for experimentation, and then conduct the following experiments. Packages can be found, for example, on the internet or on CDs included with textbooks.

Most of the research and applications of neural networks involves feed-forward networks trained by the back-propagation algorithm, and the design of the networks does not correspond with our knowledge of the human brain. The experiments below attempt to design neural networks that simulate, at least to a reasonable extent, important aspects of the human visual system. Some programming will be required but not much if you can interface with an appropriate neural network package. This team will explore the available neural network software and conduct the following experiments:

Experiment 1

Your initial experiment (just to test the neural-network software packages) is to show that a two-layer feed-forward Perceptron network (one input-unit layer, one output-unit layer, and one set of trainable weights between them) is not sufficient to separate the exclusive OR function, separating (0, 1) and (1, 0) from (0, 0) and (1, 1). This neural network has two binary input units and one output unit that is trained to be positive for (0, 1) and (1, 0) and negative for (0, 0) and (1, 1), see Figure 1A. Then show that a three-layer network (add a hidden layer of, say, two units between the input and output layer) that has two sets of adjustable weights easily solves this problem, see Figure 1B. Figures

Experiment 2

Your first interesting experiment is to create a simple three-layer-Perceptron model (input, hidden, and output layers) of the visual system as follows (see Figure 2):

Experiment 3

This experiment incorporates Hubel/Wiesel-like cells into the model. This experiment should be completed by the halfway point of the semester and the results presented at our second in-class meeting. This model is as follows (see Figure 3):

Experiment 4

Elaborate on the previous experiment by doing as much of the following as time permits:

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, deliverable date marked in bold red if programming involved, completion date and related comments marked in green, pseudo-code marked in blue):
  1. 9/24 (should complete this item in one or at most two weeks). Find an appropriate neural network package and complete experiment 1.
  2. -