- data obtained from http://wiki.cs.brynmawr.edu/?page=TwoSpiralsProblem
- version on blackboard did not contain class identifiers
- according to the code in the original paper, this seems to be the correct format
- converted spaces to tabs
- processed with Pybrain (pybrain-classify.py)
- followed tutorial
- used two binary output neurons (
dataset._convertToOneOfMany(bounds=[0.,1.])
) - used ideas from Beherey et al.
- network layout: 2 hidden layers with 77 neurons each
- activation: tanh for hidden layers, linear for output
- RPROP as training algorithm, because it converges faster than back propagation
- reproduce by running pybrain-classify.py
- visualization of final result not available (plot stopped responding)
- training error achieved after 5000 epochs: 0.52% (1 misclassified)
- generated data set using algorithm in blackboard
- far denser spirals
- 1920 (10x as many) data points
- trained feed-forward net with same characteristics as in a) on new data
- 10 times as many data points leads to longer training times per epoch
- faster conversion
- smoother learning curve
- adapted spiral generation script to generate two additional spirals (rotated 90 degrees against original ones)
- trained feed-forward net with same characteristics as in a) (but 4 classes instead of only two) on new data
- due to time constraints canceled training after 2000 epochs
- up to this point promising: with enough time, the ANN should hopefully generalize
- as discussed in class, SVMs can be seen as a generalisation of neural networks
- with a good kernel, the spiral data can be transformed into a linearly separable form
- as suggested in the background reading paper, we used radial basis function kernels
- far lower training times than ANNs for the spiral task