Git Product home page Git Product logo

Comments (4)

lightvector avatar lightvector commented on July 16, 2024 1

Suppose that move A has 1000 visits but move B only has 1 visit, but the pattern bonus is configured so that move A is extremely penalized and should barely be searched at all and move B should get a huge bonus.

If we don't clear the search tree, then even after updating the utilities, it will still be the case that move A has 1000 visits and B has only 1 visit, and the evaluation of the parent will incorrectly be biased by the heavily penalized evaluation of A, because A has a lot more visits. It will take at least 999 more visits for B to catch up and become the most visited move.

If we clear the search tree, then when redo the search, instead B will be preferred from the very start and won't have to do a lot of visits to catch up.

from katago.

lightvector avatar lightvector commented on July 16, 2024

KataGo only runs new playouts after updating stats. The word "would" refers to the fact that we are choosing to clear the search in this case rather than updating stats, i.e. we would update all the stats (before running playouts), except that we entirely clear the search tree instead.

from katago.

sbbdms avatar sbbdms commented on July 16, 2024

Thanks for your answer! However sorry that I forgot to mention that I am not only confused by "would" but also the sentence after it:

but the problem is the playout distribution will still be matching the old probabilities without a lot of new search, so clearing ensures a better distribution.

I notice that getPatternBonus() is called when updating the stats of the nodes:

utilityAvg += getPatternBonus(node.patternBonusHash,getOpp(node.nextPla));

If all the stats would be updated before a playout is run, including the avoidRepeatedPatternUtility which would be updated into the utility during the update, why the playout distribution is considered to match the old probabilities without a lot of new search? This is the reason why I wrongly thought that updating stats and running new playouts would do simultaneously.

from katago.

sbbdms avatar sbbdms commented on July 16, 2024

Thanks again! It's a lesson to me that visits/weights would affect the playout distribution...

from katago.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.