Author: José Carlos
Date: 07:43:01 04/30/04
Go up one level in this thread
On April 30, 2004 at 08:54:55, Anthony Cozzie wrote: >On April 30, 2004 at 07:26:55, rasjid chan wrote: > >>On April 30, 2004 at 06:59:15, Uri Blass wrote: >> >>>On April 30, 2004 at 04:27:23, rasjid chan wrote: >>> >>>> >>>>The Secret of the Commercial Chess Programmers IMNSHO. >>>> >>>>Omid mentioned Falcon reached 2600 after improvements in search and >>>>now he runs out of ideas to push search further and had to try >>>>to improve on his eval. Again eval would reach a barrier as most >>>>programs with 2600 has a very good eval and the eval curve again >>>>shows diminishing returns for code-increase / additional factors. >>>>The only way is to be able to have a vertical upward displacement >>>>for this eval-curve which is basically logarithmic - it may be +100 elo >>>>by just using the correctly tuned weights. >>>> >>>>The Deep Blue team mentioned they used MLR and since it can be done, >>>>it means it should not be too difficult as MLR itself is not very high >>>>mathematics. I used MLR before and has a not-yet-complete idea of using >>>>it to tune weights. >>>> >>>>The requirement is we need a collection of say 100 drawn game-files, the >>>>more the bettter as reading and applying eval() at all nodes for a 1000 >>>>games files may just take a second more. >>>> >>>>MLR tuning is logically based and it should not be too bad, at least >>>>we have some indications, but again we may not know it could be the BEST >>>>way to do weights tuning. Also it has a very high return if it works. It is >>>>a one time investment and once the tuner is written and we keep the >>>>100 game-files, it could be re-used anytime we change our eval(), we only >>>>need 10 mins to do a rerun and we have all the weights re-tuned and we >>>>never need to worry too much what weights we assign when we add a >>>>new factor. >>>> >>>>The following is what I arrive at on first thought, it may be triple dumb! >>>> >>>>MLR is about finding a set of constants c0,c1,c2... for >>>> >>>>Y = c0 + c1*X1 + c2*X2 + ..... >>>> >>>>As I have not think it through completely, others may be able to >>>>complete the picture and let's see if it can be done easily. >>>> >>>>MLR requires us to collect a set of table data : >>>> >>>>per row: >>>> >>>>Y , X1, X2, X3,...., Xn >>>> >>>>a row/more is added to the table after applying our tuner to list thru the >>>>game-files and making the moves and apply score = eval() to the >>>>"neutral nodes". >>>> >>>>scheme 1:- >>>>Y is the should-be-near-zero score. >>>>Xn is our current weights used. >>>> >>>>scheme 2 - a "dumb" improvement :- >>>>Instead of using Xn we use del_Xn,the change in Xn alone(when only Xn is allowed >>>>to change) needed to make score == zero. >>>>After computing all del_Xn, we use >>>>Y = score = eval() using Xn + del_Xn instead of Xn. >>>>This may be better as weights not activated in certain nodes >>>>will have del_Xn = 0; >>>>Is this scheme ok ? >>>> >>>>Also in general for MLR, Y and Xn in should be scaled using a >>>>weighted average. Most common weights may vary about a certain mean value. >>>>Nodes should also be weighted, the nodes that eval() to far-from- >>>>zero are given less emphasis/weights/rows as the games are supposed to >>>>be drawn games. >>>> >>>>After running MLR, we obtain solution to >>>>c0,c1,c2... etc and this enables us to compute the optimal change >>>>needed to our weights. The correlation coefficient R2 from MLR may indicate >>>>how reliable the proposed changes is, or it may throw some lights >>>>on the quality of our eval(), etc. >>>> >>>>Also recording how often a factor is activated on average can let us decide >>>>if it may be discarded or used with a more conservative weight. >>>>MLR may also give us other indications when we may know certain factors >>>>are not important/or unstable when the tuned weights indicate an >>>>exceptionally high change needed, ie the weight or the factor itself may be >>>>suspect and should to be discarded. >>>> >>>>Should I do it now when my program is at 1900 ? >>>> >>>>Rasjid >>> >>>No >>> >>>I believe that Crafty never used MPL and it is clearly better than 1900. >>> >> >> >>>I also believe that the secret of Shredder is mainly better search than Crafty >>>and not better evaluation(I do not say that it does not have better evaluation >>>but I guess that most of the rating difference between Crafty and Shredder is >>>because of the fact that Shredder has a better search). >> >>Not much dispute. But we know one thing. After a commercial chess program >>reaches ELO 2600+, you either tell the author he's redundant or we can >>imagine he goes all way to to seek even little improvements... like someone >>testing with 2/3 computers running for days/weeks(months ???). >> >>Top programs must be top in BOTH SEARCH AND EVALUATION - no short cut >>as none have suggested that one can completely replace the need for the >>other, or even that we can have one very good and the other plain and >>simple. >> >>But if my guess is correct, and if MLR tuning works good, then it is >>HIGHLY BENEFICIAL as a one time investment. Commercial chess programmers >>have been on their programs for years and my guess is they should have >>tried MLR tuning, at least to see if it is reliable. >> >>I see MLR tuning may not be difficult and I definetly would spend a few >>weeks to test if my program ever reach ELO2500 >> >>Rasjid > >Don't feel bad about Uri. He begins all his posts with "no" :) No. I can point at least one message where Uri didn't begin with "no", so your statement is false. :) José C. >BTW, if your program is rated 1900, you almost certainly have bugs. IMO >2200-2300 ICC rating is the "more-or-less-bugfree" zone. That is with a basic >eval, searching 9-10 ply with null move, PVS, killers, history, transposition >table, etc. > >anthony > >>> >>> >>>Uri
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.