This is the final project for an undergraduate neural networks course. A program was written in java for a FFNN to control each car. Inputs for the network came from the distance the midpoint of the car was to the walls at +45, 0, and -45 degrees from the direction of travel. Outputs were normalized linear and angular velocities, and they were calculated 25 times per second. There was one hidden layer.
Weights for the network were initialized to be random. A genetic algorithm was used to update the weights for each iteration. The fitness was determined by proximity to the end of the 'track'.
This video shows one of the quickest observed convergences. Most attempts took about ten iterations before a majority of cars reached the end.
@SlavaVB I didn't use thresholds for activations. I believe I used hyperbolic tangent for everything, and multiplied the output layer's two neurons' output values by some maximum for linear and angular velocity.
SheepleAlarmClock 1 year ago
Did you also generate random neuron thresholds? Or just the weights?
SlavaVB 1 year ago