Advanced System - PNN - Spiral

Top  Previous  Next

 

Problem

This problem, SPIRAL, solves the famous problem proposed by  Alexis P. Wieland.  The problem is famous because it is one that is very difficult for a neural network to solve since it is extremely nonlinear. The idea is to determine which of two intersecting spirals a given point lies on.

 

Inputs and Outputs

The network inputs are the X and Y coordinates in the plane of a point on one of the two spirals.  There are two network outputs, one for each spiral, a 0 or 1, where 1 means the point is on the associated spiral, and a 0 means it is not.  You can see these intersecting spirals if you do a scatter plot of the two inputs x and y using NeuroShell 2 graphics.

 

Processing

Lang and Witbrock of Carnegie Mellon University solved this problem with Backpropagation, but with great difficulty. They used a five layer back propagation network with "jump" connections, i.e., each layer has links (fully connected neurons) to every previous layer.  They also used very small learning rate, large momentum, and both were incremented as learning progressed.

 

However, it is far better to solve this problem with Probabilistic Neural Networks, because PNN does a much better job of finding local pattern characteristics, especially in non-noisy data.  Backprop works better on global characteristics than local ones.  PNN solves this problem very fast as usual.  All that is needed is a fairly small smoothing factor.  We used .01.

 

The problem is already learned, so all you have to do is apply the network to the pattern file, then attach the .OUT file to the .PAT file to make a new .OUT file.  You can then print the .OUT file to compare answers.