Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What actually is "Book Learning"?

Author: Dann Corbit

Date: 20:08:54 07/08/04

Go up one level in this thread


On July 08, 2004 at 21:58:34, Norm Pollock wrote:

>What exactly does "book learning" do?

It collects statistics about "what happened when we were here."
Suppose that you load a database of chess games, and there is some position like
this:
[D]rnbqkb1r/1p3ppp/p2ppn2/6B1/3NP3/2N5/PPP2PPP/R2QKB1R w KQkq -
In your database, there are 300 games that chose f4 and none choosing any other
move after that.  Of those games, white won 38% and drew 33%.  You decide that
this is good enough so you make the move.  But you end up losing the game.

The simplest thing you could do is to tag the move "don't play this."  But maybe
you were playing a program 500 Elo stronger than you and you were going to lose
no matter what you did.  So another thing you might do is to increment the
losses count for that choice.  If you keep playing it and you keep losing,
eventually it will get a bad score and not get played.

Another thing that might happen is you might play another program that gets into
that position and moves instead Qf3.  That program happens to win.  So you
either update the statistics for choice Qf3 or add it to your database.  If
other opponents keep trying it and winning, eventually it will get the nod.

There are obvious problems with this approach.  For instance, what happens if
you beat some nitwit 30 times with a bad opening.  It will take a very long time
to recover from that.

There are many other things you can store for a book position.  You can score
the depth of your search the last time you analyzed it and what the evaluation
was for it.  You can store recent statistics to see if some hole has recently
been uncovered for a given opening (last 15 games or something).   You can store
the average Elo of the player who makes the move under consideration.  Probably
as many different facts about a move as you can think of could be stored.  You
could store annotations from BCO, MCO, NCO, ECO.  The more data you collect and
the more accurate the data, the better.

>And suppose multiple engines are all using the same book in a tournament, and
>that book learning is on. Won't the book learning of engine A influence the
>opening choice for engine B?

Some contests require that learning be turned off.  Of course, if you do that,
the result is more reporducible.  On the other hand, it won't play like the copy
of the program that you use because it is much smarter to turn it on.

>Wouldn't it be much better for each engine to have its own personal copy of the
>"shared" book?

It depends on what you want to measure.  Perhaps you don't even care about wins
and losses from the tournament, but the actual goal is to fortify a book for the
Orangutan opening by having 10 top engines play against each other with learning
turned on and using a book that forces 1. b4.  In such a case, you want them to
share a book.




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.