Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What's Fritz's IQ?

Author: Tom Kerrigan

Date: 17:28:11 12/27/01

Go up one level in this thread


On December 27, 2001 at 05:45:54, Uri Blass wrote:

>On December 27, 2001 at 04:48:03, Tom Kerrigan wrote:
>
>>On December 27, 2001 at 04:20:23, Uri Blass wrote:
>>
>>>On December 27, 2001 at 02:13:34, Tom Kerrigan wrote:
>>>
>>>>On December 26, 2001 at 17:47:12, Christophe Theron wrote:
>>>>
>>>>>I don't think so, but I think at some point the only way to improve will be to
>>>>>incorporate a way for the program to learn without the programmer, to remember
>>>>>its experience and improve on it, and to adapt its play to its opponent.
>>>>
>>>>I don't see this as likely because of the numbers involved.
>>>>
>>>>For a computer to recognize features, it has to loop over them. And there might
>>>>as well be an infinite number of features possible on a chess board, so that
>>>>loop is going to take a while.
>>>>
>>>>The human brain is sloppy and bad at this task, so maybe there's some way to do
>>>>sloppy and bad learning that does better than what we have now, but I wouldn't
>>>>know how to go about that.
>>>>
>>>>-Tom
>>>
>>>I think that there is already a possible way to do a program
>>>that is learning without the programmer.
>>>
>>>Even a program that is using only a piece square table
>>>is using a lot of numbers in the evaluation.
>>
>>Optimizing a set of eval weights is a solved problem in my mind. (See TD
>>learning and KnightCap.)
>>
>>What I was referring to (and Cristophe, too, I believe) is a program that would
>>come up with its own eval terms.
>>
>>-Tom
>
>I do not think that it is not simple to optimize a set of eval
>weights and I believe that the set of eval weights of top
>programs are not optimized.
>
>program may learn based on previous games to improve their
>evaluation if they start with bad evaluation but there is
>a big problem to improve evaluation that is good
>but not close to be perfect(when changing one eval weight
>can usually improve the elo of the program only by 1 elo
>but it is possible to improve the elo of the program
>by 100 elo when you change a lot of eval terms).
>
>The only way to be sure if a change in the eval terms
>is positive or negative is simply by testing every change
>in games.
>
>The problem is that this way is going to take too much time.
>if there is a small change that change the elo of the program
>by 1 elo point then you may need more than 100,000 games
>to get significant results.
>
>I suggested an idea for another way to do it by a test suite.
>There are also other possible ideas.
>
>for example if a program wants to see what is the
>right piece square table for it then it is possible
>to do the following steps:
>
>1)analyze a lot of position from games and remember the score
>for them.
>
>2)calculate the sum of the squares of the differences between
>the static evaluation and the score after search.
>
>3)If a change in the evaluation reduce this number then
>the change is probably a positive change.
>
>I do not think that using one of my suggestions that
>is not playing games is going to be 100% correct but
>I believe that they will produce
>more positive changes than negative changes.

Then what happens is that you have one position in your test suite where there's
a white knight on, say, b8, and it's a mate-in-n for white. As you iterate
through your weight improvement algorthm, the bonus for having a white knight on
b8 will rise by leaps and bounds and you will end up with the stupidest program
in the world.

Optimizing a set of weights is your architypical AI problem that is discussed
for months in any intro to AI class. There are a billion ways to do it, they
have all been researched to death, and it's clear that none of them (with the
possible exception of TD learning) are useful for chess (otherwise somebody
would be using them already).

Plus, it's not clear that the top programs don't have nearly ideal weights
already. I have a hard time believing that you can turn Rebel into a
world-beater by changing its bonus for a rook on an open file by +.1 pawns.

If your program lacks the rook-on-an-open-file term and you run some sort of
weight optimization program, the weights will flail around randomly because the
evaluation function can not "explain" the positions correctly. You might be
winning a position due to rooks controlling open files, but if the only
outstanding feature of the position that your eval function can recognize is
that you have a knight on b8, then you will again create a program that plays
its heart out to put a knight on b8. That's why I don't have much faith in any
sort of automatic weight tuning scheme.

Way more interesting is something that will come up with the
rook-on-an-open-file term by itself. I don't expect that to happen in my
lifetime, though.

-Tom



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.