On a few different views, understanding the computation done by neural networks is crucial to building neural networks that constitute human-level artificial intelligence that doesn’t destroy all value in the universe. Given that many people are trying to build neural networks that constitute artificial general intelligence, it seems important to understand the computation in cutting-edge neural networks, and we basically do not.
So, how should we go from here to there? One way is to try hard to think about understanding, until you understand understanding well enough to reliably build understandable AGI. But that seems hard and abstract. A better path would be something more concrete.
Therefore, I set this challenge: know everything that the best go bot knows about go. At the moment, the best publicly available bot is KataGo, if you’re at DeepMind or OpenAI and have access to a better go bot, I guess you should use that instead. If you think those bots are too hard to understand, you’re allowed to make your own easier-to-understand bot, as long as it’s the best.
What constitutes success?
- You have to be able to know literally everything that the best go bot that you have access to knows about go.
- It has to be applicable to the current best go bot (or a bot that is essentially as good - e.g. you’re allowed to pick one of the versions of KataGo whose elo is statistically hard-to-distinguish from the best version), not the best go bot as of one year ago.
- That being said, I think you get a ‘silver medal’ if you understand any go bot that was the best at some point from today on.
Why do I think this is a good challenge?
- To understand these bots, you need to understand planning behaviour, not just pick up on various visual detectors.
- In order to solve this challenge, you need to actually understand what it means for models to know something.
- There’s a time limit: your understanding has to keep up with the pace of AI development.
- We already know some things about these bots based on how they play and evaluate positions, but obviously not everything.
- We have some theory about go: e.g. we know that certain symmetries exist, we understand optimal play in the late endgame, we have some neat analysis techniques.
- I would like to play go as well as the best go bot. Or at least to learn some things from it.
Corollaries of success (non-exhaustive):
- You should be able to answer questions like “what will this bot do if someone plays mimic go against it” without actually literally checking that during play. More generally, you should know how the bot will respond to novel counter strategies.
- You should be able to write a computer program anew that plays go just like that go bot, without copying over all the numbers.
Drawbacks of success:
- You might learn how to build a highly intelligent and capable AI in a way that does not require deep learning. In this case, please do not tell the wider world or do it yourself.
- It becomes harder to check if professional human go players are cheating by using AI.
Related work:
- The work on identifying the ‘circuits’ of Inception v1
- The case for aligning narrowly superhuman models
A conversation with Nate Soares on a related topic probably helped inspire this post. Please don’t blame him if it’s dumb tho.
Sorry if this goes a bit funny in places, I've been up all night. We had 4 cop cars and a helicopter taking an interest in the apartment complex I live in last night and I haven't been able to sleep since.
Ok. I think we are on the same page now, which is good. I've had to readjust the parameters of my thinking a bit in order to look at similarities in our writing about our thinking. I consider myself to be a natural skeptic, so I tend to question things first before I find a way to agree with them. I blame my mom for this, so any complaints should be sent to her. :)
I'm a little familiar with CNN's, although I didn't know the exact name. I've previously done a little research into Neural Nets as they relate to Machine Vision, namely just trying to familiarize myself with toy models of what they are, how they function, and a little on training them.
I am/am not surprised they are used for Go playing Ai, but that is a slightly different topic for another time hopefully. As for the meaning of "local patterns", I think of them as a human concept, a 'short cut' of sorts to help humans divide the board up into smaller subsets as you mentioned. I think we naturally see the whole board when we play Go, and it is through training that we begin to see 'local patterns.'
Every move in a physical game, uses the matter of a stone to create meaning to everyone watching. All observers as well as the players are all seeing the same matter, and so the meaning is shared even though some people are trained to see more, and more accurate information about the game.
You cannot see the players brains working unless you put them in fMRI machines or something of that nature, but you can see the judgement of their contemplation in the matter of the placement of a stone on the board. The meaning is a by product of the matter, and vice versa. The meaning and the matter are entangled.
In an instance of a Go playing AI, we can actually 'see' or try ti 'understand' what is going on inside the Ai's ''head", but in in-person tournament play, it still requires a human to finalize the judgement by making it matter through the actual placement of the stone. It would be interesting if a robotic arm, and machine vision system were incorporated so that the AI could finalize it's judgement by placing the stone itself.
Maybe giving it a limited power supply as well, a limitation that it was aware of, so that it had to consider how much power it used to compute each move. How much power do you think Ke Jie used in his matches against DeepMinds AI? Maybe a power consumption comparison would be interesting as well. I think it's only fair to consider all the ways in which human players function when planning competitions between human and AI players. Does the AI walk itself to and from the match? Hmph. I'll see it being a more even match between humans and AI when AI can also relate to the other people before and after the game, and keep up a job to support itself. My own bias.
Back to Local Patterns.
What I was attempting to communicate in the paragraph you quoted, was the idea that the Go playing Ai like AlphaGo, which utilized human games as source material for training purposes, would be biased towards integrating an indirect consideration of concepts like "local patterns", because the humans who played the games constituting the source material did. This type of training would influence the way those AI played, and so interpretation of the way those AI calculated I think could reasonably be assumed to take "local patterns" into consideration, conceptually speaking.
Whereas with AlphaGoZero, and apparently KataGo as well, the training of the AI was not informed by human games, so I think it is safe to assume that those AI don't 'think' about Go in the exact same way humans do. Once again, conceptually speaking.
So in that aspect, I would assume that means that the AI don't see separate phases of a single game unless they were influenced by human intervention at specific intervals, and also would not see differences between scale or pattern, so that distinctions humans make, like local versus whole board patterns wouldn't exist, unless humans intervened to make adjustments based on their human perceptions of what the AI was doing badly or inefficiently or whatever.
Unless we program them to 'think' like we do, I think it's safe to assume they don't 'understand' like we do. The neural nets may allow them to 'think' in a similar way though. These distinctions are new to me in this specific context. I appreciate the time you all are taking in exchanging ideas. Thanks to all taking part in this part of the thread.
I think conceptually, a single game of Go can be considered one big joseki, and given enough time, most local situations become whole board situations. For humans it might take between 15 minutes to an hour or longer for us to see how a whole board 'joseki' develops, but for Neural Nets, they see how many whole games in a second potentially?
Depending on how far a Go playing AI reads into each move - if it runs say 8 variations of an opening move completely to the end of the game to consider which of those moves has the best win rate (which it has already calculated through the training before) , and then repeats that process again for 4 of those moves which seem to have the best winrate, so that each of those 4 potential moves are read with 8 possible variations of each, completely to the end of the game, and so on and so on - a single move the AI wants to make potentially is based on millions of games played internally, in seconds or minutes, before the final move is chosen.
When we consider the meaning of 'local patterns' we have to use the temporal concept of 'moments'. If we consider each move to be a different moment, than a game which has 300 moves consists of 300 separate moments. Each moment may take a different amount of time to resolve into the matter of a stone being placed, or a virtual stone icon appearing, but the spatial placement of the stone is conceptually a whole board concept. I think the concepts of global and local placement are entangled, in the same way space and time are.
So as a trained Go player or observer, I can limit my consideration of the whole board in favor of a subset of the board, however this does not negate the fact that any move I make, even if made in only a 'local consideration' is a whole board move. Every stone on the board matters to the meaning of the game, so the idea of using stones efficiently becomes a concern.
Efficient use of stones is a whole board concept, although in practice, it takes separate sequential temporal moments of the players contemplation of the meaning of the stones, and the finalization of the judgement of the matter of the placement of all the stones on the board, by placing a stone or virtual stone in a specific location.
However, at the end of the game, all the separate instances of the game add up to a whole board pattern, which is accurately judged to provide evidence of the winner. The growth of the patterns is essentially and integrally both a temporal and spatial event, with a common beginning and pretty common end point, even if the winner becomes clear through different pattern development.
The board always starts empty, and the only choices for an outcome are a win/loss or tie game. These are the only options no matter how many moves are played or in what way the matter of the patterns develops.
The more a human plays, the better their 'intuition' about how likely moves are to result in a win, and it is only the fact that we see each placement of the stone as a separate moment which makes any play a 'local play'. The fact you can only play one stone at a time makes every move 'local' by default. Which essentially means every move is both local and global/whole board.
Practically speaking, if the AI's Neural Nets are modeled after the frontal and prefrontal cortex, then yes, I can see how at the very lowest level of calculation, an AI uses spatial relationships which by necessity of the temporal nature of everything including perception and contemplation, would require consideration of 'local patterns'. And I can 'see' how using CNN's to imitate the vision processing centers of the brain in consideration of the patterns of a game Go makes sense.
All of this brings to mind the concept of Consideration. If an AI 'considers' the individual pixels that make up an image, and calculates using all of them, does that mean than humans do the same thing when looking at a digital image?
Do humans consider each individual pixel, or the pattern they make? Im inclined to say humans perceive each pixel, but don't consider them unless that is the explicit exercise, to look at the pixels. And with 4 and 8 k imagery, it becomes really difficult if not impossible to see the pixels unless you zoom in. So I would say that while AI considers every single pixel unless programmed not to, humans don't, we just notice the patterns the pixels make up. Same thing in the real world as we haven't discovered the resolution of real life.
So temporally speaking, I would say that AlpahGoZero probably does consider local patterns, conceptually I would say the whole goal of a Go playing AI is to build up a library of millions of trillions of games in order to weight the nets to maximize global consideration of every single move, and that under those circumstances the 'local patterns' are still global as well. Global and local are entangled quantumly I think.
I get what you mean by 'locally alive' now, and the 'local ko threat thing' is still a bit odd, although I can see how even considering the whole board you can be concerned about a subset of it, even though it relates integrally to the whole board and whole game, independent of human inability to perceive it outside of time.
Do you have more specific descriptions of the layers btw? Any idea about the number of layers?