Ernest, Fun stuff! I have a co-evolved neural net that used to play on KGS as “Antbot9x9”. I use the same net in the progressive widening part of my MCTS engine. I would guess that many people experiment along these lines but they rarely report results.
Here are some suggestions that might be relevant: - If you test your approach on smaller board sizes you can get results orders of magnitude faster. 7x7 would be a good starting size. (If you use 5x5, make sure your super-ko handling is rock solid first.) - Take the strongest net at every generation and benchmark it against one or more computer opponents to measure progress over time. Suitable computer opponents would be light playouts (random), heavy playouts (a bit tougher), Wally (there’s nothing quite like getting trounced by the infamous Wally to goad one into a new burst of creativity), and Gnugo. When you have a net you like, it can play against other bots online at CGOS and get a ranking. - Use a hierarchical architecture, or weight sharing or something to let your GA learn general principles that apply everywhere on the board. A self-atari move on one spot is going to be roughly as bad as on any other spot. You probably don’t want your GA to have to learn not to move into self-atari independently for every space on the board. - Use the =E 2mercy rule” to end games early when one color has an overwhelming majority of the stones on the board. - Feed the net some simple features. To play well, it will have to be able to tell if a move would be self-atari, a rescue from atari, a capturing move,… Unless you think it might not need these after all, do you really want to wait for the net to learn things that are trivial to pre-calculate? You are probably reluctant to feed it any features at all. As a motivating exercise, you could try having the GA evolve a net to calculate one of those features directly. - GA application papers tend to convey the sense that the author threw a problem over a wall and the GA caught it and solved it for him. Really, there’s a lot of art to it and a lot of interactivity. Fortunately, that’s the fun part. - Dave Hillis -----Original Message----- From: Ernest Galbrun <ernest.galb...@gmail.com> To: computer-go <computer-go@computer-go.org> Sent: Tue, 24 Feb 2009 7:28 am Subject: Re: [computer-go] Presentation of my personnal project : evolution of an artificial go player through random mutation and natural selection I read a paper a couple years ago about a genetic algorithm to evolve a neural network for Go playing (SANE I think it was called?). The network would output a value from 0 to 1 for each board location, and the location that had the highest output value was playe d as the next move. I had an idea that the outputs could be sorted to get the X "best" moves, and that that set of moves could be used to direct a minimax or monte carlo search. I haven't had the chance to prototype this, but I think it would be an interesting and possibly effective way to combine neural networks with the current Go algorithms. Colin This was a great achievement indeed, but although it might seem dumb, my approach here is to be as ignorant as I can (not very difficult given my knowledge in AI) of subtile and clever ways to make my players evolve. The SANE algorithm has proven to be very powerful, but it needs some assumptions to be true. As "probably true" this assumtpions are, I prefer to have none and look at a really random evolution pattern. Ernest. _______________________________________________ omputer-go mailing list omputer...@computer-go.org ttp://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/