>By now, I should probably find better reference opponent than >gnugo... I wonder if to pick fuego or mogo... ;-) Strength is probably >not _as_ important as the variety of techniques used in order to avoid >selective blindness (that's why I don't like tuning by self-play), >does anyone have a tip? Or do higher gnugo levels make much strength >difference?
Pebbles doesn't follow the norms, but I am very happy with my solution: just play constantly on CGOS. CGOS provides a range of opponents of different styles, including non-MCTS opponents that use neural networks or alpha-beta. You can play 140 games per day, which is plenty. You are right about selective blindness. Some programs, like GnuGo, regularly donate rating points to Pebbles. Others, like Valkyria, take those away. You need a range of opponents. Overall, CGOS gives a realistic measure of where you stand. I have some suggestions for effective use of CGOS for testing purposes. First, I don't aim to have the highest-rated program, because I am not caught up in the hardware race. Instead, I use a modest CPU and try to write good software. Some programs run on an 8-core processor, play exactly 100 games (to get a non-provisional rating), lose only 10, and then disappear. The programmers must have good reasons for this, but running on elite hardware obscures flaws in the software, so it isn't for me. Even when Pebbles has better hardware, I will continue to run a version on CGOS using low hardware. I learn more from losses! Second, I run two identical copies of Pebbles. The other is called PebblesToo. Both copies run on the same dual-core machine, so they have the same performance over the long run. PebblesToo serves three purposes. One, it doubles the pace of data collection. This is far better use of the second core than playing twice as fast, IMO. Two, when Pebbles is matched up against Valkyria, PebblesToo is necessarily playing a weaker opponent, which provides a more balanced view. Three, Pebbles will get some self-play games, which are a necessary part of an overall testing strategy. Third, I run a version of Fuego that is a little below Pebbles. It is called fuego-0.4-slow. This program serves two purposes. One, it sucks up games against very low rated players (because CGOS favors pairings of equal opponents). Two, it provides a "nearby" program that is always available, so if Aya and Lingo are offline there is still an opponent of about the right level. Fourth, Pebbles plays a lot of 9x9 games. Such games give your program an intense tactical workout at 10 minutes per game. I assure you that no current program has adequate tactics. Most strong programs have opening libraries and run on much more powerful computers. When Pebbles defeats such an opponent, it is invariably because they overlook a tactical shot. IMO, programmers that disdain 9x9 are learning about flaws more slowly than necessary. Fifth, Pebbles saves two positions from every loss: the last position in which it thought it was winning (eval of the selected move >= 50%), and the position in which it thought it had the greatest advantage. Pebbles regularly (~1 or 2 games per day) loses games where it thinks it will win >90% of the time. I always learn something by analyzing those games. Sixth and finally, CGOS is a community resource that is more valuable when it used more by more people. So use it! Run your program as often as possible. Pebbles has played ~16000 games. I rarely have new software, but Pebbles plays anyway. Following this process raised Pebbles by ~1200 rating points over a 6-month period, all on the same hardware. Pebbles now beats GnuGo by ~94% with no specific tuning towards that goal. If I targeted GnuGo, the percentage would run well over 100%. :-) But there are larger and higher goals. Lingo, Aya, Valkyria, MFGO, Fuego, and Mogo take turns teaching me how to write Go programs. Someday Pebbles will return the favor. After I buy an 8-core, maybe. :-) _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
