24 points marcusbuffett 22 hours ago 6 comments

marcusbuffett 22 hours ago | parent

Here's a previous post outlining more about how the model works, whereas this post is more about how well it has turned out.

https://mbuffett.com/posts/chess-move-prediction/

throwaway198846 27 minutes ago | parent

> Determining who has control of a square in chess is a pretty interesting problem. Is it the person with the most material aiming at that square? [...] The formula I decided on here was that each piece contributes the inverse of it’s piece value, squared.

This is the most interesting part for me in part because it seems arbitrary.

Back to the recent post: > shapes the trunk; never feeds the policy logits

I didn't really understand that part.

matsemann 1 hour ago | parent

> This also helps the model maintain a more consistent playing style. Sometimes there’s a sacrifice available on the board, through many turns. A human would usually either decide he wants to do it or not, and stick with that decision until something concrete changes. But when I played this bot before adding recency, the bot would be ignoring the tactic for many moves then after an unrelated quiet move, go for it. It felt very alien and off-putting.

From the position history in the previous post. Good point. Same with bishops "sniping". If a bishop is moved to b2, and remains there or 20 moves, it can be "forgotten" and opponent suddenly has a pin or something underprotected. But if I saw the exact same board, but the previous move was moving the bishop to b2, I would be aware of it. That kind of local thinking is of course something I should learn to not do, but at my level (1700-1800 FIDE) it's how humans play.

fps-hero 54 minutes ago | parent

There are some novel ideas in here worth appreciating. The classic “time scramble” is absolutely worth considering, even in top level human play.

It seems strange that even with fairly abundant datasets such as Lichess, that it is still difficult to approximate human strength with a bot.

As a “low strength human”, it’s very easy to see how traditional chess engines fail to emulate humans.

As far as actual calculation look ahead goes, humans aren’t calculating to chess engine depth. How often is a human really considering every possible move to greater than a 3 move depth?

Humans are moving with instinct. We cull the decision tree based on our evaluation of how promising a branch may be, not its objective calculated strength. This is where the chess engines break down.

Humans rely on instinct, pattern recognition, and strategy. None of this translates to a chess engine unless you are a top level player with near perfect instincts and pattern recognition.

My hunch is that for approximately human strength, the lowest ELO human makes moves completely at random, where the highest ELO human with follow the brute forced top lines. The challenge is tweaking the decision tree to match human evaluation of a branch based on skill level, and a second conditional probability of selecting a branch based on the player’s ELO.

The output of the chess engine shouldn’t be deterministic, but probabilistic. History has shown when you take a probabilistic approach to a problem, normally magic falls out. I’m yet to see a probabilistic chess engine.

traceroute66 13 minutes ago | parent

> As a “low strength human”, it’s very easy to see how traditional chess engines fail to emulate humans.

IIRC there have been attempts to introduce human-like behavior like with Shredder which was designed to introduce human-like mistakes.

hyperbolablabla 12 minutes ago | parent

I thought maybe chessbook.com would allow me to just play a normal game against this bot, but I guess not?