RuyTune

From Chessprogramming wiki
Revision as of 14:38, 25 October 2018 by GerdIsenberg (talk | contribs) (Created page with "'''Home * Automated Tuning * RuyTune''' FILE:ruytunetanh.jpg|border|right|thumb|link=http://www.wolframalpha.com/input/?i=tanh(0.43s)+,+s%3D-10+to+10| Ruy...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Automated Tuning * RuyTune

RuyTune's hyperbolic tanh based Sigmoid

RuyTune,
an open source framework for tuning evaluation function parameters, written by Álvaro Begué in C++, released on Bitbucket [1] as introduced in November 2016 [2]. RuyTune applies logistic regression using a limited-memory BFGS, a quasi-Newton method that approximates the Broyden–Fletcher–Goldfarb–Shanno algorithm with limited amount of memory. It uses the libLBFGS library [3] along with reverse-mode automatic differentiation and requires that the evaluation function is converted to a C++ template function where the score type is a template parameter, and a database of quiescent positions with associated results [4].

Method

The function to minimize the mean squared error of the prediction is:

TexelTuneMathE.jpg

where:

  • N is the number of test positions.
  • Ri is the result of the game corresponding to position i; -1* for black win, 0 for draw and +1 for white win.
  • qi is corresponding to position i, the value returned by the chess engine evaluation function. (Computing the gradient on the QS is a waste of time - it is much faster to run the QS saving the PV and then compute the gradient using the evaluation function of the end-of-PV position - and not worry too much about the fact that tweaking the evaluation function could result in a different position being picked [5]).
  • Sigmoid is implemented by hyperbolic tangent to convert centipawn scores into an expected result in [-1,1] [6].
Sigmoid(s) = tanh(0.0043s)

See also

Forum Posts

Re: Texel tuning method question by Álvaro Begué, CCC, June 07, 2017

External Links

References

Up one Level