I'll add some detail. I have 10 features which give me 1024 possible context codes, not all of which are realizable. I keep a CAMAF table of approximate size 1024*(number of spaces)*colors (1024*81*2 for a 9x9 board). This table persists throughout the entire game, with suitable decays of the weights between turns.
After each playout, I update the average score for each move made in the CAMAF table. For internal nodes, including the root, I only update the CRAVE values for moves that matched the context code of that space at that node. (Internal nodes don't need to store any more information than they would with RAVE-though storing the context codes can save time). For an internal node, I have 4 pieces of information for every move considered: 1. win rate 2. Prior value (the humble equivalent of?the domain knowledge in Many Faces) 3. CRAVE 4. CAMAF The relative usefulness of each piece of information will vary as more playouts go through?the node. For an external node, I have 2 pieces of information for every move considered. 1. The normal move value I was using in my heavy playouts. 2. The CAMAF value I can make the playouts adaptively learn sekis and other things that otherwise tend to get pushed over the horizon. So, if I ever manage to get this all tuned up so that it actually makes my engine stronger instead of weaker, I hope to start playing my bot in tournaments again some day. - Dave Hillis -----Original Message----- From: [email protected] To: [email protected] Sent: Fri, Aug 7, 2009 11:49 am Subject: Re: [computer-go] RAVE problems > -----Original Message----- > From: terry mcintyre <[email protected]> > To: computer-go <[email protected]> > Sent: Fri, Aug 7, 2009 10:35 am > Subject: Re: [computer-go] RAVE problems > > Perhaps the "context" attached to RAVE needs to be more subtle than a static > 3x3 pattern - tactical and efficiency > considerations may apply - a move may > be good when it defends or kills a group, but bad if it has no effect upon > the > status - it may be wasted in such cases. These are the context codes that I am currently testing. I'm using the terms context-AMAF (CAMAF) and context RAVE (CRAVE). 10 bits: case 0: printf("context %d: eye creating \n", k); break; 0: printf("context %d: eye creating \n", k); break; case 1: printf("context %d: pat \n", k); break; 1: printf("context %d: pat \n", k); break; case 2: printf("context %d: self_atari \n", k); break; 2: printf("context %d: self_atari \n", k); break; case 3: printf("context %d: capture \n", k); break; 3: printf("context %d: capture \n", k); break; case 4: printf("context %d: enemy-atari \n", k); break; 4: printf("context %d: enemy-atari \n", k); break; case 5: printf("context %d: ladder-like attack \n", k); break; 5: printf("context %d: ladder-like attack \n", k); break; case 6: printf("context %d: rescue \n", k); break; 6: printf("context %d: rescue \n", k); break; case 7: printf("context %d: liberties_for_move == 2 \n", k); break; 7: printf("context %d: liberties_for_move == 2 \n", k); break; case 8: printf("context %d: running \n", k); break; 8: printf("context %d: running \n", k); break; case 9: printf("context %d: squeeze \n", k); break; 9: printf("context %d: squeeze \n", k); break; default: printf("context %d: NO CONTEXT \n", k); break; : printf("context %d: NO CONTEXT \n", k); break; case 1, matching a pattern, is a binary flag indicating that the move makes any "good" 3x3 pattern. case 4, ladder-like attack, means that it puts a foe group into atari, that group couldn't gain a liberty by capturing, and couldn't gain > 2 liberties by moving onto its single liberty. case 8, running, means it gives a friendly group >= 3 liberties where it had 2 liberties before. case 9, squeeze, means it reduces a foe group to 2 liberties (but they might be eyes...). If ladder testing is enabled, there is an 11th bit for that result. I'm certain that this is not the ideal set of features. I'd be very interested in what the group thinks they should be. - Dave Hillis _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
