User talk:Rednaxela/SaphireEdge
When you finish all components, how you merge it? Will you use crowd? » Nat | Talk » 08:44, 24 March 2009 (UTC)
With 'crowdtargeting' yes. While the AS series was superficially about anti-surfer performance, it's real goal was to tune/perfect my crowdtargeting technique which in the AS series combined the gun from the VCS series, with a fast rolling version and BulletHit fast rolling version. The idea is that how well it mixes will carry over when I mix in the NN series, and possible a DC-PIF later. --Rednaxela 08:57, 24 March 2009 (UTC)
If you have CT(NN, VCS-GF, VCS-AS, DC-PIF), it would result in really slow robot. I just understand 'crowdtargeting' (and 'crowd') 3 hours ago while reading RoughDC source :-) Hope SaphireSlippers will soon so we will see real Saphire. » Nat | Talk » 09:30, 24 March 2009 (UTC)
Well, somewhat slow, but not too bad. the VCS alone is reasonably fast, the NN alone i reasonably fast, DC-PIF is a litte slowish but not unreasonable. Haha, well the crowdtargeting in RougeDC is..... such a poor hack. Rather than actually learning the appropriate combination it's little better than fuzzy virtual-guns. What I have in SaphireEdge is grounded in some real theory and based upon the hebb rule, and works far far better. :-) --Rednaxela 15:58, 24 March 2009 (UTC)
Cool! So you're using a neural network to see which combination of gun inputs correlates to the required output? My NN knowledge is limited, but does the NN actually do the mixing for you? In what form do you get the output? --Skilgannon 16:19, 24 March 2009 (UTC)
Well, I use an adaptation of the generalized hebbian algorithm, not a neural net, for the crowd. Though many neural nets do use the GHA, I wouldn't call what I have a neural net because it's closer to a single neuron than a net. I suggest you see the wiki page for more info. What I have is essentially a modification of it, which among other changes works with vectors (containing the bin values) as opposed to real numbers. --Rednaxela 17:10, 24 March 2009 (UTC)
NN Series
Just a question, which library do you use? The small NeuralLib, NRLIBJ, TDNN, JSOMAP or your specially created? » Nat | Talk » 08:02, 24 March 2009 (UTC)]
A little custom 200-line class I wrote. Supports momentum, bais weights, easy to modify for any transfer functions, arbitrary numbers/sizes of layers, and batch training. It's not perfect but I'm fairly pround of it. :-) --Rednaxela 08:15, 24 March 2009 (UTC)
Well... NN01 to NN03 were a disappointment. While it's better against Shadow than the AS series, it's a VERY far cry from what Gaff gets. What I don't know, is whether it's because of the learning policy or the choice of inputs that it's failing so badly.... right now I'm suspecting choice of inputs but it's hard to really say... Pity that the two comparable NN guns are secretive, haha. --Rednaxela 17:34, 24 March 2009 (UTC)
AS Series
Well, it's not quite ready for TC tests yet but right now I'm working on a new more robust and smarter so called "Crowd Targeting" system than what I had in RougeDC. I'm not quite sure it's perfected yet but here's one very good sign: I set up hypothetical surfing stats an enemy might have and the system is consistantly giving a negative weighting to those stats when against surfers, and giving a zero-ish weight for those stats against random movers! I still have some work to do (for one it adapts much too slowly right now), but I think it's exciting that it's able to so reliably detect surfing behavior and choose a reasonable weight for simulated surfing stats! --Rednaxela 09:08, 3 January 2009 (UTC)
Success! AS03 is looking pretty nice! Still lots more potential to squeeze out but this is looking quite good so far! --Rednaxela 16:35, 22 March 2009 (UTC)
Huge success! AS04 simultaneously improved against surfers while recorvering random mover score too! WaveSerpent really gets totally kicked around too here! --Rednaxela 14:33, 23 March 2009 (UTC)
VCS Series
Based on VCS01-03 It's seeming that increasing granularity of segmentation of this current gun configuration dramatically increases anti-surfer performance (not that that is very good) however causes a small but notable decrease in performance against random movers (or not?). What I wonder now however is, how strong is possible against non-surfers with only a single pure-tickwave VCS buffer? I see bots in that challenge with scores notably better in the non-surfer category, however half are DC (Chalk and DCResearch) and the other half are multi-buffer (Phoenix & Dookious). Anybody else have any thoughts about how strong single-buffer VCS can get? --Rednaxela 07:53, 20 December 2008 (UTC)
IMO a single buffer can only ever be so strong against surfers (although perhaps your inter-segment smoothing will help with this) due to the fact that your segmentation is rarely exactly the same as them. A single buffer can be very strong against non-adaptive movement though, just look at Raiko. --Skilgannon 17:57, 20 December 2008 (UTC)
I'd agree that a single buffer is rather limited in how it can do against surfers, what I'm speaking about for now is against non-adaptive movement. I suppose my next step will be switching over to TargetingChallengeRM and and benchmarking Raiko, Bee modified to use a single buffer only, VCS04, and VCS04 modified to remove antialiasing/interpolation. Having those three should give quite a solid "baseline". Before I move beyond gun beyond single-buffer VCS (and I intend to move it far beyond that), I want to get the single-buffer VCS componant nailed down realllllly solid (in other words: Build the best damn single-buffer VCS gun there has ever been (against non-adaptives)). Right now I have the temptation to do a mad scientist laugh. Anyone else ever had that feeling when robocoding? :) --Rednaxela 02:20, 21 December 2008 (UTC)
Okay, so this is stronger thank Raiko, however is slightly weaker still than a version of Bee modified to use only a single-buffer. Next I'll try weighting my firing waves higher than non-firing as that may help. --Rednaxela 00:37, 23 December 2008 (UTC)
Woah, it seems that switching to smoothed bin insertions certainly helped overall. I think next I'll try a hybrid method of bin insertion that is smoothed but takes botwidth into account too. --Rednaxela 19:24, 23 December 2008 (UTC)
Well, from now on I'll remember this: Bin insertion shape makes a BIG difference and the optimal is certainly not a rectangle across the botwidth like I first presumed. VCS09 is kind of troubling yet uplifing at once. On one hand it demonstrates that my antialiasing/interpolation scheme is of much value, but on the other hand I need to figure out why it's so far behind SingleBufferBee without it. I can't think of any reason for it to be so much weaker considering both are very similarly natured. I wonder how much better than VCS08 it will be though once I fix whatever problem it has and re-enable antialiasing/interpolation... :) --Rednaxela 17:50, 24 December 2008 (UTC)
Wowzers! It seems VCS12 is very strong in TCRM! The things I know of that beat it, are DrussGT, Dookious, and some experimental versions of RougeDC's gun that never saw the rumble. Now.... if I can just get it past the 90 barrier, then just a little further to beat DrussGT's TCRM score and make the best anti-random-movement gun yet using only a single (though fancy) VCS buffer. Only then will I be satisfied with my take on VCS and be able to proceed to the next stage of Project SaphireEdge! *cackles like a madman* Wonder what it will take to make the final steps to making SaphireEdgeVCS the king of TCRM... Well first I'm going to find out just why VCS12 still underperforms SingleBufferBee... this will be VCS13's job. In retrospect, maybe I should have given seperate version numbering to the versions with and without antialiasing/interpolation? --Rednaxela 02:16, 28 December 2008 (UTC)
Well VCS13 failed to demonstrate improvement, and VCS11 is close enough to SingleBufferBee anyways, so in VCS14-16 I focused on improving ontop of VCS12 more. Seems that VCS16 is quite good, nearly passing the 90 mark! --Rednaxela 06:17, 29 December 2008 (UTC)
Nice! VCS20 is looking very strong! Ahead of Phoenix by a sizable amount, just baaarely behind RougeDC TC52's score of 90.24, and also closing in on DrussGT's 90.5 score! And to think this is just a single VCS buffer! :P --Rednaxela 05:29, 30 December 2008 (UTC)
Very impressive! Although, by doing all that smoothing, it seems to me that you are actually making it more in effect like a DC gun =) Are you also doing 'aliasing' when you read the data back to find a firing angle? Or just find the highest bin in the current buffer? Happy New Years =) --Skilgannon 20:53, 31 December 2008 (UTC)
Well, VCS20 turned out to bit less impressive after the rest of the seasons completed, but indeed this does seem to closer approximate like a DC gun works. Also I'm not 'aliasing' or true smoothing really, I'm doing anti-aliasing. See the example section to see how it's applied to images. Imagine you had a grid a pixels, but a point you want to insert isn't exactly in the center of a pixel, instead you can just tint all pixels adjacent to the point. In a similar way I'm writing to all buffers adjacent to the situation when I get a data point, and when reading, I do interpolation in a matching manner (I take a weighted average of all buffers adjacent to the current situation). With 6 dimensions like I'm currently using, this means each write writes to up to 64 buffers, and each read reads up to 64 buffers (it's frequently less because it's not uncommon for a given situation to be at the "edge" of one or two dimensions where it's only adjacent to a single segment). So for both reading and writing, at any given point in time I con't consider any single buffer to be the 'current' one, rather I consider a weighted mixture of buffers adjacent to the situation to be the current 'one'. To find the firing angle I don't do anything different from the norm of using the highest bin, the only difference is that the "current buffer" is a mixture of several. That make sense? :)
Now what bothers me is if I can improve this any further. I consider VCS16 to be my 'base version' now as nothing else has provided a conclusive improvement over it, and I've had 7 unsuccessful trials in a row. Further segments don't seem to be able to help, and changes to the anti-aliasing/interpolation methods I've toyed with didn't work either. Is roughly 90.0 the limit of this technique? I'm having trouble deciding if I should let the VCS series rest and begin the other parts SaphireEdge research or not. Perhaps I should try the Fourier analysis targeting idea I've been toying with...
Happy New Years!
--Rednaxela 21:47, 31 December 2008 (UTC)