Page 5 of 5

Re: To analysis.sesse.net owner : disable contempt

Posted: Sun Dec 02, 2018 6:02 pm
by syzygy
BeyondCritics wrote: Sun Dec 02, 2018 5:58 pmSo you are referring to the next sentence.
Ok, we are now getting into surreal territory.

I was referring to the sentence immediately after the sentence you quoted. Obvious to me, apparently not obvious to you.

So you don't want to communicate. Fine with me. You have earned my contempt.

Re: To analysis.sesse.net owner : disable contempt

Posted: Sun Dec 02, 2018 6:23 pm
by BeyondCritics
syzygy wrote: Sun Dec 02, 2018 6:02 pm
BeyondCritics wrote: Sun Dec 02, 2018 5:58 pmSo you are referring to the next sentence.
Ok, we are now getting into surreal territory.

I was referring to the sentence immediately after the sentence you quoted. Obvious to me, apparently not obvious to you.

So you don't want to communicate. Fine with me. You have deserved my contempt.
Ok my mistake, i understand what you were referring to now.
But it still makes absolutely no sense. Just pretend for the time being, i am just analyzing a single postion. Then there is no sign switching and no wiggling issue. According to you, i am allowed to subtract the raw contempt value from the root, to get "about" the "objective" score. Many have expressed, that they believe at least something similar. Someone being aware of "tapered eval" should know, that you at most get a lower bound for the "objective" score. I think we have:

Code: Select all

"objective score" + (1/2) "contempt" <= "contempted score" <= "objective score" + "contempt"
Do you see how relevant the implementation is?

Re: To analysis.sesse.net owner : disable contempt

Posted: Sun Dec 02, 2018 7:50 pm
by MikeB
BeyondCritics wrote: Wed Nov 21, 2018 8:12 pm Please can you explain, why setting "Contempt=Both" is so unbearable in analysis mode?
At the very least it relieves us from useless 3-fold repetitions in the pv, which were really a plague, as you might recall.
You can't use it in analysis mode when playing moves back and forth, it pollutes the hash table and it takes much longer to get an accurate score. This is because with "Both" on , the score is different from the white POV as compared to the black POV . You like "Both", that's fine, different strokes for different folks, but for many of us, for the way we use the engine, it's totally useless.

Re: To analysis.sesse.net owner : disable contempt

Posted: Sun Dec 02, 2018 7:56 pm
by BeyondCritics
MikeB wrote: Sun Dec 02, 2018 7:50 pm
BeyondCritics wrote: Wed Nov 21, 2018 8:12 pm Please can you explain, why setting "Contempt=Both" is so unbearable in analysis mode?
At the very least it relieves us from useless 3-fold repetitions in the pv, which were really a plague, as you might recall.
You can't use it in analysis mode when playing moves back and forth, it pollutes the hash table and it takes much longer to get an accurate score. This is because with "Both" on , the score is different from the white POV as compared to the black POV . You like "Both", that's fine, different strokes for different folks, but for many of us, for the way we use the engine, it's totally useless.
I fully agree, it pollutes the hash table and this is likely _the_ serious issue with it. At the time i wrotes this, i wasn't really into the source code, so i just asked.

Re: To analysis.sesse.net owner : disable contempt

Posted: Mon Dec 03, 2018 9:04 pm
by Dann Corbit
There are two different issues at play.

Contempt causes weird scores, especially when the score is close to zero.
There is also the stockfish "sewing machine" effect, which has been partially cured, but sometimes raises it's ugly head.
So I have a setting to turn both of those things off.

This one requires further changes in the source code (which I have described elsewhere):
o["Contempt"] << Option(0, -100, 100);
Also this one:
o["Show Fail High and Fail Low"] << Option(true);
which I used to default to false, but I have turned it back on because it is much more rare today, due to a fix a while back in SF.

I would switch to CFish exclusively, but the logging in CFish is dead code that no longer works and I need the logging for what I like to do.

Re: To analysis.sesse.net owner : disable contempt

Posted: Wed Dec 05, 2018 3:17 am
by JohnS
Dann Corbit wrote: Mon Dec 03, 2018 9:04 pm There are two different issues at play.

Contempt causes weird scores, especially when the score is close to zero.
There is also the stockfish "sewing machine" effect, which has been partially cured, but sometimes raises it's ugly head.
So I have a setting to turn both of those things off.

This one requires further changes in the source code (which I have described elsewhere):
o["Contempt"] << Option(0, -100, 100);
Also this one:
o["Show Fail High and Fail Low"] << Option(true);
which I used to default to false, but I have turned it back on because it is much more rare today, due to a fix a while back in SF.

I would switch to CFish exclusively, but the logging in CFish is dead code that no longer works and I need the logging for what I like to do.
Dann

Are you saying that setting Contempt=0 and Analysis Contempt=Off in Stockfish10 is not enough to produce neutral scores (no white/black bias) in analysis mode?

Thanks.

Re: To analysis.sesse.net owner : disable contempt

Posted: Wed Dec 05, 2018 8:16 pm
by Dann Corbit
JohnS wrote: Wed Dec 05, 2018 3:17 am
Dann Corbit wrote: Mon Dec 03, 2018 9:04 pm There are two different issues at play.

Contempt causes weird scores, especially when the score is close to zero.
There is also the stockfish "sewing machine" effect, which has been partially cured, but sometimes raises it's ugly head.
So I have a setting to turn both of those things off.

This one requires further changes in the source code (which I have described elsewhere):
o["Contempt"] << Option(0, -100, 100);
Also this one:
o["Show Fail High and Fail Low"] << Option(true);
which I used to default to false, but I have turned it back on because it is much more rare today, due to a fix a while back in SF.

I would switch to CFish exclusively, but the logging in CFish is dead code that no longer works and I need the logging for what I like to do.
Dann

Are you saying that setting Contempt=0 and Analysis Contempt=Off in Stockfish10 is not enough to produce neutral scores (no white/black bias) in analysis mode?

Thanks.
Yes.
I have a third setting also in UCI, and you have to make code changes as well.
There is also this one:
o["Dynamic Contempt"] << Option(false);

Code dealing with setting up contempt is here:

Code: Select all

    int ct = int(Options["Contempt"]) * PawnValueEg / 100; // From centipawns

    // In analysis mode, adjust contempt in accordance with user preference
    if (Limits.infinite || Options["UCI_AnalyseMode"])
        ct =  Options["Analysis Contempt"] == "Off"  ? 0
              : Options["Analysis Contempt"] == "Both" ? ct
              : Options["Analysis Contempt"] == "White" && us == BLACK ? -ct
              : Options["Analysis Contempt"] == "Black" && us == WHITE ? -ct
              : ct;

    // In evaluate.cpp the evaluation is from the white point of view
    contempt = (us == WHITE ?  make_score(ct, ct / 2)
                : -make_score(ct, ct / 2));
And more importantly here, where a change to the existing code must be made:

Code: Select all

                // Adjust contempt based on root move's previousScore (dynamic contempt)
                int dct;
                if (Options["Dynamic Contempt"] == false)
                {
                    dct = 0;
                    contempt = Score(0);
                }
                else
                {
                    dct = ct + 88 * previousScore / (abs(previousScore) + 200);
                    contempt = (us == WHITE ?  make_score(dct, dct / 2)
                                : -make_score(dct, dct / 2));
                }