## Piece weights with regression analysis (in Russian)

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
PK
Posts: 876
Joined: Mon Jan 15, 2007 10:23 am
Location: Warsza
Contact:

### Re: Piece weights with regression analysis (in Russian)

Can You give similar output for Stockfish? It's interesting to see if it will differ from human values.

Michel
Posts: 2236
Joined: Sun Sep 28, 2008 11:50 pm

### Re: Piece weights with regression analysis (in Russian)

The logistic regression methods for tuning are really nice and I enjoyed reading Buro's paper. Obviously from a practical viewpoint such tuning methods work quite well.

Question: is there any research into why such statistically correct evaluation functions are expected to work?

The problem I have is that "statistical correctness" does not propagate through the game tree. In other words: if the leaf evaluation is statistically correct then there is a priori no reason why the result of a 1-ply search would be statistically correct.

The propagation through the game tree is via min/max functions and these have bad statistical properties...
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.

Xann
Posts: 127
Joined: Sat Jan 22, 2011 6:14 pm
Location: Lille, France

### Re: Piece weights with regression analysis (in Russian)

Hi Michel,
Michel wrote:The logistic regression methods for tuning are really nice and I enjoyed reading Buro's paper. Obviously from a practical viewpoint such tuning methods work quite well.

Question: is there any research into why such statistically correct evaluation functions are expected to work?

The problem I have is that "statistical correctness" does not propagate through the game tree. In other words: if the leaf evaluation is statistically correct then there is a priori no reason why the result of a 1-ply search would be statistically correct.

The propagation through the game tree is via min/max functions and these have bad statistical properties...
I fully agree with you, and propagating a random eval will quickly convince the sceptic. Machine learning in general expects you to use its results directly. Sometimes a bias such as a cost matrix (http://cse-wiki.unl.edu/wiki/index.php/ ... e_Learning) is introduced.

I haven't seen search/eval interaction modelled anywhere, but don't follow papers closely anymore. It seems very difficult, but could lead to biased error functions that give better results when combined with deep searches.

One element as to why it works at all for me is that regression can compensate its drawbacks by handling a large number of weights, even in the millions.

Fabien.

brtzsnr
Posts: 433
Joined: Fri Jan 16, 2015 3:02 pm
Contact:

### Re: Piece weights with regression analysis (in Russian)

WinPooh wrote:My article on a polular Russian IT portal:
http://habrahabr.ru/post/254753/

It is in Russian, but I believe the text is quite understandable even without translation.
I must be doing something wrong. For 7442 games at 40/2+0.05 (two seconds for 40 moves plus 0.05 increment) between zurichess and itself I get very strange values. Using Texel's Tuning method I get good values.

Code: Select all

``````./pgnlearn.exe ../../pgn/games.pgn
Games&#58; 7442
Created file&#58; .mat
&#91; 12807 x 5 &#93;
Iter 0&#58; &#91; 0 0 0 0 0 &#93; -> 0.693147
Iter 1000&#58; &#91; 0.173482 0.210955 0.288834 0.391243 0.17849 &#93; -> 0.690838
Iter 2000&#58; &#91; 0.174092 0.212807 0.2914 0.472017 0.187411 &#93; -> 0.69083
Iter 3000&#58; &#91; 0.174207 0.213172 0.29191 0.487982 0.188865 &#93; -> 0.69083
Iter 4000&#58; &#91; 0.17423 0.213245 0.292011 0.49115 0.18915 &#93; -> 0.69083
Iter 5000&#58; &#91; 0.174234 0.213259 0.292031 0.491779 0.189206 &#93; -> 0.69083
Iter 6000&#58; &#91; 0.174235 0.213262 0.292035 0.491904 0.189218 &#93; -> 0.69083
Iter 7000&#58; &#91; 0.174236 0.213263 0.292036 0.491928 0.18922 &#93; -> 0.69083
Iter 8000&#58; &#91; 0.174236 0.213263 0.292036 0.491933 0.18922 &#93; -> 0.69083
Iter 9000&#58; &#91; 0.174236 0.213263 0.292036 0.491934 0.18922 &#93; -> 0.69083
Iter 10000&#58; &#91; 0.174236 0.213263 0.292036 0.491934 0.18922 &#93; -> 0.69083

PIECE VALUES&#58;

Pawn&#58;   100
Knight&#58; 122.399
Bishop&#58; 167.61
Rook&#58;   282.339
Queen&#58;  108.6
Press ENTER to finish
``````

WinPooh
Posts: 259
Joined: Fri Mar 17, 2006 7:01 am
Location: Russia
Contact:

### Re: Piece weights with regression analysis (in Russian)

brtzsnr wrote:
WinPooh wrote:My article on a polular Russian IT portal:
http://habrahabr.ru/post/254753/

It is in Russian, but I believe the text is quite understandable even without translation.
I must be doing something wrong. For 7442 games at 40/2+0.05 (two seconds for 40 moves plus 0.05 increment) between zurichess and itself I get very strange values. Using Texel's Tuning method I get good values.

Code: Select all

``````./pgnlearn.exe ../../pgn/games.pgn
Games&#58; 7442
Created file&#58; .mat
&#91; 12807 x 5 &#93;
Iter 0&#58; &#91; 0 0 0 0 0 &#93; -> 0.693147
Iter 1000&#58; &#91; 0.173482 0.210955 0.288834 0.391243 0.17849 &#93; -> 0.690838
Iter 2000&#58; &#91; 0.174092 0.212807 0.2914 0.472017 0.187411 &#93; -> 0.69083
Iter 3000&#58; &#91; 0.174207 0.213172 0.29191 0.487982 0.188865 &#93; -> 0.69083
Iter 4000&#58; &#91; 0.17423 0.213245 0.292011 0.49115 0.18915 &#93; -> 0.69083
Iter 5000&#58; &#91; 0.174234 0.213259 0.292031 0.491779 0.189206 &#93; -> 0.69083
Iter 6000&#58; &#91; 0.174235 0.213262 0.292035 0.491904 0.189218 &#93; -> 0.69083
Iter 7000&#58; &#91; 0.174236 0.213263 0.292036 0.491928 0.18922 &#93; -> 0.69083
Iter 8000&#58; &#91; 0.174236 0.213263 0.292036 0.491933 0.18922 &#93; -> 0.69083
Iter 9000&#58; &#91; 0.174236 0.213263 0.292036 0.491934 0.18922 &#93; -> 0.69083
Iter 10000&#58; &#91; 0.174236 0.213263 0.292036 0.491934 0.18922 &#93; -> 0.69083

PIECE VALUES&#58;

Pawn&#58;   100
Knight&#58; 122.399
Bishop&#58; 167.61
Rook&#58;   282.339
Queen&#58;  108.6
Press ENTER to finish
``````
Probably it is due to my gradient solver - it is very simple and straightforward, looks like some local minimum was caught. Another reason can be PGN file - the parser can't handle comments or folded lines of moves.