Recent Alpha zero vs Stockfish 8 match.

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Recent Alpha zero vs Stockfish 8 match.

Post by hgm »

corres wrote: Mon Dec 31, 2018 7:37 pmYou have a gallows humor.
This is not a nice thing from a liberal.
So you are delusional about my political inclination as well...
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Recent Alpha zero vs Stockfish 8 match.

Post by corres »

matthewlai wrote: Tue Jan 01, 2019 3:47 am
corres wrote: Mon Dec 31, 2018 10:24 am
matthewlai wrote: Mon Dec 31, 2018 7:29 am First some terminology: a value function is a function that predicts the outcome of the game given an input state. A policy function is a function that predicts the best move given a state. They are both necessary in both alpha-beta and MCTS, but that's more a practical detail than theoretical. Theoretically, if you have a perfect value function, you can trivially construct a perfect policy function just by calling the value function on all possible child states, and pick the move where the child has highest value.

In a traditional engine, the value function is what we usually call the evaluation function in computer chess (value function is the more common name in machine learning). The policy function is the move ordering (hash move, killers, SEE, history heuristics, etc).

In a NN-based engine (at least ones modelled after AlphaZero), both are provided by a NN.

So yes, the NN predicts an ordering (with a bit more information in the form of a probability distribution), just like how the hand-crafted policy function predicts a move given a state. Neither memorize positions. They are both designed or trained to predict moves that look statistically more likely to be best move for the position.
I think seeing the things from properly high near everything seems the same.
Every program what is proper to play chess must contain the same units: representation of the chess table, a move generator, a position evaluator, a searcher for best position/move and an interface and some auxiliary unit.
So from the viewpoint of the game philosophy or from the game theory there is no fundamental difference between an AB engine and an NN engine. But with theories we can not make working any machines. In practice always there are the machines at first and when the machines are ready ones make to them the theories.
Moreover the behavior of a machine is determined by the technical realization of that machine and not by the game theory made for that type of machines.
Because there is important difference between not only the technical realization of an AB engine and an NN engine but between the playing style of an AB engine and an NN engine we can not speak about the two type of chess engine that they are the same technically.
Not sure what you are trying to say. Yes, low level stuff is important. I have written 3 engines from the ground up myself (1 conventional, 1 hybrid, and AZ). You need good theoretical foundation before tackling practical issues.
I think if one want to write his own chess program at first he must be a good programmer.
Second he ought to know the actual level of the used hardware and technique of programming what it suit to chess engines.
Third he should know well the working and the architecture of other chess engines.
Fourth he needs big capacity of hardware to make tests during developing.
And it is not a bad thing if he understand how to play chess...
Naturally if somebody is the head of a developer team for him enough to know the theory of the chess engines
because his colleagues solves the practical problems.
If he want to construct a new type of chess engine like an NN -based engine he ought to know well the NN technique too and he needs good power of phantasy as well.