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.
There are more possible chess moves (estimated at 10^120 for an average game) than there are atoms in the observable universe (estimated at 10^80). That is to say the number of possible chess moves has 40 more zeros on the end than the number of atoms in the observable universe.
Can you point to some souce showing how modern hardware can work these out easily?
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.
The unknown biases issue has no real solution. In this same example if instead of something simple like snow in the background, it turned out that the photographs of wolves were taken using zoom lenses (since photogs don’t want to get near wild animals) while the dog photos were closeup and the ML was really just training to recognize subtle photographic artifacts caused by the zoom lenses, this would be extremely difficult to detect let alone prove.
The general approach is to use interpretable models where you can understand how the model works and what features it uses to discriminate, but that doesn’t work for all ML approaches (and even when it does our understanding is incomplete.)
So is the example with the dogs/wolves and the example in the OP.
As to how hard to resolve, the dog/wolves one might be quite difficult, but for the example in the OP, it wouldn’t be hard to feed in all images (during training) with randomly chosen backgrounds to remove the model’s ability to draw any conclusions based on background.
However this would probably unearth the next issue. The one where the human graders, who were probably used to create the original training dataset, have their own biases based on race, gender, appearance, etc. This doesn’t even necessarily mean that they were racist/sexist/etc, just that they struggle to detect certain emotions in certain groups of people. The model would then replicate those issues.
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
No, they can’t
There are more possible chess moves (estimated at 10^120 for an average game) than there are atoms in the observable universe (estimated at 10^80). That is to say the number of possible chess moves has 40 more zeros on the end than the number of atoms in the observable universe.
Can you point to some souce showing how modern hardware can work these out easily?
It’s not wrong
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?
I can confirm this. I’m not a wolf expert, or even seen that many wolves really, but I have a dog and I don’t think she’d wear a bonnet.
Hot dog. Not hot dog
While I believe that, it’s an issue with the training data, and not the hardest to resolve
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.
The unknown biases issue has no real solution. In this same example if instead of something simple like snow in the background, it turned out that the photographs of wolves were taken using zoom lenses (since photogs don’t want to get near wild animals) while the dog photos were closeup and the ML was really just training to recognize subtle photographic artifacts caused by the zoom lenses, this would be extremely difficult to detect let alone prove.
Exactly.
The general approach is to use interpretable models where you can understand how the model works and what features it uses to discriminate, but that doesn’t work for all ML approaches (and even when it does our understanding is incomplete.)
So is the example with the dogs/wolves and the example in the OP.
As to how hard to resolve, the dog/wolves one might be quite difficult, but for the example in the OP, it wouldn’t be hard to feed in all images (during training) with randomly chosen backgrounds to remove the model’s ability to draw any conclusions based on background.
However this would probably unearth the next issue. The one where the human graders, who were probably used to create the original training dataset, have their own biases based on race, gender, appearance, etc. This doesn’t even necessarily mean that they were racist/sexist/etc, just that they struggle to detect certain emotions in certain groups of people. The model would then replicate those issues.
I bet ML would also think people with glasses are smarter or some dumb thing like that.
Yes, “Bias Automation” is always an issue with the training data, and it’s always harder to resolve than anyone thinks.
Old data adage. Garbage in, garbage out.
Actually, in this case the data sounds pretty clean.