Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About recognition of symmetrical situation #393

Closed
Eglusaxie opened this issue Jan 25, 2021 · 5 comments
Closed

About recognition of symmetrical situation #393

Eglusaxie opened this issue Jan 25, 2021 · 5 comments

Comments

@Eglusaxie
Copy link

First of all, I want to thank you Lightvector. I'm also a Go enthusiast.
And I find that Katago seems to be thinking about symmetric points separately, which I don't think makes sense. So I'm curious that maybe identifying the symmetric selection points ahead of time would save computation and make it more efficient.Or is this a meaningless thing for the AI?
Symmetry or equilibrium is a meaningful thing for human understanding of Go, and perhaps for AI as well?

@lightvector
Copy link
Owner

lightvector commented Jan 25, 2021

If you're talking about recognizing and taking advantage local symmetries in general, even when the board as a whole is not fully symmetric - then that's a hard and worthy and interesting unsolved research problem. :)

If you're talking about simply omitting the search of symmetric points when the entire board is perfectly symmetric, then yes, that would be an improvement, but it would only be a very small improvement on 19x19 at least, so the priority for working on it is extremely low. Almost all of the time, the board is not symmetric, so it would usually only help for several percent of the positions, and furthermore, these positions are ones that would benefit very little from searching more efficiently, because they are just the standard early corner moves - there is no fighting yet, so there is nothing much that reading deeper can do to make a difference.

It might be a little more useful for solving much smaller boards than 19x19, of course. At least for now you can work around this partially by just playing some of the top-favored symmetrical moves manually to break symmetry.

@Eglusaxie
Copy link
Author

Eglusaxie commented Jan 25, 2021

Thank you for your answer. I still have a little doubt. Just like the checkerboard is symmetric, can the Network of AI also be "symmetric"?Should a stronger Network be more "symmetrical"?

@lightvector
Copy link
Owner

lightvector commented Jan 25, 2021

Whether the neural network itself should be forced to be symmetric is yet another question, and here the answer rather than being "good unsolved research problem" or "would be slightly good to implement but only slightly", instead the answer is "probably a not a good idea at all".

In the limit of converging to perfect play, yes the network should compute a symmetric function. However, in general, computing a symmetric function can require computing many non-symmetric things along the way. For example, you might separately recognize a particular shape in each orientation, or trace a group's liberties once in each direction, before finally aggregating the results. The proper term for this is "equivariant" - that means when you are composed of a lot of separate functions that individually are asymmetric, but those functions are repeated symmetrically so that collectively they are symmetric.

Then we can say that probably:

  • Forcing the neural net to be fully symmetric at every internal step for every internal channel would of course be very bad, since it would disallow a lot of legitimate equivariant computation strategies of the final result.
  • Forcing the neural net to merely be equivariant at every internal step is probably slightly bad, because it constrains the optimization and makes it harder to escape to better local optima, and because known methods of doing it involve enforcing collective mirroring of groups of activations in a way that is wasteful of the neural net's total learning capacity.

@Eglusaxie
Copy link
Author

Thank you very much for your careful answer.

@Eglusaxie
Copy link
Author

Eglusaxie commented Jul 9, 2021

I've noticed that the latest katago engine(v1.9) has achieved what I expected, and I really appreciate it.Thank you very much. @fuhaoda Symmetry and balance are special symbols for go enthusiasts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants