| Age | Commit message (Collapse) | Author |
|
Gone is the convolutional neural network, for it turns out not only is
it more difficult to train, but all of the extra information about
board layers didn't make much of a difference at this size.
So cnn1986 has been replaced by nn1986, a standard, two-layer, dense
nn configured as a binary classifier and (mis)used in that capacity.
Note: total number of parameters is unchanged.
HARK: this new nn exposes a bug somewhere in ctak. Run ctlm with
self-play to see the completely borked board state at the end.
|
|
Eventually there'll be a more complicated data generation step than
the one we're presently using, so having it in-lined in the loop is
wasteful. Ideally also this would be update per ply and we could avoid
recalculating it entirely for every query -- though it's probably
``fast enough'' for now. Also, caching is WIP.
|
|
|
|
It turns out that while i was training on a 0/1 classification
problem, i was using 2*eval - 1. Training using this function instead,
and on bot-dominated game choices (chosen_player in extract.sh) seems
to have given a better evaluation function. At the least, Morten's
swindle doesn't work anymore.
|
|
|
|
|
|
|
|
|
|
|
|
I still can't tell whether if ((ply & 1) == 0) this = this - 1.0; is
correct.
|
|
|
|
With minimax of depth 1 the evaluation function seems alright with the
current method of training and generating weights
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|