e3nn
Contributors
Mario Geiger
Tess Smidt
Benjamin K. Miller
Wouter Boomsma
Kostiantyn Lapchevskyi
Maurice Weiler
Michał Tyszkiewicz
Bradley Dice
Jes Frellsen
Sophia Sanborn
M. Alby
Euclidean Neural Network
Other collaborators
Simon Batzner
Josh Rackers
Sidsel Winther
Allan Costa
Eugene Kwan
Martin Uhrin
Claire A. West
and many others!
motivation
neural
network
input
(e.g. a molecule)
prediction
(e.g. inertia tensor of the molecule)
neural
network
rotated
input
rotated
prediction
e3nn is a library in python based on pytorch to do that
Why do we need group theory to do that?
We use group theory
physics = use numbers to describe reality
symmetry = different numbers to describe the same reality
- absolute position on the screen?
- absolute size on the screen?
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1: 1.0
2: 0.8
3: 0.76
4: 0.76
5: 0.5
6: 0.6
7: 0.99
8: 0.96
group of symmetry = {all the choices}
- permutation
- rotation
- scale
- parity
we want our understanding of reality to be independent of those choices
\(b\)
group theory!
\(a\)
definition of group
\(G\) = group = set with a composition law such that
such that \(\forall g \in G\) \(ge = eg = g\)
\(\exists e \in G\)
\(\forall g \in G, \exists i \in G\) such that \(gi = ig = e\)
\(\forall a, b, c \in G\) we have \((ab)c = a(bc)\)
\(b\)
\(a\)
\(ab\)
\(c\)
\(bc\)
\(g\)
\(i\)
\(e\)
definition of group
group representation
group \(G\) is abstract
\(D(g)\)
\(ab=c\)
one representation
group
all possible representations
all possible representations
=
irreducible representations
+
their
compositions
(direct sums \(\oplus\))
(for a given group \(G\))
aim of e3nn
\(\forall w\)
\(f_w(D_{\rm in}(g) x) = D_{\rm out}(g) f_w(x)\)
for the Euclidean group
- rotations
- translations
- mirrors
for finite direct sums of irreps
(\(D = \bigoplus_L (D^L)^{n_L} \))
irreps of \(E(3)\)
p=1 | p=-1 | |
---|---|---|
L=0 | scalars | pseudoscalars |
L=1 | pseudovectors | vectors |
L=2 | e.g. inertia tensor | |
L=3 | ||
L=4 | ||
L=5 | ||
... | ||
function on the sphere
\(f: s^2 \longrightarrow \mathbb{R}\)
example
Its representation is \([D(g) f](x) = f(R(g)^{-1} x)\)
With a change of variable it can be changed into:
\(\bigoplus_{L=1}^\infty D^L \)
tensor product
\( \otimes \)
defining properties:
- equivariant
- bilinear
rule
\(1 \otimes 2 = 1 \oplus 2 \oplus 3\)
\(0 \otimes 3 = 3\)
\(3 \otimes 3 = 0 \oplus 1 \oplus 2 \oplus 3 \oplus 4 \oplus 5 \oplus 6\)
\(L_1 \otimes L_2 = |L_1 - L_2| \oplus \dots \oplus (L_1 + L_2)\)
tensor product
defining properties:
- equivariant
- bilinear
examples
- \(\vec v_1 \cdot \vec v_2 \)
- \(\vec v_1 \wedge \vec v_2 \)
- \(\vec v_1 \cdot \vec v_2 \oplus \vec v_1 \wedge \vec v_2 \)
- \(\vec v_1 \wedge \vec v_2 \oplus \vec 0 \)
- \(2.34 \; \vec v_1 \wedge \vec v_2 \)
- \(w \; \vec v_1 \wedge \vec v_2 \)
- \(w_{11} \vec u_1 \wedge \vec v_1 + w_{12} \vec u_1 \wedge \vec v_2 + w_{21} \vec u_2 \wedge \vec v_1 + w_{22} \vec u_2 \wedge \vec v_2 \)
demo
demo
+1 | ||||||
-1 | ||||||
1 | ||||||
1 | ||||||
1 | ||||||
1 | ||||||
1 | ||||||
1 |
"1x0o"
"6x0e"
https://e3nn.org
3D Steerable CNNs 1807.02547
Maurice Weiler, Mario Geiger, Max Welling, Wouter Boomsma, Taco Cohen
Tensor field networks 1802.08219
Nathaniel Thomas, Tess Smidt, Steven Kearnes, Lusann Yang, Li Li, Kai Kohlhoff, Patrick Riley
Seminal papers
Website
Thank you
for your attention!
e3nn
By Mario Geiger
e3nn
- 677