I use a generalization of this in Winter. I assume every position is from some set of k Gaussians. For every position evaluation I estimate the probability that a position is from each of those Gaussians and interpolate the evaluation based on the parameters I estimated for each Gaussian and these probabilities.
Unfortunately Winter is still very weak relative to top engines, so I don't feel confident the idea is worth anything in general, but for Winter it seems to be working quite well.
Tapered Eval between 4 phases
Moderator: Ras
-
jorose
- Posts: 388
- Joined: Thu Jan 22, 2015 3:21 pm
- Location: Zurich, Switzerland
- Full name: Jonathan Rosenthal
-
cdani
- Posts: 2204
- Joined: Sat Jan 18, 2014 10:24 am
- Location: Andorra
Re: Tapered Eval between 4 phases
In Andscacs I have various bonus/penalizations related to the number of pawns and closed center. I think is better to have specific features like this than generic ones, as Hgm suggest. Anyway I have also an standard two phase tapered eval.
Daniel José -
http://www.andscacs.com
-
Evert
- Posts: 2929
- Joined: Sat Jan 22, 2011 12:42 am
- Location: NL
Re: Tapered Eval between 4 phases
Yes.hgm wrote:IMO the largest shortcoming of the two-phase model is not the shape of the interpolation, but that all eval parameters depend on the same game-phase variable. I other words, that game phase is a one-dimensional quantity. It is very unlikely that King safety should be interpolated the same way between a full FIDE setup and bare Kings as, for instance, the value of pushing passers.
I usually divide phases as "hide king", "activate king" and "run with pawns", at least in my mind. No, for orthochess, "activate king" and "run with pawns" are close enough that you can lump them together, so you end up with two phases you could label "middle game" and "end game" if you like.
For variants it is a different matter, of course.
-
ymatioun
- Posts: 64
- Joined: Fri Oct 18, 2013 11:40 pm
- Location: New York
Re: Tapered Eval between 4 phases
I tried this earlier this year; i tried using 4 stages, 8 stages and even 16 stages (you can fit 16 16-bit values into one AVX variable that you can operate on in one instruction, so up to 16 stages can be accommodated with virtually no performance penalty). This significantly reduces variance of the residual in optimization(possibly due to overfitting), but i could not get any performance improvement.