Reminds me of an early application of AI where scientists were training an AI to tell the difference between a wolf and a dog. It got really good at it in the training data, but it wasn’t working correctly in actual application. So they got the AI to give them a heatmap of which pixels it was using more than any other to determine if a canine is a dog or a wolf and they discovered that the AI wasn’t even looking at the animal, it was looking at the surrounding environment. If there was snow on the ground, it said “wolf”, otherwise it said “dog”.
Early chess engine that used AI, were trained by games of GMs, and the engine would go out of its way to sacrifice the queen, because when GMs do it, it’s comes with a victory.
You don’t use it for the rule-set and allowable moves, but to score board positions.
For a chess computer calculating all possible moves until the end of the game is not possible in the given time, because the number of potential moves grows exponentially with each further move. So you need to look at a few, and try to reject bad ones early, so that you only calculate further along promising paths.
So you need to be able to say what is a better board position and what is a worse one. It’s complex to determine - in general - whether a position is better than another. Of course it is, otherwise everyone would just play the “good” positions, and chess would be boring like solved games e.g. Tic-Tac-Toe.
Now to have your chess computer estimate board positions you can construct tons of rules and heuristics with expert knowledge to hopefully assign sensible values to positions. People do this. But you can also hope that there is some machine learnable patterns in the data that you can discover by feeding historical games and the information on who won into an ML model. People do this too. I think both are fair approaches in this instance.
All possible moves one step from a given position sure.
But if you then take all possible resulting positions and calculate all moves from there, and then take all possible resulting positions after that second move and calculate all possible third moves from there, and so on, then the possibilities explode so much in number that you can’t calculate them anymore. That’s the exponential part I was refering to.
You can try and estimate them roughly, let’s say you’re somewhere in the middle of the game, there are 12 units of each side still alive. About half are pawns so we take 1.2 possible moves for them, for the others, well let’s say around 8, thats a bit much for horses and the king on average, but probably a bit low for other units. So 6 times 8 and 6 times 1.2, lets call it 55 possibilities. So the first move there are 55 possible positions, for the second you have to consider all of them and their new possibilitues so there are 55 times 55 or 3025, for the third thats 166375, then 9.15 million, 500 million, 27.6 billion, 1.5 trillion etc. That last one was only 7 moves in the future. Most games won’t be finished by then from a given position, so you either need a scoring function or you’re running out of time.
That’s funny because if I was trying to tell the difference between a wolf and a dog I would look for ‘is it in the woods?’ and ‘how big is it relative to what’s around it?’.
Maybe not the hardest, but still challenging. Unknown biases in training data are a challenge in any experimental design. Opaque ML frequently makes them more challenging to discover.
Reminds me of an early application of AI where scientists were training an AI to tell the difference between a wolf and a dog. It got really good at it in the training data, but it wasn’t working correctly in actual application. So they got the AI to give them a heatmap of which pixels it was using more than any other to determine if a canine is a dog or a wolf and they discovered that the AI wasn’t even looking at the animal, it was looking at the surrounding environment. If there was snow on the ground, it said “wolf”, otherwise it said “dog”.
Early chess engine that used AI, were trained by games of GMs, and the engine would go out of its way to sacrifice the queen, because when GMs do it, it’s comes with a victory.
Why would you use AI for chess?
You don’t use it for the rule-set and allowable moves, but to score board positions.
For a chess computer calculating all possible moves until the end of the game is not possible in the given time, because the number of potential moves grows exponentially with each further move. So you need to look at a few, and try to reject bad ones early, so that you only calculate further along promising paths.
So you need to be able to say what is a better board position and what is a worse one. It’s complex to determine - in general - whether a position is better than another. Of course it is, otherwise everyone would just play the “good” positions, and chess would be boring like solved games e.g. Tic-Tac-Toe.
Now to have your chess computer estimate board positions you can construct tons of rules and heuristics with expert knowledge to hopefully assign sensible values to positions. People do this. But you can also hope that there is some machine learnable patterns in the data that you can discover by feeding historical games and the information on who won into an ML model. People do this too. I think both are fair approaches in this instance.
You can calculate all possible moves in milliseconds on any silicone these dsys
All possible moves one step from a given position sure.
But if you then take all possible resulting positions and calculate all moves from there, and then take all possible resulting positions after that second move and calculate all possible third moves from there, and so on, then the possibilities explode so much in number that you can’t calculate them anymore. That’s the exponential part I was refering to.
You can try and estimate them roughly, let’s say you’re somewhere in the middle of the game, there are 12 units of each side still alive. About half are pawns so we take 1.2 possible moves for them, for the others, well let’s say around 8, thats a bit much for horses and the king on average, but probably a bit low for other units. So 6 times 8 and 6 times 1.2, lets call it 55 possibilities. So the first move there are 55 possible positions, for the second you have to consider all of them and their new possibilitues so there are 55 times 55 or 3025, for the third thats 166375, then 9.15 million, 500 million, 27.6 billion, 1.5 trillion etc. That last one was only 7 moves in the future. Most games won’t be finished by then from a given position, so you either need a scoring function or you’re running out of time.
Yep, those are the moves that can all be easily calculated very quickly on modern hardware
That’s funny because if I was trying to tell the difference between a wolf and a dog I would look for ‘is it in the woods?’ and ‘how big is it relative to what’s around it?’.
What about telling the difference between a wolf and grandmother?
Look for a bonnet. Wolves don’t wear bonnets.
Yeah, that’s a grandmother, so what?
While I believe that, it’s an issue with the training data, and not the hardest to resolve
Yes, “Bias Automation” is always an issue with the training data, and it’s always harder to resolve than anyone thinks.
Maybe not the hardest, but still challenging. Unknown biases in training data are a challenge in any experimental design. Opaque ML frequently makes them more challenging to discover.