[Computer-go] Building a database for training CNNs
Hi, There are things a CNN could probably do well, if only we had the right database to train it. I have in mind these two possibilities: * using a CNN as an evaluation function, * using a CNN to estimate ownership for each point (i.e., a number between -1 and 1 that is an estimate of who is going to end up scoring it). So we need a large set of positions labelled with a final score for the game and who ended up scoring each point. I believe the right database to use for this purpose would consist of positions from games played by strong computer opponents which play to maximize score and which play to the bitter end, passing only when the opponent has no dead stones left on the board. I would like to know if you think this would be an interesting resource to have, if you have any recommendations on what engine(s) to use and if you would be willing to collaborate in creating it. Any other comments are welcome too, of course. Cheers, Álvaro. ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] Building a database for training CNNs
Hi Álvaro, I've done things like that, except I didn't use games by strong computer opponents (none existed at the time), so just human amateur games. In my experience the critical part is in learning about life death. Once you have that, estimating ownership is fairly easy, asymptotically reaching near 100% prediction accuracy toward the end of the game. See the following papers for more details: http://erikvanderwerf.tengen.nl/pubdown/learning_to_score_extended.pdf http://erikvanderwerf.tengen.nl/pubdown/learningLifeandDeath.pdf http://erikvanderwerf.tengen.nl/pubdown/predicting_territory.pdf or just read the second half of my PhD thesis :) http://erikvanderwerf.tengen.nl/pubdown/thesis_erikvanderwerf.pdf BTW it's great to see this list come back from the dead. Thanks Petr Michael! Best, Erik On Sat, Dec 20, 2014 at 4:43 PM, Álvaro Begué alvaro.be...@gmail.com wrote: Hi, There are things a CNN could probably do well, if only we had the right database to train it. I have in mind these two possibilities: * using a CNN as an evaluation function, * using a CNN to estimate ownership for each point (i.e., a number between -1 and 1 that is an estimate of who is going to end up scoring it). So we need a large set of positions labelled with a final score for the game and who ended up scoring each point. I believe the right database to use for this purpose would consist of positions from games played by strong computer opponents which play to maximize score and which play to the bitter end, passing only when the opponent has no dead stones left on the board. I would like to know if you think this would be an interesting resource to have, if you have any recommendations on what engine(s) to use and if you would be willing to collaborate in creating it. Any other comments are welcome too, of course. Cheers, Álvaro. ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go
Re: [Computer-go] Building a database for training CNNs
On Sat, Dec 20, 2014 at 9:35 PM, Robert Jasiek jas...@snafu.de wrote: On 20.12.2014 17:04, Erik van der Werf wrote: the critical part is in learning about life death. Once you have that, estimating ownership is fairly easy [...] See the following papers for more details: [...] http://erikvanderwerf.tengen.nl/pubdown/predicting_territory.pdf Estimating ownership or evaluation functions to predict final scores of already played games are other things than estimating potential territory. Therefore I dislike the title of your paper. Apart from lots of simplistic heuristics without relation to human understanding of territorial positional judgement, one thing has become clear to me from your paper: There are two fundamentally different ways of assessing potential territory: 1) So far mainly human go: count territory, do not equate influence as additional territory. 2) So far mainly computer go: count territory, equate influence as additional territory. Human players might think as follows: The player leads by T points. Therefore the opponent has to use his superior influence to make T more new points than the player. Computers think like this: One value is simpler than two values, therefore I combine territory and influence in just one number, the predicted score. Both methods have their advantages and disadvantages, but it does not mean that computers would always have to use (2); they can as well learn to use (1). (1) has the advantage that counting territory (or intersections that are almost territory) is easy for quiet positions. Minor note on your paper: influence and thickness are defined now (see Joseki 2 - Strategy) and influence stone difference and mobility are related concepts if one wants simpler tools. aji has approached a mathematical definition a bit but still some definition work remains. Sure, I tried lots of simple heuristics to ease the learning task for the networks. One might hope that 'deep' networks would be able to learn advanced concepts more easily, perhaps more on par with human understanding, but for the near future that might still just be wishful thinking. At the time I didn't really care much for a fundamental distinction between territory and influence; I just wanted to have a function to predict the outcome of the game for every intersection as well as possible (because it seemed useful as an evaluation function). Intersections colored with high probability for one side tend to coincide with what human players call territory, while mediocre probabilities tend to coincide more with influence. I know there are non-probabilistic ways to define the two, but I'm not sure it really matters. Perhaps the more effective approach is to just go directly for the probability of winning (like MC does). Best, Erik ___ Computer-go mailing list Computer-go@computer-go.org http://computer-go.org/mailman/listinfo/computer-go