[Home]CrowdTargeting

Robo Home | Changes | Preferences | AllPages

Difference (from prior minor revision) (major diff, author diff)

Changed: 64c64
* Indeed, I now feel 100% certain that tapping into crowd wisdom is better than trying to figure out a "best" strategy, because just recently I've successfully combined a DynamicClustering gun and PatternMatcher in a CrowdTargeting-style way that notably outperforms either gun alone or in VirtualGuns, even against random movers and such things that the PatternMatcher can get strong matches on! -- Rednaxela
* Indeed, I now feel 100% certain that tapping into crowd wisdom is better than trying to figure out a "best" strategy, because just recently I've successfully combined a DynamicClustering gun and PatternMatcher in a CrowdTargeting-style way that notably outperforms either gun alone or in VirtualGuns, even against random movers and such things that the PatternMatcher can't get strong matches on! -- Rednaxela

CrowdTargeting

A Targeting strategy. Tap into the Wisdom of the Crowd. Inspired by The book says to stop hunt for the expert and instead tap into the collective wisdom of the group. Even if the group consists of mainly non-experts, in the long run they will outperform the expert as long as some conditions are met. The conditions are (from http://en.wikipedia.org/wiki/The_Wisdom_of_Crowds):

The magic works through a mathematical truism stating that the error margin shrinks with each added sample. Each answer consists of part information, part error. The more answers the less the error gets and in theory the collective information approaches the real answer.

See also:

The Targeting problem domain

CrowdTargeting, then, tries to not focus too hard on finding the one gun that knows best where to fire. But rather tries to keep a crowd of semi-good guns and then simply averages the answer received from each gun in the crowd.

Used by

Comments / Questions / Suggestions

I definitely think I'm on to something here. My first slab test with CassiusClay gained me RR@H points. I know I should have room to improve this first attempt since my Crowd of guns isn't diverse or independent enough yet. -- PEZ

A very cool idea. In a way, this is similar to how a lot of wave surfers organize their data for movement (I know WaveSerpent, CassiusClay, and Dookious do it like this). There are many differently segmented buffers that are weighted and layered on top of each other to come up with the total risk of moving in a certain direction. -- Kev

Yes, but this is not exactly like that. CrowdMovement? would layer many more buffers, and lots of them simple, on top of each other and also, in its purest form, not weigh the buffers at all. -- PEZ

I so wanna try this now, darn me and not saving Eclipse's installer. Seraphim surfs like this, though its base code is damaged. Actually you could do this not only with a swarm of bees, but a swarm made up of bees, wasps, dragonflys and birds. What I mean is, not only have gf guns, but pattern matchers and other types of targeting systems. --Chase-san

That is certainly true, and I think it's a fundamental part of what can make the crowd diverse. However, with multiple GF buffers, you can sum them to get a rating for each bin, while with a PM gun, you only get a single firing angle; so combining the results would require some more innovation.

Has anyone ever read about Google's rank aggregation techniques? I'm sure it's part of a larger field of study similar to this one. They have lots of different rankings that they try to intelligently (and very, very quickly) combine into a single ranking that is what you actually see as Google's search results. I attended a talk given by a Google employee last fall on the subject and found it very interesting. (And, of course, I instantly started considering ways to implement it in Robocode. =)) There may be much better ways to combine the voices in the crowd than just summing the values in the GF bins...

-- Voidious

http://www.google.com/technology/pigeonrank.html You'll have to parse the technique out of the April jaws though =) -- Nfwu

Converting a PM angle to a GF is no problem at all. PM tends to be slow though so throwing in a few of those might create the slowest bot ever. Even so one should be ready to go far to reach the diversity. I would certainly throw in a few other types of guns if I had them. Maybe we should create a Crowd interface where all of us can add targetings and see where that brings us. Using Dookious gun frame we would know that things are tuned to get optimum performance out of good guessing.

Google's Page rank is tapping in on the Wisdom of the Crowd, by the way. It's one of the examples taken up in the book. Sure there are other ways to utilize the crowd wisdom than just averaging GF guesses. It's about formulating the question in a way that can be accumulated and averaged. Whatever that question is.

-- PEZ

Well, converting one angle to a GF is easy, but the PM gun doesn't give a ranking across all firing angles, it just gives you one angle. Engineer's NeuralNetwork, for instance, yields an array of GF bins just like we have in our guns, so that would be a lot easier to integrate into the crowd. It would be quite interesting to develop a common interface for this using Dookious, I'll definitely look into it when I get a chance. -- Voidious

Well, the way my current crowd in CC works is that all guns get to vote for one GF. Something a PM gun could deliver just as well. -- PEZ

What gets chosen? The mean (average), the mode (most popular) or median (most moderate)? Have you tried just adding together normalized segments (normalized meaning possibly either so that the highest bucket's rating is 1 or so that all buckets add up to 1) as Voidious probably assumed you were? -- Kawigi

Currently I chose the most popular. I'll try adding all buckets together next version. -- PEZ

Was the repetition of the top part intentional? I am deleting the top part --Starrynte

How about using MultipleChoice for choosing the angle? This could improve the close range performance, I would think. -- Skilgannon

Hmm... actually, this reminds me somewhat of some of my ideas in Rednaxela/MultiplePlaneRegressionClustering, because that is essentially using a 'crowd' of function approximators (i.e. linear regression or neural nets) and using a k-means type method to nudge them to "diversity" and "decentralization", and then "aggregates" by having each function approximator reposition logs entries that it 'specialized' based on what it expects in the current situation. So really, I'd consider that idea I had there to be a specialized form of "CrowdTargeting" though of a different variety than most ones considered here. -- Rednaxela

Indeed. Even just StatisticalTargeting fits the CrowdTargeting category I think. The reason I get so excited about the idea is that I spent so much time on trying to figure out which of my Targeting strategies that was the best for a specific enemy and then I realized that it was much better to just tap into the crowd wisdom. -- PEZ

PEZ, I don't know if you've been keeping track, but DrussGT, which arguably has the strongest movement in the rumble, uses my own definition of CrowdTargeting. I have 100 randomly generated buffers for the surfing, each with different combinations of segments, both different attributes and different slices. It gives incredibly quick learning, which I blame for DrussGT's strong movement. It was this page that inspired me to give this idea a try. -- Skilgannon

No, I haven't been keeping track. Wish I had! Entirely awesome work with DrussGT. Inspiring! -- PEZ


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 29, 2008 7:50 EST by Rednaxela (diff)
Search: