Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: On clearing book learning?

Author: Robert Hyatt

Date: 11:07:26 01/14/04

Go up one level in this thread


On January 14, 2004 at 12:58:53, Bob Durrett wrote:

>On January 14, 2004 at 12:43:25, Robert Hyatt wrote:
>
>>On January 14, 2004 at 11:32:11, Bob Durrett wrote:
>>
>>>On January 14, 2004 at 09:24:06, Robert Hyatt wrote:
>>>
>>>>On January 14, 2004 at 06:36:38, Chris Taylor wrote:
>>>>
>>>>>Why, what are the for and against?
>>>>>I play mainly auto232; and have quite a lot of games.  As a result, had I not
>>>>>cleared learning, what would this mean.
>>>>
>>>>What will happen is that your book will dry up and go away.  You _must_ lose
>>>>a game with nearly every opening at some point in time, and without some
>>>>caution,
>>>>that will make that line unplayable.  And once it is unplayable, there is no way
>>>>for it to become playable again, without your intervention.
>>>
>>>Perhaps it not is not merely a joke to characterize Crafty's automatic opening
>>>book learning as:  "Snip, snip, snip!"
>>
>>Correct. as well as _any_ program that uses "result learning".  IE Fritz.
>>When it loses, it flags part of that line with "don't ever play again."
>>
>>>
>>>If, instead of outright snipping, the probabilities were merely adjusted by some
>>>small amount then the phenomena you describe might not happen, or at least not
>>>as often.  It seems to be a matter of stability.  If there is no human
>>>intervention then things could go terribly wrong!
>>
>>
>>Crafty does both.  IE it can just learn by playing the game and adjusting the
>>book after it has been out a while, and looking at the scores.  Or it does
>>result learning so that if it wins it will play it again, and if it loses,
>>it will not.
>>
>>You can select either/or/both, but using result learning has the catch-all
>>glitch I mentioned.
>>
>>
>>
>>>
>>>Bob H., in a previous bulletin you provided a "thumbnail sketch" of the criteria
>>>Crafty uses to determine whether or not to "snip."  If I understood it
>>>correctly, you said that the engine monitored the position evaluation scores as
>>>soon as the program was out of the opening book and if the evaluation changed
>>>adversely by a certain amount over the next five or ten moves, then Crafty
>>>snipped.  If so, the final outcome of the game has no impact on book learning in
>>>Crafty. Did I get that right?
>>
>>
>>
>>
>>Partially.  That is one learning mode.  "book learning".  There is another
>>more harsh version called "result learning".  Here, if it wins or loses
>>after playing a particular opening, it will repeat or avoid that line
>>depending on the game result, which is more "violent" than the simple
>>book learning.
>
>Bob H., I dislike your "violent result learning." [Like a killer karate chop]
>
>In the first place, I am a non-violence sort of guy. [Karate is BAD!]  : )

As many know, I had the same experience.  I did it for 25+ years, but about
12 years ago my doctor said "stop the kicking nonsense or get ready for a
complete knee replacement." (this on a knee that was hurt playing high-school
football in 1964 and surgically repaired (or butchered as my current doc
calls 1964 medicine).  So I suppose it is bad in some respects... :)


>
>If the engine has code in it which is capable of monitoring progress of position
>evaluation scores [throughout the game] and if this code processes such
>information, then I see no obvious reason why the final result of the game
>should be a major driver in the decision "to snip or not to snip" ["That is the
>question" Shakespeare].


A point or two.  There are two things you learn if you watch your program
play a complete game.  (1) when you drop out of book, you notice that the
position is favorable, unfavorable, or fairly equal.  How you make that
judgement can vary, you can look at the first search (first move out of
book) or the 5th move out of book, or a combination (as I do in Crafty) of
the first 10 moves out of book.  But from that you might learn that you
really don't want to play the position, because you could come out of book
in a bad position, but your opponent blunders and you still win.

My "book learning" however, does look at what happens after leaving the book,
to see if the program was happy or not.  And it will remember that so that
the next time it will try it again if it was happy, or it might try something
else if it was not so happy, but here the "not so happy" move is not marked
"do not play" it just sinks to the bottom of the list of playable moves and
we try the others first to see if we can improve things.

(2) When the game ends, you now know what that book line leads to against
this opponent at least, and maybe against all opponents.  There is a difference
between getting a superior or inferior book position, and whether you win or
lose the game.  In a match, you _must_ vary if you lost, or you will lose
again.  That's why "result learning" is needed.  This is often called
"aggressive book learning" while the normal book learning in Crafty might be
called "fishing around book learning"..

In crafty, my "result-learning" does not reward wins, but does punish losses
so that they don't get repeated.  It doesn't reward a win because it might have
been a blunder (meat makes mistakes) and repeating might not be wise.




>
>It often happens in real life that games start going horribly wrong long before
>the end of the game.

Certainly, but remember that we are talking about the "computer chess player"
here, which is made up of the opening book and the engine.  If the engine is
deterministic, it is up to the opening book to vary so that we won't play the
same game again and lose it again.



>
>I cannot speak as a 3600 player, of course.  Nevertheless, decisions about
>keeping, modifying, or rejecting opening lines should depend more on what
>happens soon after leaving the opening than, say, on some blunder eighty moves
>later in an endgame.

Again, in the case of Crafty, I do both.  But clearly if I lose, and I play
the _same_ opening again, I am going to lose _again_.  Remember that the
search engine is completely deterministic from that point of view.  You have
to do _something_ or else wrack up a steady stream of losses each time you
play that color with that opening.





>
>At the very least, it seems reasonable to prioritize decisions based on how far
>into the game the detected problem occurs.  If the problem with the opening line
>is suggested by observations/inferences made by the engine early in the game,
>then that should be given higher priority than those made much later in the
>game.  This seems to me to be just "common sense."

Visit my web site and look at the book learning paper.  It explains in much
more detail how Crafty's learning works.



>
>As an engineer trained in Control Theory, I immediately key on anything that
>"smells like" a stability problem.  I hope you recognize and understand that.

Yes, but you are missing the "over-stability" of a computer chess program.
In theory, if you play the same opening against the same opponent, you get
the same result every time.  _something_ has to be varied if the result is a
loss...


>
>Bob D.
>
>
>
>>
>>
>>
>>>
>>>Bob D.
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>There are different guis' and engines all handling this in varied ways.  So, is
>>>>>it possible to gereralise?
>>>>>
>>>>>My PIII 733 has been playing 7 mins games; eng - eng, for about 3 months.  Is
>>>>>there any reason to clear the book learnings?
>>>>
>>>>If you start playing longer time controls, yes...
>>>>
>>>>>
>>>>>Opinions please! Both for and against
>>>>>
>>>>>Chris Taylor



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.