Genetical learning (again)

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Genetical learning (again)

Post by jdart »

I have used the Stochastic RBF algorithm (Python implementation available here: https://ccse.lbl.gov/people/julianem/, although I had to modify/extend it) for those parameters that can't be tuned via the Texel method. It needs at least 2n iterations where n is the number of parameters to optimize but probably no more than 10n to produce a decent parameter set. Each iteration is a substantial number of games (30000 or so). This method is somewhat tolerant of noise. It takes a lot of time and resources, but many other methods are designed for optimizing computationally cheap functions or simulations and require more samples (sometimes a lot more) to produce the same results.

--Jon
nionita
Posts: 175
Joined: Fri Oct 22, 2010 9:47 pm
Location: Austria

Re: Genetical learning (again)

Post by nionita »

jdart wrote:I have used the Stochastic RBF algorithm (Python implementation available here: https://ccse.lbl.gov/people/julianem/, although I had to modify/extend it) for those parameters that can't be tuned via the Texel method. It needs at least 2n iterations where n is the number of parameters to optimize but probably no more than 10n to produce a decent parameter set. Each iteration is a substantial number of games (30000 or so). This method is somewhat tolerant of noise. It takes a lot of time and resources, but many other methods are designed for optimizing computationally cheap functions or simulations and require more samples (sometimes a lot more) to produce the same results.

--Jon
I experimented last weeks with this one, in the same category:

http://rmcantin.bitbucket.org/html/

After a few tests I'm trying to guess how many games I should play per "measure point" in order to get a good parameter sets as quick as possible. The noise level in short tournaments is terrible...
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Genetical learning (again)

Post by jdart »

BayesOpt uses a different algorithm although it is still in the response surface category. This is actually quite an old method (dating back to the 1998 paper by Jones) and it has a decent theory behind it but I don't think it is state of the art anymore. There is a comparison article here: http://link.springer.com/article/10.100 ... 014-0184-0 with some measurements.

I don't know if there is an optimal number of games per sample. I think it depends on the problem. The general problem is that many of the tuning "knobs" in a chess engine actually do not by themselves change the rating very much. So you are trying to find the low point on a very flat surface (most optimizers by default are minimizers so the measure they optimize is the inverse of the rating). If the noise is larger than the slope of the surface then you are probably just optimizing noise :-).

--Jon
nionita
Posts: 175
Joined: Fri Oct 22, 2010 9:47 pm
Location: Austria

Re: Genetical learning (again)

Post by nionita »

jdart wrote:So you are trying to find the low point on a very flat surface (most optimizers by default are minimizers so the measure they optimize is the inverse of the rating). If the noise is larger than the slope of the surface then you are probably just optimizing noise :-).

--Jon
But doesn't have any optimisation method the same problem?
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Genetical learning (again)

Post by jdart »

nionita wrote: But doesn't have any optimisation method the same problem?
Sure. It is just a hard problem. All optimizers will have difficulty with it. But some may do better than others because they converge faster and/or tolerate noise better.

--Jon
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Genetical learning (again)

Post by stegemma »

Next step: I'll use the new tourney mode of Satana to genetical-tune parameters against external engines, instead of just self-playing. I'm not sure about the best schema:

A) tune only against external engines
B) tune against internal engines (the GA population) and then run a validate session against external engines
C) tune in a mixed population: internal growing Satana instances plus fixed external engines

I would start from the last one, it seems the most promising schema. En passant, if I use even Neurone as an external engine, it has a "neurolearning" option that let him learn openings game by game... this would let not really fixed the external pool of engines.

It would be very nice to have a pool of automatic learning external engines but I don't know any other than Neurone, in the ELO range of Satana.
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com