Re: [computer-go] How to change the influence function?
--- On Thu, 7/17/08, tk424 <[EMAIL PROTECTED]> wrote: > From: tk424 <[EMAIL PROTECTED]> > I am trying to implement a new influence function in GNU Go > version 3.6. Version 3.6 was released in 2004; GnuGo is up to version 3.7.12 now. Why not work with the later version, which is somewhat stronger? An improvement to 3.7.12 could easily be incorporated; an improvment to 3.6 would require a good bit of adaptation to fit 3.7.xx, and might not actually improve the later version. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] How to change the influence function?
Just as Ian says, it's been my experience that self-play works well in practice for measuring if there was an improvement. But your actual result depends on your opponents and the nature of the improvement.Some improvements will seem very large in self tests but relatively small against specific opponents. It can someone work the other way around too but this does seem to be less likely. Some people view this as a problem claiming that self-test exaggerates the improvement.If this is true, it's all the more reason to do it because it's really difficult in general to measure small improvements.So I have no problem with it. So far I have never seen a self-play improvement translate to a general degradation of play, although I have seen modest improvements translate to "no improvement that I could measure" against other opponents. However it seems likely that it's possible. To avoid being deceived, I cannot stress strongly enough that you need a LOT of games to be very sure of anything.Of course if you win 19 and lose 1 you can be relatively certain that you have an improvement, but it's still quite likely that it's not as big as you think. I think this has to do with WHAT you changed and interactions with what the opponent knows. If you directly address a weakness of the opponents you test against, you can probably expect to see a good result.Or conversely if you patch up a weakness that you are getting hammered with, you will see a big improvement.Most things translate fairly evenly, but not all things.In other words, if you improve against opponent X you probably also improved roughly the same amount against most other opponents, but not necessarily. - Don Ian Osgood wrote: On Jul 17, 2008, at 9:51 PM, tk424 wrote: Hello, The first question is how to prove the new influence function is better the old one. I believe it can be said the new influence function is better if the new GNU Go wins more games, in average, than the old one. The rest of the parts will stay the same. T Kim Self-play seems like a good smoke-test for whether your influence function is any better than the existing one. Self-play should not be used to determine *how* much better, however. GNU Go also has an extensive suite of regression tests. Examining its breakage should give you many hints on how your changes to the influence function interact with other parts of the program. I would not be surprised if other components are tuned to the existing algorithm and would need adjustment. Ian ___ computer-go mailing list computer-go@computer-go.org http://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/
Re: [computer-go] How to change the influence function?
On Jul 17, 2008, at 9:51 PM, tk424 wrote: Hello, The first question is how to prove the new influence function is better the old one. I believe it can be said the new influence function is better if the new GNU Go wins more games, in average, than the old one. The rest of the parts will stay the same. T Kim Self-play seems like a good smoke-test for whether your influence function is any better than the existing one. Self-play should not be used to determine *how* much better, however. GNU Go also has an extensive suite of regression tests. Examining its breakage should give you many hints on how your changes to the influence function interact with other parts of the program. I would not be surprised if other components are tuned to the existing algorithm and would need adjustment. Ian ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] How to change the influence function?
tk424 wrote: Hello, I am trying to implement a new influence function in GNU Go version 3.6. I have two questions about this issue. The first question is how to prove the new influence function is better the old one. I believe it can be said the new influence function is better if the new GNU Go wins more games, in average, than the old one. The rest of the parts will stay the same. In other words, this new influence function should be compared from self-play (old influence function vs. new influence fn). Does this sound reasonable? Any comment will be appreciated! Self-play can be somewhat tricky - it may give you good results but it can be unreliable. It's probably a good way to start however. If it scores better against the old gnugo, then you have a basis for continuing with more thorough tests. If it scores worse, it's probably not working. Playing games with humans is another idea. However it's pretty much impossible to get an accurate measurement that way - unless the change produced a pretty large improvement. I think a reasonable compromise is to play a variety of computer opponents. You will need hundreds of games or perhaps even thousands if the improvement is minor. So you might consider doing it in this order: 1. Play 100 tests against the old gnugo. 2. If step 1 shows an improvement start playing against other players, or on CGOS. 3. Play rated games on KGS (can be done while doing step 2) - Don The second question is more practical. Could anyone tell what part in the source codes should be modified? I have no experience of working with influence function, setting up a self-play, and counting the number of wins. ANY input will be helpful... After reading the GNU Go documentation 13. Influence function (http://www.gnu.org/software/gnugo/gnugo_13.html), I was trying to understand engine/influence.h and engine/influence.c. But it's all puzzling to me. Thank you in advance! T Kim !!! Friends are angels who lift us to our feet when our wing have trouble remembering how to fly. !!! Address: Missouri University of Science and Technologies Formerly, University of Missouri-Rolla Applied Computational Intelligence Laboratory G11 Emerson Electric Co. Hall 1870 Miner Circle Rolla, MO 65409-0040 ___ computer-go mailing list computer-go@computer-go.org http://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/
Re: [computer-go] How to change the influence function?
On 17, Jul 2008, at 9:51 PM, tk424 wrote: The first question is how to prove the new influence function is better the old one. I believe it can be said the new influence function is better if the new GNU Go wins more games, in average, than the old one. in general a reasonable idea ... The rest of the parts will stay the same. In other words, this new influence function should be compared from self-play (old influence function vs. new influence fn). Does this sound reasonable? No, self-play is not usually reasonable. A better idea would be to have it play on KGS and if it proves to be stronger against a large variety of human opponents, then it is likely better. Any comment will be appreciated! Cheers, David ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
[computer-go] How to change the influence function?
Hello, I am trying to implement a new influence function in GNU Go version 3.6. I have two questions about this issue. The first question is how to prove the new influence function is better the old one. I believe it can be said the new influence function is better if the new GNU Go wins more games, in average, than the old one. The rest of the parts will stay the same. In other words, this new influence function should be compared from self-play (old influence function vs. new influence fn). Does this sound reasonable? Any comment will be appreciated! The second question is more practical. Could anyone tell what part in the source codes should be modified? I have no experience of working with influence function, setting up a self-play, and counting the number of wins. ANY input will be helpful... After reading the GNU Go documentation 13. Influence function (http://www.gnu.org/software/gnugo/gnugo_13.html), I was trying to understand engine/influence.h and engine/influence.c. But it's all puzzling to me. Thank you in advance! T Kim !!! Friends are angels who lift us to our feet when our wing have trouble remembering how to fly. !!! Address: Missouri University of Science and Technologies Formerly, University of Missouri-Rolla Applied Computational Intelligence Laboratory G11 Emerson Electric Co. Hall 1870 Miner Circle Rolla, MO 65409-0040 ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/