Neural Network Workshop

Neil D. Fraser

Introduction:

Neural Networks is a term that is used a lot in the field of computers. Like most trendy terms (such as fuzzy logic and object-oriented), few people actually know what it means. This workshop is designed to dispel the mystery that surrounds this programming technique.

In this workshop students will teach a neural network to recognize their own handwriting, understand the principles that make computer and biological neurons work, and construct their own network within the computer.

Resources:

The Neural Network workshop requires: The latest versions of both programs are available at: http://vv.carleton.ca/~neil/neural/

Format:

The 60-90 minute workshop was broken into 4 parts:

Theory:

First I'd get the students infront of a blackboard (away from the computers) and show them the fundamental properties of a neuron. One by one I'd have each student solve a single-neuron logic function (see the appendices).

Recog:

Once they knew how a simple neuron worked, they would experiment with the character recognition program. First the students would load the number recognition network and try it. When they had tried a couple of recognitions, they would start their own network and teach it to recognize the capital vowels (A, E, I, O & U). Faster students would also do 'Y'.

BrainBox:

[Schematic Having seen and used a functioning and useful application, they would switch to the BrainBox neural network construction program. First the students would load the random.bbx file in order to see what a running neural network looked like in th is program. Then they would begin construction of their own network. The challenge I gave was to construct a decimal to binary encoder. I showed them the pattern of 6 neurons and 8 links they needed, and told them to configure the weightings of the links so that no two input neurons produced the same pattern of outputs. After they had completed this, they were encouraged to try the other nets that were on disk and to experiment on their own.

Discussion:

About 10 minutes before the end of the workshop, we would gather in a circle and discuss the advantages and disadvantages of neural networks over conventional programming methods. I would always tell them the story of the tank recognition program.

Follow-up:

Anyone who wanted the software would be given a copy to take home with them.

Results:

I found this workshop to be immensely durable. It was easily adapted to fit the two junior weeks (children under 10) by removing BrainBox and concentrating on Recog. Over the course of the summer the student-instructor ratio oscillated between 1:1 to 6:1 without any problems. Over 90% of the students were able to successfully complete the decimal to binary converter challenge using BrainBox. Part of this workshop's success was due to the tendency for the more cerebral students to choose it (as opposed to, say, the viruses workshop [grin]).

The only problems we ran into were the occasional software bug. (How was I supposed know that a quadruple click of the right mousebutton on the boundary of an inactive neuron that was linked to itself would generate a terminal range error?) Each time a new bug was discovered I'd patch it for the next week. By the end of the summer the software was stable as a rock.

Recommendations:

All the recommendations I have are essentially upgrades that I should make to the software. These include:
  1. Create hyperlink-based help database for both programs. [Help done for Recog - Dec '97]
  2. Ability to load Recog networks into BrainBox and have them execute. [Done - Sep '98]
  3. Make changes to the threshold easier in BrainBox. [Improved - Dec '97]
  4. Construct a demo network that can play unbeatable tic-tac-toe. [Done - Sep '98]
  5. Add some form of learning capability to BrainBox.

Appendices:

Neil's Neural Networks page (http://vv.carleton.ca/~neil/neural/) contains links to the latest versions of everything required for this workshop.