Fulvio wrote:This is sci-fi. I do not have a 64 core machine but on my pc Stockfish do not sacrifice a Knight for 2 pawns:
1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 5.Bxc6 dxc6 6.O-O Nd7 7.Nbd2 O-O 8.Qe1 f6 9.Nc4 Rf7 10.a4 Bf8 11.Kh1 Nc5 12.a5 Ne6 13.Ncxe5?
Using Stockfish 181117, at move 30 it finds 13. Ncxe5 as best move, and changes at depth 34 to 13. Qc3 with eval = -0.37.
I'd say it is normal.
"Instead of a handcrafted evaluation function and move ordering heuristics, AlphaZero utilises a deep neural network (p,v) = fθ(s) with parameters θ.
This neural network takes the board position s as an input and outputs a vector of move probabilities p with components pa = Pr(a|s) for each action a, and a scalar value v estimating the expected outcome z from position s"
This seems normal to me.
"Instead of an alpha-beta search with domain-specific enhancements, AlphaZero uses a general-purpose Monte-Carlo tree search (MCTS) algorithm. Each search consists of a series of simulated games of self-play that traverse a tree from root to leaf. Each simulation proceeds by selecting in each state a move with low visit count, high move probability and high value" [emphasis mine]
This is interesting. If I understand it correctly, it basically goes deeper only after reaching a high level of hash table hits.
"AlphaZero vs Stockfish: 25 win for AlphaZero, 25 draw, 0 loss (each program was given 1 minute of thinking time per move, strongest skill level using 64 threads and a hash size of 1GB)"
This is sci-fi. I do not have a 64 core machine but on my pc Stockfish do not sacrifice a Knight for 2 pawns:
1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.d3 Bc5 5.Bxc6 dxc6 6.O-O Nd7 7.Nbd2 O-O 8.Qe1 f6 9.Nc4 Rf7 10.a4 Bf8 11.Kh1 Nc5 12.a5 Ne6 13.Ncxe5?
I also wondered why SF took that pawn with its Knight.
jdart wrote:Stockfish does such heavy pruning that it is throwing away most of the nodes in its search trees. But the ones it does search, it searches very deeply. I see a lot of high-level computer games won by tactics or by endgame play that requires deep search. Shannon Type II (selective search) has never worked well in any of the past 5-6 decades. But maybe this effort is showing that eval is more important than has been thought, and search less important.
--Jon
I am not sure how you define eval.
It is easy to make a search inside the evaluation and if the evaluation is slow then I suspect that it does a lot of search inside what you call evaluation.
I do not know what alphazero is doing in the evaluation and some book that describe alphazero's evaluation and explain how to calculate the evaluation in different positions may be good so humans can follow the steps and get the result without a special computer program even if it take some days to calculate the evaluation of a single position may be interesting.
Daniel Shawul wrote:Most of us here suspected that this could happen once Giraffe showed it can beat Stockfish's eval.
Just the fact that the new approch to chess programming worked incredibly well is fantastic even if it didn't beat the best.
Daniel
How do you decide that giraffe's evaluation is better than stockfish?
If the definition is by using fixed number of nodes with the same search function then having a better evaluation than stockfish is easy if you do not care about time.
Evaluation is basically a function that take a position and return a number.
In this case I can define the evaluation of the position to be the result of the search of stockfish when it searches 20 plies forward.
I am sure this evaluation is better than stockfish's evaluation and can beat stockfish's evaluation when you search the same number of nodes(of course you do not count the nodes that you search to calculate the evaluation because they are defined to be part of the evaluation).
Uri
Static evaluation is something done without a lookahead search. Ofcourse, any defintion is right and you can call a 20 plies search evaluation but it doesn't matter as long as improving the eval doesn't bring additional strength (in your example it would be a 21+ plies search )
Evaluation in the AlphaGo Zero and AlphaZero is just an evaluation of a deep NN. This wasn't the case with AlphaGo Lee because there they used a combination of an evaluation of a deep NN and playout (rollouts), which are just random games played from the position.
The upper parts of the tree are stored in memory in a MCTS where the moves are selected again with a NN (policy NN). An alpha-beta with LMR + nullmove is probably close to MCTS.
I think the mistake I made when testing MCTS for chess few years ago was that I did the evalution with only rollouts -- and this is very hard to get right with all the tactics in chess. I think now I would have been better off using a standard static eval and converting the score to 1,0,-1 by a logistic function.
jdart wrote:Stockfish does such heavy pruning that it is throwing away most of the nodes in its search trees. But the ones it does search, it searches very deeply. I see a lot of high-level computer games won by tactics or by endgame play that requires deep search. Shannon Type II (selective search) has never worked well in any of the past 5-6 decades. But maybe this effort is showing that eval is more important than has been thought, and search less important.
--Jon
And quite remarkably it is both, one of its biggest strength but also one of its biggest weakness.
mar wrote:While this is indeed incredible, show me how it beats SF dev with good book and syzygy on equal hardware in a 1000 game match.
Alternatively winning next TCEC should do
Equal budget would be a fairer comparison since AlphaZero and Stockfish take advantage of different types of hardware (GPU vs CPU).
If you look at the scaling graph of thinking time vs performance, it suggests that Stockfish is still ahead at fast time controls but that at longer time controls AlphaZero dominates. It would be interesting to see this graph as a function of money resources.
mar wrote:While this is indeed incredible, show me how it beats SF dev with good book and syzygy on equal hardware in a 1000 game match.
Alternatively winning next TCEC should do
Equal budget would be a fairer comparison since AlphaZero and Stockfish take advantage of different types of hardware (GPU vs CPU).
If you look at the scaling graph of thinking time vs performance, it suggests that Stockfish is still ahead at fast time controls but that at longer time controls AlphaZero dominates. It would be interesting to see this graph as a function of money resources.
That's the difficult thing with AlphaZero. Comparing two different types of hardware is not that easy. One could use a performance/dollar metric or performance/power-usage.
I personally prefer performance/dollar +performance/power-usage
Well, probably they should have give same FLOPS budget to both, that seems like the most fair you can get, given the inefficiency of switching hardware for either side.
Here is a scary thought, though: what would be the performance of AlphaZero if they used more of its training cluster for execution?
I don't know how well it scales on more TPUs and it might need tuning for that but throwing even more processors on it could put it even more even with Stockfish, if not above it.