Talk:DeepThought
- [View source↑]
- [History↑]
Contents
Thread title | Replies | Last modified |
---|---|---|
Well you write something about this bot? | 10 | 17:38, 26 October 2017 |
Just noticed that DeepThought ascended to top 10 and ranks 5th in survival, congratulations! And from debug graphics I see that it uses true surfing & bullet shadow + one gun. Anything more to say about that? I'm quite curious now ;)
It is a test bot I think. I saw three different DeepThoughts and first thing I thought was that it was using Neural Networks.
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.
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!
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.
Is Gaff using perceptions? I remembered that he uses traditional neural networks without hidden layers. But I’m not sure anyway.
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."
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 ;) )
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.