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

Add Unitary Group #90

Open
HiperMaximus opened this issue Nov 22, 2023 · 2 comments
Open

Add Unitary Group #90

HiperMaximus opened this issue Nov 22, 2023 · 2 comments

Comments

@HiperMaximus
Copy link

I think adding the unitary group U(n) and special unitary SU(n) would be interesting as they are 'bigger' than O(n) and SO(n) (and also connected which might be interesting), and many physical models are invariant under the unitary group. I'm uncertain if it would necessitate adding support for complex numbers.

@maxxxzdn
Copy link

maxxxzdn commented Mar 5, 2024

I think at this point, escnn is focused on all subgroups of the Euclidean group E(n), so adding support for unitary groups might be a heavy lift. Perhaps one can develop uscnn for that matter :)

@Gabri95
Copy link
Collaborator

Gabri95 commented Sep 2, 2024

Indeed, we currently don't support the U(n) and SU(n) groups but that is not too hard and doens't require complex numbers.
As we argue in our paper, using complex representations is either unnecessary or can lead to underparameterized models since computer architectures operate with real numbers.

In this sense, you can think of U(n) as a subgroup of O(2n). As far as I know, the main challenges here are:
1- converting the U(n) complex representations of interest into real ones. For U(n), a simple "realification" should work out of the box (convert each complex number to a 2x2 real matrix)
2- find an application requiring U(n) or SU(n) equivariance.

If someone is interested in implementing this kind of architeture I can provide some guidance

Best,
Gabriele

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

3 participants