Well you write something about this bot?

Fragment of a discussion from Talk:DeepThought
Jump to navigation Jump to search

Yes, DeepThought is my test bot. It is almost identical to Firestarter, with the same movement and energy management, but with a different gun. I was doing some experiments with different learning algorithms. KNN is used by most top bots now, but who knows, maybe it is not the best algorithm? :)

First, I tried Decision Trees and Random Forests. Random Forests are a very good tool for many machine learning tasks and they often perform better than KNN. The problem is that they are computationally expensive, and I wasn't able to implement them well without skipping too many turns.

Next, I tried Deep Learning, which also takes a lot of computational power. DeepThought had two hidden layers initially but I had to reduce it to one hidden layer. It is still a bit slow now and it skips turns sometimes. It is nice to see that it got into the top 10. Now I can say that DeepThought is the strongest deep learning bot :) but actually the gun isn't very good and the strength comes from Firestarter's movement and energy management. That's why I didn't plan to write anything about this bot, and I will probably retire him or replace the deep learning with an other algorithm.

I am still amazed how Gaff has such a strong neural network gun (#1 in Targeting Challenge 2K7/Fast Learning Results). With a better movement, it could be the best bot.

Cb (talk)13:55, 26 October 2017

What type of input do you use for gun? Pre-processing is helpful. I also recommend you to use a perceptron. It doesn't create much difference but much faster. You can use non-linear functions to make a perceptron create a non-linear function f.e. x^2 + y^2. Also congratulations!

Dsekercioglu (talk)15:10, 26 October 2017

Thanks for the suggestion with the perceptron! I read Gaff also uses multiple perceptrons. I will look into it.

I use regular gun attributes such as velocity, acceleration, distance, time since deceleration, distance-last-10, current guess factor etc., all re-scaled to be between 0 and 1.

Cb (talk)17:04, 26 October 2017
 

Is Gaff using perceptions? I remembered that he uses traditional neural networks without hidden layers. But I’m not sure anyway.

Xor (talk)17:13, 26 October 2017

As long as I can remember he uses a simple MLP with no hidden layers + radial basis function.

Rsalesc (talk)17:27, 26 October 2017
 

Yeah, in Gaff/Targeting it says "Each network network is a simple multi-layer perceptron network. There are no hidden layers since I found that they only slowed down learning without adding any significant improvement."

Cb (talk)17:38, 26 October 2017
 
 

Thanks for sharing! I also think that there should be potentially better algorithms, and the deep neural networks indeed deserves more attention ;) Pris is the successor of Gaff with better movement, but since its movement uses neural networks as well, where not so much exploration were done before, its rank may be limited by the movement as well. I'm looking forward now to see that DeepThought be the best bot with neural networks! (Or after it is integrated into Firestarter ;) )

Xor (talk)15:32, 26 October 2017
 

Btw, IMO even without a templated bot page, some version history would be good for both bot writers and others ;) I always look into the version history of my own bots to find out the exact difference of each different settings, and give some features another try some point later. Those who look into my version history also have a better understanding of my bot and report bugs or give some suggestions to me, which also helped me a lot ;p Credits would first give to Dsekercioglu who catched several bugs in my bot. And with version history even a test bots got some long term planning — that's why I create verbose version history even for my test bots, e.g. SimpleBot & SimpleGF.

Xor (talk)15:50, 26 October 2017

I agree, reading version history is great :) I will add it in case I continue developing DeepThought.

Cb (talk)17:06, 26 October 2017