top of page


Detecting Engine Usage in Chess

Calvin Pozderac, Philip Barron, Philip Barron, Nathaniel Tamminga, Dushyanth Sirivolu


When then world champion Magnus Carlsen lost to Niemann in a surprise upset, Magnus accused his opponent of cheating. Were such accusations well-founded?
The project: train a neural network to distinguish between human chess and engine chess. Techniques here will probably come from generative adversarial networks. For data sets: there's a couple open-source chess engines, like stockfish or leela chess zero. For human games, lichess regularly releases standard rated games for each month. (If we could find in-person high level tournament play, that'd be even better, as it's harder to cheat.) We could also add the elo of the players as input--it's probably easier to tell when a novice player is cheating using an engine than a grandmaster. The end goal would be to get something online, so that anyone can upload a chess game and see the output.
If this first idea turns out to be infeasible, we could instead use elo as output: given a full 2-player game, estimate the elo of each player. Flagging "suspiciously good" moves is another possibility.

Screen Shot 2022-06-03 at 11.31.35 AM.png
github URL
bottom of page