Recent Alpha zero vs Stockfish 8 match.

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

Moderators: hgm, Rebel, chrisw

chrisw
Posts: 4317
Joined: Tue Apr 03, 2012 4:28 pm

Re: Recent Alpha zero vs Stockfish 8 match.

Post by chrisw »

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.
AZ is based on image scanning, processing and recognition technology, large sections of its code could be directly converted back to doing that again.
Conventional A/B engines are based on relatively simple representations and additions of of human chess heuristics.

AZ is based on the human visual model, visual patterns/interpretations of complexity with depth of layers. Starting solely with the image of a chess board. Leading to: “I am going to do this thing, or I believe this thing, because it works when I did it in the past”. Statistics. Pretty much how humans think about chess or any other board game with visual input, and also how/why they believe things to be true and take decisions in wider world.

A/B does what it is told. It’s knowledge is not self-generated, it’s an implementation of a model that human chess players use to explain chess to low level human chess players. Like if you have an extra rook you will win. Why? Er, because you will. Why? Because experience says an extra rook leads to a win in practice. How does human know that? Because he looked at several examples and that’s the way it is. Human strong players do not add things up, they don’t think in centipawns, they just visually “like” positions, or not. Plus a very small amount of highly guided and creative search, again based on visual patterns.

So yes, A/B and AZ are both chess engines, but one is like a human and the other is a model of what humans try to explain what they do, but actually don’t do.
chrisw
Posts: 4317
Joined: Tue Apr 03, 2012 4:28 pm

Re: Recent Alpha zero vs Stockfish 8 match.

Post by chrisw »

hgm wrote: Mon Dec 31, 2018 11:18 am
corres wrote: Mon Dec 31, 2018 10:24 amBecause 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.
Nonsense. Playing style is just a consequence of the evaluation function. Not of the technical method used to caluclate that function.
Nonsense. First assertion part true but forgets search and initial assumptions. Second assertion is a trivially pointless comment in its obviousness. Third assertion is completely lacking. You forgot entirely to mention the fundamental assumptions made and your comments in this thread, I am afraid to say, are completely bound in one view of the world. Is clear you are trying very hard to fit AZ into A/B paradigm of adding up heuristics.
User avatar
hgm
Posts: 27795
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 »

So you qualify something as 'nonsense' because it is true or trivial, but you'd rather have seen a discussion about something else...

Good to let us know. :lol:
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Recent Alpha zero vs Stockfish 8 match.

Post by corres »

chrisw wrote: Mon Dec 31, 2018 11:19 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.
AZ is based on image scanning, processing and recognition technology, large sections of its code could be directly converted back to doing that again.
Conventional A/B engines are based on relatively simple representations and additions of of human chess heuristics.

AZ is based on the human visual model, visual patterns/interpretations of complexity with depth of layers. Starting solely with the image of a chess board. Leading to: “I am going to do this thing, or I believe this thing, because it works when I did it in the past”. Statistics. Pretty much how humans think about chess or any other board game with visual input, and also how/why they believe things to be true and take decisions in wider world.

A/B does what it is told. It’s knowledge is not self-generated, it’s an implementation of a model that human chess players use to explain chess to low level human chess players. Like if you have an extra rook you will win. Why? Er, because you will. Why? Because experience says an extra rook leads to a win in practice. How does human know that? Because he looked at several examples and that’s the way it is. Human strong players do not add things up, they don’t think in centipawns, they just visually “like” positions, or not. Plus a very small amount of highly guided and creative search, again based on visual patterns.

So yes, A/B and AZ are both chess engines, but one is like a human and the other is a model of what humans try to explain what they do, but actually don’t do.
At last, somebody which who I can agree.
Thanks!
Have a nice New Year's Eve!
Last edited by corres on Mon Dec 31, 2018 1:26 pm, edited 1 time in total.
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Recent Alpha zero vs Stockfish 8 match.

Post by corres »

Nordlandia wrote: Mon Dec 31, 2018 11:08 am Stockfish 8 is an old dog.
Do take care of the dog!
He may bite into you.
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Recent Alpha zero vs Stockfish 8 match.

Post by corres »

hgm wrote: Mon Dec 31, 2018 11:18 am
corres wrote: Mon Dec 31, 2018 10:24 amBecause 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.
Nonsense. Playing style is just a consequence of the evaluation function. Not of the technical method used to caluclate that function.
Every technical method has the own barrier.
So using a technical method we get its barrier and this barrier may cause a different playing style too.
Capisce?
Have a nice New Year's Eve!
User avatar
hgm
Posts: 27795
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 1:00 pmAt last, somebody which who I can agree.
I guess that is what they call "the kiss of death". :lol:
chrisw
Posts: 4317
Joined: Tue Apr 03, 2012 4:28 pm

Re: Recent Alpha zero vs Stockfish 8 match.

Post by chrisw »

hgm wrote: Mon Dec 31, 2018 11:54 am So you qualify something as 'nonsense' because it is true or trivial, but you'd rather have seen a discussion about something else...

Good to let us know. :lol:
No, it's nonsense for reasons I didn't expect you to get. It's like you discuss how you need more horses, with horses bred to eat less fodder, and bigger carts with Henry Ford.
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Recent Alpha zero vs Stockfish 8 match.

Post by corres »

hgm wrote: Mon Dec 31, 2018 3:14 pm
corres wrote: Mon Dec 31, 2018 1:00 pmAt last, somebody which who I can agree.
I guess that is what they call "the kiss of death".
You have a gallows humor.
This is not a nice thing from a liberal.
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Recent Alpha zero vs Stockfish 8 match.

Post by matthewlai »

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.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.