After training it overnight it was able to solve the game in an average of 35 attempts, however as I cut it off after 50 I reckon the actual attempts would be much higher. Due to this lack of performance, I have decided to try and improve the fitness function so that it trains more effectively. I spent many hours trying to modify the fitness function and test it hoping that it would lead to a better solve rate but so far I am without success. It would keep repeatedly guessing the same number so I added a penalty if it guesses the same number as the round before. It would then alternate between guessing two numbers, so I tried to increase the reward if it got a correct solve. After those changes and a few other experiments, I was still unable to get it to train properly and seems to still perform poorly with the new fitness function after 1000 generations of training. The graph below shows the fitness of the best model per generation, and you can see quick initial improvement before it stagnates for the rest of the training time. I am considering changing the output from being a number between 1 and 1000 to being a number within the high/low range, where 0 represents the current low and 1 represents the current high, and hopefully after training it would learn to guess around 0.5 each time. Another strategy I could implement would be to give the network more information, such as guesses from even more rounds, round number, or width of the search interval and maybe increase the number of hidden layers and/or neurons in those hidden layers.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.