I think that it isn’t clear what constitutes “fully understanding” an algorithm.
That seems right.
Another obstacle to full understanding is memory. Suppose your go bot has memorized a huge list of “if you are in such and such situation move here” type rules.
I think there’s reason to believe that SGD doesn’t do exactly this (nets that memorize random data have different learning curves than normal nets iirc?), and better reason to think it’s possible to train a top go bot that doesn’t do this.
There is not in general a way to compute what an algorithm does without running it.
Yes, but luckily you don’t have to do this for all algorithms, just the best go bot. Also as mentioned, I think you probably get to use a computer program for help, as long as you’ve written that computer program.
I’m thinking of humans having some fast special purpose inbuilt pattern recognition, which is nondeterministic and an introspective black box, and a slow general purpose processor. Humans can mentally follow the steps of any algorithm, slowly.
Thus if a human can quickly predict the results of program X, then either there is a program Y based on however the human is thinking that does the same thing as X and takes only a handful of basic algorithmic operations. Or the human is using their pattern matching special purpose hardware. This hardware is nondeterministic, not introspectively accessible, and not really shaped to predict go bots.
Either way, it also bears pointing out that if the human can predict the move a go bot would make, the human is at least as good as the machine.
So you are going to need a computer program for “help” if you want to predict the exact moves. At this stage, you can ask if you really understand how the code works. And aren’t just repeating it by route.
That seems right.
I think there’s reason to believe that SGD doesn’t do exactly this (nets that memorize random data have different learning curves than normal nets iirc?), and better reason to think it’s possible to train a top go bot that doesn’t do this.
Yes, but luckily you don’t have to do this for all algorithms, just the best go bot. Also as mentioned, I think you probably get to use a computer program for help, as long as you’ve written that computer program.
I’m thinking of humans having some fast special purpose inbuilt pattern recognition, which is nondeterministic and an introspective black box, and a slow general purpose processor. Humans can mentally follow the steps of any algorithm, slowly.
Thus if a human can quickly predict the results of program X, then either there is a program Y based on however the human is thinking that does the same thing as X and takes only a handful of basic algorithmic operations. Or the human is using their pattern matching special purpose hardware. This hardware is nondeterministic, not introspectively accessible, and not really shaped to predict go bots.
Either way, it also bears pointing out that if the human can predict the move a go bot would make, the human is at least as good as the machine.
So you are going to need a computer program for “help” if you want to predict the exact moves. At this stage, you can ask if you really understand how the code works. And aren’t just repeating it by route.
I’d also be happy with an inexact description of what the bot will do in response to specified strategies that captured all the relevant details.