-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ce74a47
Showing
33 changed files
with
444,787 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
/.DS_Store | ||
/.vscode | ||
/blog/_build/ | ||
/poster/*pptx | ||
/6s989_proposal.pdf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Book settings | ||
# Learn more at https://jupyterbook.org/customize/config.html | ||
|
||
title: Demistiyfing E(3)-equivariant NN | ||
author: Killian Sheriff, Yifan Cao | ||
logo: square.png | ||
|
||
# Force re-execution of notebooks on each build. | ||
# See https://jupyterbook.org/content/execute.html | ||
execute: | ||
execute_notebooks: force | ||
|
||
# Define the name of the latex output file for PDF builds | ||
latex: | ||
latex_documents: | ||
targetname: book.tex | ||
|
||
# Add a bibtex file so that we can create citations | ||
bibtex_bibfiles: | ||
- references.bib | ||
|
||
# Information about where the book exists on the web | ||
repository: | ||
url: https://github.com/killiansheriff/blog_e3nn/ # Online location of your book | ||
path_to_book: docs # Optional path to your book, relative to the repository root | ||
branch: master # Which branch of the repository should be used when creating links (optional) | ||
|
||
# Add GitHub buttons to your book | ||
# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository | ||
html: | ||
use_issues_button: true | ||
use_repository_button: true | ||
|
||
sphinx: | ||
config: | ||
html_js_files: | ||
- https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Table of contents | ||
# Learn more at https://jupyterbook.org/customize/toc.html | ||
|
||
format: jb-book | ||
root: index | ||
chapters: | ||
- file: notebooks/group_representation | ||
- file: notebooks/irreducible_representations | ||
- file: notebooks/transformation_under_e3 | ||
- file: notebooks/spherical_harmonics | ||
- file: notebooks/equivariance_and_polynomials | ||
- file: notebooks/tensor_product | ||
- file: notebooks/data_efficiency | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Index | ||
|
||
## Demistifying E(3)-equivariant neural networks! | ||
|
||
Welcome to our blog post on demistifying E(3)-equivariant neural networks! This blog aim to introduces the following concepts, in order to understand the mathematical tools leading to learnable equivariant operations: | ||
|
||
```{tableofcontents} | ||
``` | ||
## Poster | ||
|
||
![poster]('../../../poster/shared/poster.png) | ||
|
||
## Disclaimer | ||
|
||
This post serves as an explanation of the paper by ``Geiger et al [1]``. It was written as a final project for the ``Fall 2022 Final Project`` section of the ``6.S898: Deep Learning`` course at the ``Massachusetts Institute of Technology``. Needless to say that the intuition presented herein are heavily influenced by the explanations of Geiger et al. | ||
|
||
## References | ||
|
||
1. Geiger, M. & Smidt, T. e3nn: Euclidean Neural Networks. Arxiv (2022). | ||
|
||
## Citation | ||
|
||
If used, please cite: | ||
|
||
```citation | ||
@software{killian_sheriff_2022_7430281, | ||
author = {Killian Sheriff and | ||
Yifan Cao}, | ||
title = {killiansheriff/blog\_e3nn: blog\_e3nn}, | ||
month = dec, | ||
year = 2022, | ||
publisher = {Zenodo}, | ||
version = {blog\_e3nn}, | ||
doi = {10.5281/zenodo.7430281}, | ||
url = {https://doi.org/10.5281/zenodo.7430281} | ||
} | ||
``` | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"cells": [], | ||
"metadata": {}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"cells": [], | ||
"metadata": {}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"attachments": {}, | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Equivariance and Polynomials\n", | ||
"\n", | ||
"In this section we will define what it means for a function to be ``equivariant``, and what tools are available to create ``equivariant polynomials``. This latter is of great importance as almost any functions can be approximated by polynomials, and that the role of our neural network is to estimate an (equivariant) function." | ||
] | ||
}, | ||
{ | ||
"attachments": {}, | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Equivariance\n", | ||
"We say that a function $f: V \\rightarrow V'$ is equivariant to the action of the symmetry element $g$, represented by $D(g)$ on it's input $x$, if it gives rise to a similar action $D'(g)$ of its output, i.e:\n", | ||
"\n", | ||
"$$\n", | ||
"f(D(g)x) = D'(g)f(x).\n", | ||
"$$\n", | ||
"\n", | ||
"This principle is illustrated in figure 1.\n", | ||
"\n", | ||
"For a concreate example, consider a 3D rotation of $\\theta$ degrees around the x axis:\n", | ||
"\n", | ||
"$$\n", | ||
"R_{x}(\\theta )=\\begin{bmatrix}1&0&0\\\\0&\\cos \\theta &-\\sin \\theta \\\\[3pt]0&\\sin \\theta &\\cos \\theta \\\\[3pt]\\end{bmatrix},\n", | ||
"$$\n", | ||
"\n", | ||
"and the following functions function:\n", | ||
"\n", | ||
"$$\n", | ||
"f: \\begin{bmatrix}\n", | ||
" x \\\\\n", | ||
" y \\\\\n", | ||
" z\n", | ||
" \\end{bmatrix} \n", | ||
"\\rightarrow\n", | ||
"\\begin{bmatrix}\n", | ||
" x^2+y^2+z^2\n", | ||
" \n", | ||
" \\end{bmatrix} \n", | ||
"$$\n", | ||
"\n", | ||
"Then $f$ is equivariant to rotation as:\n", | ||
"\n", | ||
"$$\n", | ||
"f(R_x(\\theta) \\vec{x}) = f(\\begin{bmatrix}\n", | ||
" x \\\\\n", | ||
" cos(\\theta)y-sin(\\theta)z \\\\\n", | ||
" sin(\\theta)y+cos(\\theta)z\n", | ||
" \\end{bmatrix} ) = \\begin{bmatrix}\n", | ||
" x^2+y^2+z^2\n", | ||
" \n", | ||
" \\end{bmatrix} = R'_x(\\theta) f(x) = f(x).\n", | ||
"$$\n", | ||
"\n", | ||
"especialy in this case the function is actually invariant to rotations: $R'_x(\\theta) =1 \\space \\forall \\theta \\in \\mathcal{R}$.\n", | ||
"\n", | ||
"An example of a non equivariant polynomials would be $p$:\n", | ||
"\n", | ||
"$$\n", | ||
"p : \\begin{bmatrix}\n", | ||
" x \\\\\n", | ||
" y \\\\\n", | ||
" z\n", | ||
" \\end{bmatrix} \n", | ||
"\\rightarrow\n", | ||
"\\begin{bmatrix}\n", | ||
" x^2+2(y-3z) \\\\\n", | ||
" y^2x \\\\\n", | ||
" \n", | ||
" \\end{bmatrix}.\n", | ||
"$$" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"\n", | ||
"| ![square](../equiv.png) |\n", | ||
"|:--:|\n", | ||
"| <b>Fig.1 - Principle of equivariance.</b>|" | ||
] | ||
}, | ||
{ | ||
"attachments": {}, | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Equivariant polynomials\n", | ||
"\n", | ||
"In this section we will discuss the tools to create equivariant polynomials.\n", | ||
"\n", | ||
"We will first show that the compositon of 2 equivariant polynomial is equivariant: \n", | ||
"\n", | ||
"Consider two equivariant function:\n", | ||
"\n", | ||
"$$ \n", | ||
"f: V_1 \\rightarrow V_3,\n", | ||
"$$ \n", | ||
"\n", | ||
"$$ \n", | ||
"g: V_2 \\rightarrow V_3,\n", | ||
"$$ \n", | ||
"\n", | ||
"then: \n", | ||
"\n", | ||
"### ``Addition`` of equivariant polynomials is equivariant:\n", | ||
"\n", | ||
"Indeed, $f+g$ is equivariant as:\n", | ||
"\n", | ||
"$$\n", | ||
"D_3(g)(f(x)+g(x)) = D_1(g)f(x)+D_2(g)g(x) = f(D_1(g)x)+g(D_2(g)x).\n", | ||
"$$\n", | ||
"\n", | ||
"\n", | ||
"### ``Composition`` of equivariant polynomials is equivariant:\n", | ||
"\n", | ||
"Indeed, $f \\circ g$ is equivariant as:\n", | ||
"\n", | ||
"$$\n", | ||
"D_3(g)(f(g(x))) =f( D_2(g) g(x)) = f(g(D_1(g)x)).\n", | ||
"$$\n", | ||
"\n", | ||
"### The ``Tensor Product`` of two polynomial is equivariant:\n", | ||
"It is denoted $f \\otimes g$. The ``Tensor Product`` section is dedicated to it." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "base", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.9.5 (default, May 18 2021, 12:31:01) \n[Clang 10.0.0 ]" | ||
}, | ||
"orig_nbformat": 4, | ||
"vscode": { | ||
"interpreter": { | ||
"hash": "a429a41e61deb9ee9f43170a4271c5d42eef99359a9088d8c58f4b96e2ffedc5" | ||
} | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Oops, something went wrong.