I also use an online learning algorithm in RLGO to adjust feature
weights during the game. I use around a million features (all possible
patterns from 1x1 up to 3x3 at all locations on the board) and update
the weights online from simulated games using temporal difference
learning. I also use the sum of feature weights to estimate the value
of a move, rather than a multiplicative estimate. The learning signal
is only win/lose at the end of each simulation, rather than supervised
learning like Remi. The results are encouraging (currently ~1820 Elo
on CGOS, based on 5000 simulations per move) for a program that does
not use UCT or Monte-Carlo Tree Search in any way.

This is impressive!   Does your program use an alpha/beta tree search?
I'm not clear on how it selects a move.


During simulation, I use an epsilon-greedy policy, (i.e. 1-ply search with the occasional random move thrown in for exploration). This updates the evaluation function online to reflect the current situation. For actual move selection, I use a 5-ply alpha-beta search (with no exploration), using the updated evaluation function. Interestingly, the alpha-beta search doesn't help as much as I expected, and in fact hurts performance for 2-3 ply searches.


_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to