{
“cells”: [
{

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“# Getting Started with Equivariant Representations”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Our general approach to equivariance is centered around the idea of _representations_, a prescription of how a group element acts on a given vector space.n”, “n”, “Given a vector space $V$ and a group $G$, elements of the group $g\in G$ can act on a vector $v\in V$ by the representation matrix $v\mapsto \rho(g)v$. The vector space $V$ and the matrix $\rho$ are often referred to interchangeably as the representation.n”, “n”, “For example with the cyclic translation group $\mathbb{Z}_4$, we implement a (faithful) base representation $V$ which cyclicly translates the elements. Sampling an arbitrary transformation, we have”

]

}, {

“cell_type”: “code”, “execution_count”: 1, “metadata”: {}, “outputs”: [], “source”: [

“from emlp.reps import V,sparsify_basisn”, “from emlp.groups import Z,S,SO,O,O13,SO13,RubiksCuben”, “import jax.numpy as jnpn”, “import numpy as np”

]

}, {

“cell_type”: “code”, “execution_count”: 2, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“𝜌(g) =n”, “[[0. 1. 0. 0.]n”, ” [0. 0. 1. 0.]n”, ” [0. 0. 0. 1.]n”, ” [1. 0. 0. 0.]]n”, “v = [ 0.00571103 0.1130348 0.43701055 -0.90977019]n”, “𝜌(g)v = [ 0.1130348 0.43701056 -0.9097702 0.00571103]n”

]

}

], “source”: [

“G=Z(4)n”, “rep = V(G)n”, “v = np.random.randn(rep.size())n”, “g = G.sample()n”, “print(f"𝜌(g) =\n{rep.rho(g)}")n”, “print(f"v = {v}")n”, “print(f"𝜌(g)v = {rep.rho(g)@v:}")”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“The symmetric subspace of the representation is the space of solutions to the constraint $\forall g\in G: \ \ \rho(g)v=v$.n”, “For any representation, you can get the basis $Q \in \mathbb{R}^{n\times r}$ for this symmetric subspace with rep.equivariant_basis() and the matrix $P=QQ^T$ which projects to this subspace with rep.equivariant_projector().”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“For example, we can find invariant vectors of the cyclic translation group $\mathbb{Z}_n$ which is just the constant $\vec{1}$ scaled to have unit norm.”

]

}, {

“cell_type”: “code”, “execution_count”: 3, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“DeviceArray([[0.44721365],n”, ” [0.44721362],n”, ” [0.44721365],n”, ” [0.44721365],n”, ” [0.44721365]], dtype=float32)”

]

}, “execution_count”: 3, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“V(Z(5)).equivariant_basis()”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“## The Representation Type System”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Each implemented group comes with a faithful ‘base’ representation $V$. Because faithful representations are one-to-one, we can build any representation by transforming this base representation.n”, “n”, “We provide several operators to transform and construct representations in different ways built and later go on to show how to do this more generally. In our type system, representations can be combined with the direct sum $\rho_a \oplus\rho_b$ operator, the tensor product $\rho_a\otimes\rho_b$, the dual $\rho^*$ and these operators are implemented as the python operators +, *, and .T.”

]

}, {

“cell_type”: “code”, “execution_count”: 4, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“((V+V), V⊗V, V*)”

]

}, “execution_count”: 4, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“V+V, V*V, V.T”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“We can combine and use these operators interchangeably:”

]

}, {

“cell_type”: “code”, “execution_count”: 5, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“(V+V*)⊗(V⊗V*+V)”

]

}, “execution_count”: 5, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“(V+V.T)*(V*V.T+V)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“We use the shorthand $cV$ to mean $V\oplus V\oplus…\oplus V$ and $V^c = V\otimes V\otimes…\otimes V$. Note that this differs from the common notation where $V^c$ denotes the cartesian products the set (like with $\mathbb{R}^c$) which would be the same as $cV$ in this notation. Being more formal we could distinguish the two by denoting $V^{\otimes c}=V\otimes V\otimes…\otimes V$ but to stay consistent with the python interface, we will not.”

]

}, {

“cell_type”: “code”, “execution_count”: 6, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“(V+V+V+V+V+V+V+V+V+V)”

]

}, “execution_count”: 6, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“5*V*2”

]

}, {

“cell_type”: “code”, “execution_count”: 7, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“(V⊗V⊗V+V⊗V⊗V)”

]

}, “execution_count”: 7, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“2*V**3”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“When a particular symmetry group is specified, the representation can be collapsed down to a more compact form:”

]

}, {

“cell_type”: “code”, “execution_count”: 8, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“2V³”

]

}, “execution_count”: 8, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“G=O(4)n”, “2*V(G)**3”

]

}, {

“cell_type”: “code”, “execution_count”: 9, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“2V³”

]

}, “execution_count”: 9, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“(2*V**3)(G)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Although for groups like the Lorentz group $SO(1,3)$ with non orthogonal representations, a distinction needs to be made between the representation and it’s dual. In both cases the representation is converted down to a canonical form (but the ordering you gave is preserved as a permutation).”

]

}, {

“cell_type”: “code”, “execution_count”: 10, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“2V”

]

}, “execution_count”: 10, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“V(SO(3)).T+V(SO(3))”

]

}, {

“cell_type”: “code”, “execution_count”: 11, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“V+V*”

]

}, “execution_count”: 11, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“V(SO13()).T+V(SO13())”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Linear maps from $V_1\rightarrow V_2$ have the type $V_2\otimes V_1^*$. The V>>W is shorthand for W*V.T and produces linear maps from V to W.n”, “n”, “Imposing (cyclic) Translation Equivariance $G=\mathbb{Z}_n$ on linear maps $V\rightarrow V$ yields circular convolutions (circulant matrices) which can be expressed as a linear combination of $n$ basis elements of size $n\times n$.”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“## Exploring and Visualizing Equivariant Bases”

]

}, {

“cell_type”: “code”, “execution_count”: 12, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Conv basis has shape (36, 6)n”

]

}

], “source”: [

“G = Z(6)n”, “repin = V(G)n”, “repout = V(G)n”, “conv_basis = (repin>>repout).equivariant_basis()n”, “print(f"Conv basis has shape {conv_basis.shape}")”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“While we provide an orthogonal basis, these bases are not always easy to make sense of as an array of numbers (any rotation of an orthogonal basis is still an orthogonal basis)”

]

}, {

“cell_type”: “code”, “execution_count”: 13, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“DeviceArray([-0.00200776, -0.25157794, 0.31927773, 0.0072209 ,n”, ” -0.03698727, 0.00357165, 0.00357159, -0.00200781,n”, ” -0.25157797, 0.31927782, 0.00722108, -0.03698722,n”, ” -0.03698726, 0.00357183, -0.00200774, -0.2515779 ,n”, ” 0.31927767, 0.00722109, 0.00722104, -0.03698728,n”, ” 0.00357171, -0.00200778, -0.25157782, 0.31927767,n”, ” 0.3192777 , 0.00722104, -0.03698733, 0.00357174,n”, ” -0.00200774, -0.2515779 , -0.25157785, 0.3192777 ,n”, ” 0.00722107, -0.03698731, 0.00357177, -0.0020077 ], dtype=float32)”

]

}, “execution_count”: 13, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“conv_basis[:,0]”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“To more easily visualize the result, we can define the following function which projects a random vector and then plots components with the same values as different colors, arranged in a desired shape.”

]

}, {

“cell_type”: “code”, “execution_count”: 14, “metadata”: {}, “outputs”: [], “source”: [

“import numpy as npn”, “import matplotlib.pyplot as pltn”, “from sklearn.cluster import KMeansn”, “n”, “def vis_basis(basis,shape,cluster=True):n”, ” Q=basis@jnp.eye(basis.shape[-1]) # convert to a dense matrix if necessaryn”, ” v = np.random.randn(Q.shape[0]) # sample random vectorn”, ” v = Q@(Q.T@v) # project onto equivariant subspacen”, ” if cluster: # cluster nearby values for better color separation in plotn”, ” v = KMeans(n_clusters=Q.shape[-1]).fit(v.reshape(-1,1)).labels_n”, ” plt.imshow(v.reshape(shape))n”, ” plt.axis(‘off’)n”, “n”, “def vis(repin,repout,cluster=True):n”, ” Q = (repin>>repout).equivariant_basis() # compute the equivariant basisn”, ” vis_basis(Q,(repout.size(),repin.size()),cluster) # visualize it”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Our convolutional basis is the familiar (circulant) convolution matrix.”

]

}, {

“cell_type”: “code”, “execution_count”: 15, “metadata”: {}, “outputs”: [

{
“data”: {

“image/png”: “iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD5klEQVR4nO3YMWpbaRiGUSkRGLSBDG4H9Wpi0Aq8Da3Be5g2a3AZmBUMM8V0BrlxavdmvIQUE6W+XEWo0v8U55T3a97m4Ye7PB6PC6Dnw+gBwGnihChxQpQ4IUqcELU6d/z96x+pX7k339ajJ8x8ev4+esLE7sth9ISJ5+3H0RNm/np7GT1h4sNvr8uT3689BLiMOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcELU8Ho+/PP74b/Pr4wCbf/ejJ8zcfFuPnjDx6fn76AkTuy+H0RNmnrcfR0+Y+PvHn8tT372cECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROiVueO97fbK824zOvb4+gJM5vFfvSEiffFevSEiaeHu9ETZnYvh9ETLuLlhChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghanXu+Pnl/2vtuMj97Xb0hJnXt8fREyY2i/3oCRPvi/XoCTNPD3ejJ0z9c/qzlxOixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihKjVuePTw921dlxk93IYPWHm/nY7esLE69vj6AkTm8V+9ISZ98V69ISLeDkhSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0Stzh3fP99ca8dFnh7uRk+Y2b0cRk+YuL/djp4w8fr2OHrCzGaxHz3hIl5OiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROilsfjcfQG4AQvJ0SJE6LECVHihChxQpQ4IeonX4lBmrhG3IAAAAAASUVORK5CYII=n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“vis_basis(conv_basis,(repin.size(),repout.size()))”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“2D translation equivariange $G=\mathbb{Z}_n\times \mathbb{Z}_n$ yields 2D convolutions (bicurculant matrices)”

]

}, {

“cell_type”: “code”, “execution_count”: 16, “metadata”: {}, “outputs”: [

{
“data”: {

“image/png”: “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n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“G = Z(3)*Z(4) #[Not recommended way of building product groups, there is a faster way shown in section 5]n”, “repin = V(G)n”, “repout = V(G)n”, “vis(repin,repout)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“How about the permutation group $G=S_n$, where the vector space $V$ represents a set of elements? In deep sets it was shown there are only two basis elements for equivariant linear maps $V\rightarrow V$.”

]

}, {

“cell_type”: “code”, “execution_count”: 17, “metadata”: {}, “outputs”: [

{
“data”: {

“image/png”: “iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAADPUlEQVR4nO3YwYnbUBhG0TioCu2zVxcqNhWINKEqRKoYzdrYMc5g5t0Zzllam48Hlx98Oc/zB9Dzc/QA4D5xQpQ4IUqcECVOiJoefXz7+yv1V+46L6MnwMv9eft9ufe7ywlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQtT06OM6L5804znbsY+ecKP2RnwfLidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihKhp9ID/sc7L6Ak3tmMfPeFK8Y34GJcTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oSoafSAr26dl9ETrmzHPnrCldr7fCUuJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUdPoAbzWOi+jJ1zZjn30hBu1N/oXlxOixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQtQ0egDf2zovoyfc2I599ISnuJwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0SJE6LECVHihChxQpQ4IUqcECVOiBInRIkTosQJUeKEKHFClDghSpwQJU6IEidEiROixAlR4oQocUKUOCFKnBAlTogSJ0RdzvMcvQG4w+WEKHFClDghSpwQJU6IEidEvQPG9h8XfEkIuAAAAABJRU5ErkJggg==n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“repin = V(S(6))n”, “repout = V(S(6))n”, “vis(repin,repout)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“What about graphs, which are composed both of sets as well as adjacency matrices or graph laplacians? These matrices are examples of objects from $V\otimes V$ with $G=S_n$, and in Invariant and Equivariant Graph Networks () it was shown through a challenging proof that there are at most 15 basis elements which were derived analytically. We can solve for them here:”

]

}, {

“cell_type”: “code”, “execution_count”: 18, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“(1296, 15)n”

]

}, {

“data”: {

“image/png”: “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”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“repin = V(S(6))**2n”, “repout = V(S(6))**2n”, “vis(repin,repout)n”, “print(f"Basis matrix of shape {(repin>>repout).equivariant_basis().shape}")”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“How about the continuous $2$D rotation group $SO(3)$? It’s well known that the only equivariant object for the vector space $V^{\otimes 3}$ is the Levi-Civita symbol $\epsilon_{ijk}$. Since the values are both $0$, positive, and negative (leading to more than Q.shape[-1] clusters) we disable the clustering.”

]

}, {

“cell_type”: “code”, “execution_count”: 19, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Basis matrix of shape (27, 1)n”

]

}, {

“data”: {

“image/png”: “iVBORw0KGgoAAAANSUhEUgAAAV0AAAB+CAYAAACHx8KbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAACZklEQVR4nO3awW3TcByGYRtlEeQMkU3oCDlCmYNW3DIC3SRDJGIUM4BDpR54/6F9nqsvnyzr1e/geV3XCYDGp9EDAD4S0QUIiS5ASHQBQqILEBJdgNDutYeff/64v//J7m8R/7n943n0hI3L02H0hI3rw2n0hJuWX8fREzZ+f/0+/+2ZSxcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQGg3esB7cH04jZ5w0/JyHD1hax09YOvyfBg9YWP/7Tx6wsYy3eH3NE3TNI8e8DYuXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCO1GD3ir/eN59ISNZT6OnnDT9ctp9ISN5eUO39U6esDW5fkwegL/iEsXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBoXtd19AaAD8OlCxASXYCQ6AKERBcgJLoAIdEFCP0BVrIhE7iVLDsAAAAASUVORK5CYII=n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“W = V(SO(3))n”, “repin = W**2n”, “repout = Wn”, “Q = (repin>>repout).equivariant_basis()n”, “print(f"Basis matrix of shape {Q.shape}")n”, “vis(repin,repout,cluster=False)”

]

}, {

“cell_type”: “code”, “execution_count”: 20, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“[[[ 0. 0. 0.]n”, ” [ 0. 0. 1.]n”, ” [ 0. -1. 0.]]n”, “n”, ” [[ 0. 0. -1.]n”, ” [ 0. 0. 0.]n”, ” [ 1. 0. 0.]]n”, “n”, ” [[ 0. 1. 0.]n”, ” [-1. 0. 0.]n”, ” [ 0. 0. 0.]]]n”

]

}

], “source”: [

“print(sparsify_basis(Q).reshape(3,3,3))”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“We can also solve for very high dimensional representations which we automatically switch to using the automated iterative Krylov subspace method”

]

}, {

“cell_type”: “code”, “execution_count”: 21, “metadata”: {}, “outputs”: [

{
“data”: {

“image/png”: “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n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“vis(W**3,W**3)”

]

}, {

“cell_type”: “code”, “execution_count”: 22, “metadata”: {}, “outputs”: [

{
“data”: {

“image/png”: “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n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“vis(W**5,W**3)”

]

}, {

“cell_type”: “code”, “execution_count”: 23, “metadata”: {

“scrolled”: false

}, “outputs”: [

{
“data”: {

“image/png”: “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”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“vis(V(RubiksCube()),V(RubiksCube()))”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“## Composite Representations and Lazy Matrices”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“How about maps from graphs to sets? Lets say a graph consists of one node feature and one edge feature which can be represented with the $\oplus$ operator.”

]

}, {

“cell_type”: “code”, “execution_count”: 24, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“(252, 7)n”

]

}, {

“data”: {

“image/png”: “iVBORw0KGgoAAAANSUhEUgAAAV0AAAA+CAYAAACIn8j3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAACa0lEQVR4nO3cvWpUURQF4DtipYXYTquNCCII4hM4jQ+RUqtoaSPBF7A0r2Av/oAPYBNIk860UwliY3t9guyT5Mxdd4b5vnZnMvvcTBanWMxiHMcBgIwbcy8AsE+ELkCQ0AUIEroAQUIXIEjoAgTdrIZPv70t+2R33t/a7DYb9vvR7XJ+cvQxtMn13Pv0spy/fv61nH9+eHeT61zZrw/Pyvn9Nz/L+YuzPxfOpj5b7+4t1dmGof98U+/f0nu+ufdvaZ3v8MGPxUUzN12AIKELECR0AYKELkCQ0AUIEroAQUIXIKjs6bZ6uH/f/Svnc/d4Dw6/lPNWD3buLuD5+ricPzl6Vc5P1vP2kFfLet7qYg5D3UOeUutvv+09UvvPu3/FTRcgSOgCBAldgCChCxAkdAGChC5AkNAFCCp7ui273uPd9i7gavm4nB+cbXcP+fv6tPET9bzqIU/dQW49+97Pzpwd5GHY/s9+yy7v76YLECR0AYKELkCQ0AUIEroAQUIXIEjoAgR19XRb9Hj3u8vY6rq2VD3kqTvI7Y5xS/36qb8LuffZ6yFP97/rpgsQJHQBgoQuQJDQBQgSugBBQhcgSOgCBE3a023R493vHm+PqXfv7bm2TP1dyP0945b69/f2kKd+/nP2kN10AYKELkCQ0AUIEroAQUIXIEjoAgQJXYCgWXu6Lb093rntcg/2Mu+/zfvv8u6Xef/W/qvlJre5ut4e8vn6eJPrXMNpOW31kA+L9d10AYKELkCQ0AUIEroAQUIXIEjoAgQJXYCgxTiOc+8AsDfcdAGChC5AkNAFCBK6AEFCFyBI6AIE/QekZcOuiXxHawAAAABJRU5ErkJggg==n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“W = V(S(6))n”, “repin = W+W**2 # (one set feature and one edge feature)n”, “repout = W # (one set feature)n”, “vis(repin,repout)n”, “print(f"Basis matrix of shape {(repin>>repout).equivariant_basis().shape}")”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Representations that have many copies or multiplicity of a given representation type, such as for the many channels in a neural network, are simply examples of the $\oplus$ operator (+ in python). The rep.equivariant_basis() and rep.equivariant_projector() can return lazy matrices $Q$ and $P=QQ^T$ when the representations are composite (or when the representation is specified lazily). These Lazy matrices are modeled after [scipy LinearOperators](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.LinearOperator.html). By exploiting structure in the matrices via fast matrix vector multiplies (MVMs), it can be possible to work with extremely large matrices.”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“For example with a more realistically sized layer with 100 global constants, 100 set feature channels, and 20 edge feature channels ($100V^0+100V^1+20V^2$) we have”

]

}, {

“cell_type”: “code”, “execution_count”: 25, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“10000V⁰+20000V+14000V²+4000V³+400V⁴, of size 2016400n”, “Basis matrix of shape (2016400, 84000)n”

]

}

], “source”: [

“W = V(S(6))n”, “repin = 100*W**0 + 100*W+20*W**2n”, “repout = repinn”, “rep_map = repin>>repoutn”, “print(f"{rep_map}, of size {rep_map.size()}")n”, “n”, “Q = rep_map.equivariant_basis()n”, “print(f"Basis matrix of shape {Q.shape}")”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“Unfortunately the larger matrices are harder to visualize as for the matrix above we need 84000 different colors! We are happy to field suggestions for visualizing very large bases.”

]

}, {

“cell_type”: “code”, “execution_count”: 26, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [

“(-0.5, 1419.5, 1419.5, -0.5)”

]

}, “execution_count”: 26, “metadata”: {}, “output_type”: “execute_result”

}, {

“data”: {

“image/png”: “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n”, “text/plain”: [

“<Figure size 432x288 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“P =rep_map.equivariant_projector()n”, “v = np.random.randn(P.shape[-1])n”, “v = P@vn”, “plt.imshow(v.reshape(repout.size(),repin.size()))n”, “plt.axis(‘off’);”

]

}, {

“cell_type”: “code”, “execution_count”: null, “metadata”: {}, “outputs”: [], “source”: []

}

], “metadata”: {

“kernelspec”: {

“display_name”: “Python 3”, “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.8.5”

}

}, “nbformat”: 4, “nbformat_minor”: 4

}