towforce wrote: ↑Fri Apr 14, 2023 10:08 pm
[...]
Regarding a knowledge graph: it's basically a good idea. How are you going to find the best vertex on this graph, though? To put it another way, if you're at a given vertex, how are you going to decide which edge to travel along to get to the next vertex?
[...]
I am yet not sure, but I have it on my project list, "Theta", issue is RAM, would need a lot of it, and I have the idea to use RDF/SPARQL as graph database, project is planned for some distant future... https://en.wikipedia.org/wiki/Resource_ ... _Framework
--
Srdja
I was pondering states, and I came up with a way to use a knowledge graph to do something characteristically human - come up with a plan!
In bare outline form:
* Each vertex on the graph represents a state (something like "a type of position")
* Nearby vertices are states that can be reached from the current state (obviously this is a directed graph: just because you can go from state A to state B doesn't necessarily mean you can go from state B to state A)
* your aim is to get from the current state to a connected state (or find a viable path to a nearby connected state) which is better than the current state
How does that sound?
Human chess is partly about tactics and strategy, but mostly about memory
towforce wrote: ↑Mon May 08, 2023 1:04 pm
I was pondering states, and I came up with a way to use a knowledge graph to do something characteristically human - come up with a plan!
[...]
As mentioned, I have this on my todo list for later, project Theta, I planned to use RDF/SPARQL to encode/query chess knowledge patterns of given positions, but did yet not made up how to implement the game tree search...as you mentioned (as far as I got it), you could parse the game tree and come up with rules how to reach certain positions in the tree, as mentioned, this would be analog to a multidimensional cellular automaton.
hgm wrote: ↑Fri Apr 14, 2023 10:15 pm
BTW, using a 'policy network' in an AB engine should not be very difficult either. I think the main reason AlphaZero preferred to use MCTS rather than AB was that in the latter case it would be less obvious how to train such a network. But I guess that when you use a minimax search in the training, and then analyze the tree to order all moves that would have been able to produce a beta cutoff by the number of nodes it would have taken to search them through alpha-beta, you could train a NN with that info.
I don't see why an AB engine couldn't just use the exact same style of deep neural networks found in PUCT engines like Leela/AlphaZero. A DNN policy can be used in move ordering. And instead of calling a quiescence search at depth == 0, return the DNN evaluation instead.
Because there is no hardware allowing us to evalute the Lc0-type neural networks without latency. PUCT can deal with latency, AB not.
hgm wrote: ↑Fri Apr 14, 2023 10:15 pm
BTW, using a 'policy network' in an AB engine should not be very difficult either. I think the main reason AlphaZero preferred to use MCTS rather than AB was that in the latter case it would be less obvious how to train such a network. But I guess that when you use a minimax search in the training, and then analyze the tree to order all moves that would have been able to produce a beta cutoff by the number of nodes it would have taken to search them through alpha-beta, you could train a NN with that info.
I don't see why an AB engine couldn't just use the exact same style of deep neural networks found in PUCT engines like Leela/AlphaZero. A DNN policy can be used in move ordering. And instead of calling a quiescence search at depth == 0, return the DNN evaluation instead.
Because there is no hardware allowing us to evalute the Lc0-type neural networks without latency. PUCT can deal with latency, AB not.
Latency just means the NPS won't be that high. But the idea should still work.
hgm wrote: ↑Fri Apr 14, 2023 10:15 pm
BTW, using a 'policy network' in an AB engine should not be very difficult either. I think the main reason AlphaZero preferred to use MCTS rather than AB was that in the latter case it would be less obvious how to train such a network. But I guess that when you use a minimax search in the training, and then analyze the tree to order all moves that would have been able to produce a beta cutoff by the number of nodes it would have taken to search them through alpha-beta, you could train a NN with that info.
I don't see why an AB engine couldn't just use the exact same style of deep neural networks found in PUCT engines like Leela/AlphaZero. A DNN policy can be used in move ordering. And instead of calling a quiescence search at depth == 0, return the DNN evaluation instead.
Because there is no hardware allowing us to evalute the Lc0-type neural networks without latency. PUCT can deal with latency, AB not.
Latency just means the NPS won't be that high. But the idea should still work.
hgm wrote: ↑Fri Apr 14, 2023 10:15 pm
BTW, using a 'policy network' in an AB engine should not be very difficult either. I think the main reason AlphaZero preferred to use MCTS rather than AB was that in the latter case it would be less obvious how to train such a network. But I guess that when you use a minimax search in the training, and then analyze the tree to order all moves that would have been able to produce a beta cutoff by the number of nodes it would have taken to search them through alpha-beta, you could train a NN with that info.
I don't see why an AB engine couldn't just use the exact same style of deep neural networks found in PUCT engines like Leela/AlphaZero. A DNN policy can be used in move ordering. And instead of calling a quiescence search at depth == 0, return the DNN evaluation instead.
Because there is no hardware allowing us to evalute the Lc0-type neural networks without latency. PUCT can deal with latency, AB not.
Latency just means the NPS won't be that high. But the idea should still work.
It won't play well.
Lc0 GPU playing with 1 thread, minibatch size 1, and no prefetch still plays incredibly strong. In this situation, is there any advantage to using PUCT over AB, for latency reasons or otherwise?
My original statement only claimed using a Lc0-type net in AB was possible, and nothing about the strength of such an engine. However, I do believe it would be at least at superhuman level, and maybe even be able to beat SF8. Whether or not that qualifies as playing "well" depends on your definition of "well" I guess.
I am sure other people tried, but you have to invest compute cycles and loose nps resp. search depth resp. Elo again.
Just quitting QS won't work (horizon-effect), you have a (positional) predicator and then have to verify the predication via (tactical) AB search+QS or MCTS playouts.
alvinypeng wrote: ↑Wed May 17, 2023 2:51 pmMy original statement only claimed using a Lc0-type net in AB was possible, and nothing about the strength of such an engine. However, I do believe it would be at least at superhuman level, and maybe even be able to beat SF8. Whether or not that qualifies as playing "well" depends on your definition of "well" I guess.
I told you the reason why it isn't done. I don't know why you are arguing.