hgm wrote: ↑
Wed Jun 12, 2019 12:27 pm
You cannot seriously have thought the program would have written itself, can you? What should be next to qualify as 'Zero'? Should it also build its own hardware? Just take a scoop of sand from the beach, throw the FIDE manual on top of it, and wait until a Chess-playing machine emerges...
Why not? Perhaps the idea to use Neural Networks in the way Leela is doing would have sounded as ludicrous 40 years ago.
What I suggest is nothing new, it's called "Busy Beavers", and stands as the best method to create the largest numbers ever conceived, so large that it's impossible to compute them, as in, you can't make a program that lists Busy Beaver numbers because they're uncomputable (due to the halting problem; you don't know if a program is stuck on an infinite loop, or eventually will output the large number.)
They use a turing machine to run all possible codes to generate big numbers, and oracle machines to check if those turing machines halt or not.
A true Leela Zero, instead of playing so many chess games, would try to produce source code that when compiled produced a program that was able to play chess. Once this is done, Leela Zero would modify the source code of this program so when compiled a program that plays stronger chess moves is compiled.
You could claim protocols like Winboard or UCI already exist, so it makes no sense to have the thing waste so much time coding those protocols so it can output its moves. I'd claim that it'd suffice for this program to output a legal chess move. Say, if it outputs e2e4, we deem it a valid chess program.
It'd then just need to run against another network that checks for move legality. Leela Zero would very soon learn that moves starting with "Z" or "9" are always rejected, because legal moves always start with a letter a-h (for pawns) or R/N/B/Q/K for pieces. Once it learns to only output legal moves, it'd learn how to play games until completion, and it'd start learning how to improve its results.
Would it learn minimax? Would it learn alpha-beta? Would it learn null moves? Who knows, but the thing would be trying every code combination as a black box, so it could come up with some secret code that allows it to play the best move is most positions, somehow, and because of its nature, it'd be the smallest piece of code that would allow it to do that.
Unfortunately, this "monkey on a type-writer" approach is too slow that it'd take it more than the age of the universe to reach the level of micro-Max, but the fact this approach exists and is worthy of the "Zero" monicker reveals that using "Zero" for what Leela is doing is misleading.
Make someone happy today.