Fast implementation of DeepMind's AlphaZero algorithm in Julia
I&#x27;ve been working on a Python implementation that uses Gradient Boosted Decision Trees (LightGBM&#x2F;Treelite) instead of using a neural network for the value&#x2F;policy models:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;cgreer&#x2F;alpha-zero-boosted" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cgreer&#x2F;alpha-zero-boosted</a><p>It&#x27;s mostly to understand how AlphaZero&amp;Friends work. I&#x27;m also curious about how well a GBDT could do, and if there are self-play techniques that can accelerate training.<p>The nice thing about a GBDT is that, unlike when using a NN, you can do thousands of value&#x2F;policy lookups per second on a single core.  So it should be cheaper to scale self-play and run a lot of self-play experiments (assuming the self-play learnings when using the GBDT model transfer to when you use the more-powerful NN in these environments).<p>If you&#x27;re curious about accelerating self-play training, check out David Wu&#x27;s work (<a href="https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;1902.10565.pdf" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;pdf&#x2F;1902.10565.pdf</a>).  He&#x27;s the creator of KataGo.  I implemented his &quot;Playout Cap Randomization&quot; technique in my implementation above and, sure enough, it&#x27;s much more efficient: <a href="https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;epaKtDY" rel="nofollow">https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;epaKtDY</a>. It seems like it&#x27;s still early days in terms of how efficient self-play training is.