Lc0 51010

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

Moderators: hgm, Rebel, chrisw

Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Lc0 51010

Post by Uri Blass »

Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: Lc0 51010

Post by chrisw »

Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
Zero neural net has a policy net wih 4096 outputs (64 origin squares x 64 destination squares), well, the 4096 is squashed down a bit, but basically that’s the idea.

The network inputs see the chess board and lights up, to greater or lesser extent, the 4096 outputs. The output lit up the most (obviously filtered for legal move validity) is the chosen move. At “nodes=0”.
There is no look-ahead in the sense you describe. It’s a kind of “raw positional” intuition. Only it isn’t, it’s just generalised statistically what generally statistically works. Sometimes it doesn’t, the same type of networks in visual recognition can tell you sometimes with 99% certainty that a mouse is a cat.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: Lc0 51010

Post by lkaufman »

Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
I think that you would prefer to call the policy network move an N node search, where N is the number of legal moves, since all of these moves have been given a probability. But the actual node reached by each move has not been visited, so technically I think they are correct. But it's not an important distinction; whatever you call the policy network move, it is the computer equivalent to a human judging each legal move without actually looking at the resultant position. I think that calling it a one-ply search, which works fine in the Fritz GUI, is a good name. Whatever you call it, I find it amazing that it can play on the level of a 2700+ playing blitz or perhaps a 2200 playing standard chess. It will surely play blunders or silly moves sometimes, but apparently not as often as even Elite GMs do in blitz.
Komodo rules!
Raphexon
Posts: 476
Joined: Sun Mar 17, 2019 12:00 pm
Full name: Henk Drost

Re: Lc0 51010

Post by Raphexon »

lkaufman wrote: Wed Apr 03, 2019 3:05 am
Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
I think that you would prefer to call the policy network move an N node search, where N is the number of legal moves, since all of these moves have been given a probability. But the actual node reached by each move has not been visited, so technically I think they are correct. But it's not an important distinction; whatever you call the policy network move, it is the computer equivalent to a human judging each legal move without actually looking at the resultant position. I think that calling it a one-ply search, which works fine in the Fritz GUI, is a good name. Whatever you call it, I find it amazing that it can play on the level of a 2700+ playing blitz or perhaps a 2200 playing standard chess. It will surely play blunders or silly moves sometimes, but apparently not as often as even Elite GMs do in blitz.
In Blitz a computer always has the added advantage of instant moves + reaction time.
Reaction time is going to cut at the very least 8 seconds in a 40 move game.
Then you still have to move the pieces.
Engines don't have to worry about the clock like humans have to. (When playing Bullet or Blitz)
crem
Posts: 177
Joined: Wed May 23, 2018 9:29 pm

Re: Lc0 51010

Post by crem »

lkaufman wrote: Wed Apr 03, 2019 3:05 am I think that you would prefer to call the policy network move an N node search, where N is the number of legal moves, since all of these moves have been given a probability. But the actual node reached by each move has not been visited, so technically I think they are correct.
Policy head performs roughly the same role as move sorting in A/B search.
And value head role is roughly the same as eval function.

Unless you do the same for move sorting phase in A/B (picked which move to visit fist => also include them into node count as you compared with them during sorting), it seems wrong to call picking a move with highest prior an N node search.
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Lc0 51010

Post by Uri Blass »

chrisw wrote: Tue Apr 02, 2019 11:32 pm
Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
Zero neural net has a policy net wih 4096 outputs (64 origin squares x 64 destination squares), well, the 4096 is squashed down a bit, but basically that’s the idea.

The network inputs see the chess board and lights up, to greater or lesser extent, the 4096 outputs. The output lit up the most (obviously filtered for legal move validity) is the chosen move. At “nodes=0”.
There is no look-ahead in the sense you describe. It’s a kind of “raw positional” intuition. Only it isn’t, it’s just generalised statistically what generally statistically works. Sometimes it doesn’t, the same type of networks in visual recognition can tell you sometimes with 99% certainty that a mouse is a cat.
1)Suppose a human have a move that make a threat to capture a piece and he know that he has a threat at the time of making the move.
The human practically search some line like 2.Nf3 null 3.Nxe5 and this line is 3 nodes if you consider null move to be a node.
I am sure all humans including top GM's do it regardless of the time control

2)Note that usually alpha-beta engine does not search 2.Nf3 null 3.Nxe5 in 1 ply search(because they have no threat extension).
I do not know exactly what lc0 does but it certainly cannot play good moves without using the board position and doing a search even if it does not call the search nodes.

How do you know that there is a threat against a piece without a search?
It can be inside the evaluation but in this case the evaluation does a search.
User avatar
mclane
Posts: 18748
Joined: Thu Mar 09, 2006 6:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub

Re: Lc0 51010

Post by mclane »

Intelligent programs see threads, mates, forks, etc. Without search in the evaluation function.
Stupid programs rely on search.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: Lc0 51010

Post by chrisw »

Uri Blass wrote: Wed Apr 03, 2019 11:30 am
chrisw wrote: Tue Apr 02, 2019 11:32 pm
Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
Zero neural net has a policy net wih 4096 outputs (64 origin squares x 64 destination squares), well, the 4096 is squashed down a bit, but basically that’s the idea.

The network inputs see the chess board and lights up, to greater or lesser extent, the 4096 outputs. The output lit up the most (obviously filtered for legal move validity) is the chosen move. At “nodes=0”.
There is no look-ahead in the sense you describe. It’s a kind of “raw positional” intuition. Only it isn’t, it’s just generalised statistically what generally statistically works. Sometimes it doesn’t, the same type of networks in visual recognition can tell you sometimes with 99% certainty that a mouse is a cat.
1)Suppose a human have a move that make a threat to capture a piece and he know that he has a threat at the time of making the move.
The human practically search some line like 2.Nf3 null 3.Nxe5 and this line is 3 nodes if you consider null move to be a node.
I am sure all humans including top GM's do it regardless of the time control

2)Note that usually alpha-beta engine does not search 2.Nf3 null 3.Nxe5 in 1 ply search(because they have no threat extension).
I do not know exactly what lc0 does but it certainly cannot play good moves without using the board position and doing a search even if it does not call the search nodes.

How do you know that there is a threat against a piece without a search?
It can be inside the evaluation but in this case the evaluation does a search.
LC0 engine does have a search, but we are discussing here the outputs of the neural network itself without search (you can get LC0 to do this with the command nodes=0).

Some people are claiming that the network output without search is 2400 or whatever, or they know somebody who knows somebody who says it is very strong (at blitz). Well, I posted some games from a batch of 100 test games in which I took a look at the moves that caused LC0 to lose, in another thread that shows LC0 policy alone plays some completely idiotic moves, so at least my disagreement with 2400 has some data to back it. Of course, LC0 policy plays some good moves, it's just statistics and sometimes it screws up.

As to your question, how can you play good moves without a search ..... well, by remembering themes you've seen in the past. Do you need to search out the standard QN smothered mate position ? I would say not, you just need to recognise the pattern to know it's mate.
kh8, ph7, g7, re8, Ng5, Qd5. Anybody who needs to search that out is not a very strong chess player. Strong players are strong players because they recognise patterns and don't need to search, amongst other reasons. If LC0 has seen that sort of pattern enough times, it will register Nf7+ in the policy. But LC0 might also register Nf7+ in the policy when black could capture the Knight, or the Q path to g8 was obstructed, or, or, or. It's a statistical engine which can get things objectively very wrong, too.
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Lc0 51010

Post by Uri Blass »

chrisw wrote: Wed Apr 03, 2019 1:23 pm
Uri Blass wrote: Wed Apr 03, 2019 11:30 am
chrisw wrote: Tue Apr 02, 2019 11:32 pm
Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
Zero neural net has a policy net wih 4096 outputs (64 origin squares x 64 destination squares), well, the 4096 is squashed down a bit, but basically that’s the idea.

The network inputs see the chess board and lights up, to greater or lesser extent, the 4096 outputs. The output lit up the most (obviously filtered for legal move validity) is the chosen move. At “nodes=0”.
There is no look-ahead in the sense you describe. It’s a kind of “raw positional” intuition. Only it isn’t, it’s just generalised statistically what generally statistically works. Sometimes it doesn’t, the same type of networks in visual recognition can tell you sometimes with 99% certainty that a mouse is a cat.
1)Suppose a human have a move that make a threat to capture a piece and he know that he has a threat at the time of making the move.
The human practically search some line like 2.Nf3 null 3.Nxe5 and this line is 3 nodes if you consider null move to be a node.
I am sure all humans including top GM's do it regardless of the time control

2)Note that usually alpha-beta engine does not search 2.Nf3 null 3.Nxe5 in 1 ply search(because they have no threat extension).
I do not know exactly what lc0 does but it certainly cannot play good moves without using the board position and doing a search even if it does not call the search nodes.

How do you know that there is a threat against a piece without a search?
It can be inside the evaluation but in this case the evaluation does a search.
LC0 engine does have a search, but we are discussing here the outputs of the neural network itself without search (you can get LC0 to do this with the command nodes=0).

Some people are claiming that the network output without search is 2400 or whatever, or they know somebody who knows somebody who says it is very strong (at blitz). Well, I posted some games from a batch of 100 test games in which I took a look at the moves that caused LC0 to lose, in another thread that shows LC0 policy alone plays some completely idiotic moves, so at least my disagreement with 2400 has some data to back it. Of course, LC0 policy plays some good moves, it's just statistics and sometimes it screws up.

As to your question, how can you play good moves without a search ..... well, by remembering themes you've seen in the past. Do you need to search out the standard QN smothered mate position ? I would say not, you just need to recognise the pattern to know it's mate.
kh8, ph7, g7, re8, Ng5, Qd5. Anybody who needs to search that out is not a very strong chess player. Strong players are strong players because they recognise patterns and don't need to search, amongst other reasons. If LC0 has seen that sort of pattern enough times, it will register Nf7+ in the policy. But LC0 might also register Nf7+ in the policy when black could capture the Knight, or the Q path to g8 was obstructed, or, or, or. It's a statistical engine which can get things objectively very wrong, too.
knowing patterns help but you need search to verify.

[d]4r2k/q5pp/8/3Q2N1/8/8/5PPP/6K1 w - - 3 1

Otherwise you play here Nf7+ and lose after Qxf7
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: Lc0 51010

Post by chrisw »

Uri Blass wrote: Wed Apr 03, 2019 2:58 pm
chrisw wrote: Wed Apr 03, 2019 1:23 pm
Uri Blass wrote: Wed Apr 03, 2019 11:30 am
chrisw wrote: Tue Apr 02, 2019 11:32 pm
Uri Blass wrote: Tue Apr 02, 2019 11:01 pm
Raphexon wrote: Tue Apr 02, 2019 7:41 pm Seems like I spoke too quickly and 0 node Leela is already quite strong at Blitz.
0 node is certainly a lie.
You cannot play with 0 nodes.

I also do not buy the 1 node.
Chess players including humans always see more than a single move in part of the moves of a game(even at the fastest time control) and I cannot believe lc0 is different.

Suppose I play chess and make a move that threat a piece of the opponent
and the opponent make a move to defend the piece(something like Nc6 in reply to Nf3). What happens in the next move and how many nodes do I consider?

In the next move I reject the capture and choose something else so I practically consider 2 moves (capture that I reject and the move that I practically choose).
This happens regardless of the time control that I play and can happen even at bullet.
Zero neural net has a policy net wih 4096 outputs (64 origin squares x 64 destination squares), well, the 4096 is squashed down a bit, but basically that’s the idea.

The network inputs see the chess board and lights up, to greater or lesser extent, the 4096 outputs. The output lit up the most (obviously filtered for legal move validity) is the chosen move. At “nodes=0”.
There is no look-ahead in the sense you describe. It’s a kind of “raw positional” intuition. Only it isn’t, it’s just generalised statistically what generally statistically works. Sometimes it doesn’t, the same type of networks in visual recognition can tell you sometimes with 99% certainty that a mouse is a cat.
1)Suppose a human have a move that make a threat to capture a piece and he know that he has a threat at the time of making the move.
The human practically search some line like 2.Nf3 null 3.Nxe5 and this line is 3 nodes if you consider null move to be a node.
I am sure all humans including top GM's do it regardless of the time control

2)Note that usually alpha-beta engine does not search 2.Nf3 null 3.Nxe5 in 1 ply search(because they have no threat extension).
I do not know exactly what lc0 does but it certainly cannot play good moves without using the board position and doing a search even if it does not call the search nodes.

How do you know that there is a threat against a piece without a search?
It can be inside the evaluation but in this case the evaluation does a search.
LC0 engine does have a search, but we are discussing here the outputs of the neural network itself without search (you can get LC0 to do this with the command nodes=0).

Some people are claiming that the network output without search is 2400 or whatever, or they know somebody who knows somebody who says it is very strong (at blitz). Well, I posted some games from a batch of 100 test games in which I took a look at the moves that caused LC0 to lose, in another thread that shows LC0 policy alone plays some completely idiotic moves, so at least my disagreement with 2400 has some data to back it. Of course, LC0 policy plays some good moves, it's just statistics and sometimes it screws up.

As to your question, how can you play good moves without a search ..... well, by remembering themes you've seen in the past. Do you need to search out the standard QN smothered mate position ? I would say not, you just need to recognise the pattern to know it's mate.
kh8, ph7, g7, re8, Ng5, Qd5. Anybody who needs to search that out is not a very strong chess player. Strong players are strong players because they recognise patterns and don't need to search, amongst other reasons. If LC0 has seen that sort of pattern enough times, it will register Nf7+ in the policy. But LC0 might also register Nf7+ in the policy when black could capture the Knight, or the Q path to g8 was obstructed, or, or, or. It's a statistical engine which can get things objectively very wrong, too.
knowing patterns help but you need search to verify.

[d]4r2k/q5pp/8/3Q2N1/8/8/5PPP/6K1 w - - 3 1

Otherwise you play here Nf7+ and lose after Qxf7
Sure, statistics are a guide not an assurance. We have entered a world where the logic if A then B, has been replaced by if A then B (probably).

It’s a trade off between time spent verifying and time that could be spent profitably elsewhere.

Specific examples are not useful in this situation. If the position has a countermate, then you can argue with hindsight to have verified. But if there isn’t a countermate, the verification was wasting time when you could have been more profitable elsewhere. In real time you don’t have specific examples, you just have statistics of what usually happens.