Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What information to store in book learning?

Author: Peter Fendrich

Date: 14:53:41 01/02/01

Go up one level in this thread


On January 02, 2001 at 16:10:53, Christian Söderström wrote:

>On January 02, 2001 at 15:36:45, Jon Dart wrote:
>
>>On January 02, 2001 at 05:30:07, Christian Söderström wrote:
>>
>>>So I am left with 4 bytes. I want to use these to store statistics
>>>about the move, to support a future book-learning function. But the
>>>thing is I'm not sure what information would be most useful to store!
>>>
>>>I have a couple of ideas obviously but I am very interested to hear
>>>any ideas others might have. 4 bytes is pretty much, but not enough
>>>to get too crazy :)
>>>
>>
>>Arasan implements book learning by keeping a float value (which you
>>can store in 4 bytes) for each position. If it gets a big + score a
>>few moves out of book, it goes back and ups the float value for
>>the last book move and (in decreasing amounts) the preceding book
>>moves. Similarly it decreases the scores if the score a few moves
>>out of book is bad.
>>
>>Crafty does something similar. The idea is that in subsequent
>>games you favor moves with positive learned values and avoid moves with
>>negative learned values.
>>
>>This is certainly not foolproof and not very sophisticated but it's
>>at least a basic form of learning.
>
>Something like that definately works. Isn't a float a bit
>overkill though? (No pun intentended)
>
>Anyway I always figured one of the big points of adding
>learning was that the program would avoid playing openings
>which it plays poorly long-term, not just those that result
>in bad positions a few moves out of book. For instance,
>Mint often plays the french with black now, and does very
>poorly (especially against humans), however it doesn't
>understand that it's doing badly (and in fact it might
>objectively be fine) until it sees a material-winning
>or mating attack 30 moves in the game.
>
>So isn't it possible to supplement your idea by also
>learning from the end-result of a game?
>
>- Christian
>
>>--Jon

That's what I am doing.
Very shortly:
I have a book file and a "post" book file. The first one is build from
pgn-files. The latter one is build by Terra itself when saving the 10 or so
first moves after leaving the book. The game result is affecting the values for
all the moves used from the book and Postbook.
I combine this with a more complex logic for Postbook that backs up part of the
evaluation a couple of plies upwards in the played line. The back up value is
decreased for each upward step.
The last complex part is not as useful as it's beautiful!
It's far to sofisticated. I have to clear the learning completely from time to
time anyway. New releases plays different.

Two parameters to consider is the rating of your opponent and the time settings
(at least when backing up evaluation).
For example when Kasparov outplays Mint (if he's lucky of course...) 10 games in
a row Mint might consider 1.e4 and 1.d4 as seriously bad moves and never try
them again. It's time to clear the learning again ... :-)

//Peter




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.