Watch the AI learn how to maximize its skill. Look inside to see how the network is mapped! PLEASE READ NOTES! USE TURBO MODE! Version History: v1.0.0 - Successfully training pong v1.0.1 - Added Rally Length Average Grapher v1.0.2 - User input for number of training samples v1.0.3 - Inconceivable Bug Extermination v1.1.0- SUPERIOR TRAINING METHOD IS BEING USED! Paddle is smaller to test better training AND new method for fitness score calculation v1.15.0 - Shoot the Paddle To Make It Dumb! (Untrain it a little) v1.15.1 - Shooter Removed. Go In project to reattach it v1.2.0 - AI NOW DODGES BALLS WHILE PLAYING!
Neural Network Circle Pong Made Using: The network takes x random training samples (I recommend about 100), then calculates x corresponding "fitness scores" for each random sample. The higher the fitness score, the more likely the network will incorporate its values into the final data set. (The AI will begin to improve after these 100,000 (or whatever you choose) random games in plays.) The fitness score is affected by 3 factors, the rally length of that game, the total degrees the ring spun in that round, and the average velocity from each time the ball hit the ring. The fitness score easily accounts for whether or not the data was useful, and is highest when the ring approached slowly, did not spin around like a maniac waiting for the ball, and had a long rally length. These are the reward factors and are the factors by which the network is trained to improve. Then, it uses a "Chromosomal Crossover" like technique, where a percentage is generated from each fitness score, and that percentage is incorporated into the data to use some amount of the better random data and less of the worser. Finally, this process generated a final data set which it performs backwards propagation on for the rest of the infinite program. The learning rate I used was 0.05