jp wrote: ↑Wed Dec 19, 2018 7:11 am
chrisw wrote: ↑Tue Dec 18, 2018 9:10 pm
trulses wrote: ↑Tue Dec 18, 2018 8:58 pm
chrisw wrote: ↑Tue Dec 18, 2018 8:27 pm
the legal moves list is an attack map, and because of the way it is encoded, a weighted attack map, only for one side though.
Unless you're talking about the policy label, you're not discriminating "bad" vs "good" moves by just providing the legal moves so I'm not sure what you mean by weighted. Shouldn't all legal moves have the same weight in your input encoding? Just so we're clear I'm not suggesting that anyone actually try this, because it would be expensive in number of input planes and I doubt it would add much strength.
You're already taking advantage of the legal move information in your search both in which nodes you add to the tree and how you calculate your prior probabilities, so I don't see how it violates any rules.
weighted = weighted by attacker. sorry, ambiguity. it meant the weight of attacker type on each target square.
If the attack map/moves were being explicity given in order to provide second order information to the network inputs over and above the one-hot piece encodings,
that, to me anyway, would fall under the non-zero knowledge category. One hot is simple position data, attacks are second order for sure, what movement the one hot bit can do. Which, I think, is probably why the pure AZ didn’t do it, and went for backwards movement knowledge instead (but again via static one hot position encodes).
The attack maps are not explicitly being given as inputs, but the information has crept in back door via the outputs.
Yeah, I was going to ask yesterday for clarification about this...
Can you very explicitly explain the non-zeroness?
Well, from what I intuited, the tabula rasa approach says that you present to your knowledge engine a visual look at the chess board, as if a complete beginner. You see the pieces and the squares they are on. There’s no information how they move, nor how valuable each is, nor that the king is special. You then show this engine chess positions, in random order, and show it a game output (win/loss) and train it on that output. Eventually, without any knowledge of even how the pieces move, this engine will well evaluate chess positions. Totally zero.
Life is made a little more complex by introducing policy. Here you have the same inputs, but a separate output map 64x64 of all moves, possible or not. At its simplest, you take the move played from the position and light up the coresponding bit in the map, and train the engine on that lit bit (sorry, logit). In practice, actually, from the prior search, you light up, in proportion, all the legal moves, and flag the remaining of the 64x64 with zero. This gives, of course, a pattern at the outputs, and during back propagation, this pattern is transmogrified and passed back up the layered weights, affecting them. Essentially, even though you didn’t pass into the engine inputs any move/attack/mobility information, you did pass it in via this pattern in the outputs. Rule N of ML “watch out that you don’t tell it the forward data what you want it to find”, and there are many curiously wierd and wonderful and unexpected mechanisms for breaching that rule.
Truises argues this is fine because it is permitted under “rules of chess” information only, and the seatch algorithm that generate training games and the search algorithm that plays enduser games has to know how pieces move.
Yes, but. The NN isn’t supposed to know that, else we could input the moves, attacks, mobility and all other second order parameters under the disguise “rules of chess”.
Stricly speaking, I would say they, also AZ, have breached tabula rasa unintentionally and without realising it.