<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Geometric Deep Learning on Hunter Heidenreich | Senior AI Research Scientist</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/</link><description>Recent content in Geometric Deep Learning on Hunter Heidenreich | Senior AI Research Scientist</description><image><title>Hunter Heidenreich | Senior AI Research Scientist</title><url>https://hunterheidenreich.com/img/avatar.webp</url><link>https://hunterheidenreich.com/img/avatar.webp</link></image><generator>Hugo -- 0.163.3</generator><language>en-US</language><copyright>2026 Hunter Heidenreich</copyright><lastBuildDate>Sat, 11 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/index.xml" rel="self" type="application/rss+xml"/><item><title>DGCNN: Dynamic Graph CNN for Point Cloud Learning</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/dgcnn-dynamic-graph-point-clouds/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/dgcnn-dynamic-graph-point-clouds/</guid><description>EdgeConv module learns point cloud features on dynamically recomputed k-NN graphs in feature space, achieving strong classification and segmentation results.</description><content:encoded><![CDATA[<h2 id="a-general-purpose-edge-convolution-module-for-point-cloud-learning">A General-Purpose Edge Convolution Module for Point Cloud Learning</h2>
<p>This is a <strong>Method</strong> paper that introduces EdgeConv, a neural network module for learning on point clouds. The key idea is to construct a local graph structure and define convolution-like operations over edges connecting neighboring points. Unlike prior <a href="/notes/machine-learning/model-architectures/relational-inductive-biases-deep-learning-graph-networks/">graph neural network approaches</a> that operate on a fixed graph, DGCNN (Dynamic Graph CNN) recomputes the graph at each layer using k-nearest neighbors in feature space. This dynamic graph update allows the network to learn semantic groupings that differ from spatial proximity, enabling information propagation across long distances in the original point cloud. The model achieves strong results on classification (ModelNet40), part segmentation (ShapeNetPart), and semantic segmentation (S3DIS) benchmarks.</p>
<h2 id="why-point-clouds-need-topology-recovery">Why Point Clouds Need Topology Recovery</h2>
<p>Point clouds are the raw output of most 3D acquisition devices (<a href="https://en.wikipedia.org/wiki/Lidar">LiDAR</a>, stereo reconstruction) and serve as the simplest geometric representation for countless applications in graphics, robotics, and autonomous driving. However, point clouds inherently lack topological information: they are unordered sets of points with no connectivity structure.</p>
<p>Standard CNNs require grid-structured input, making them incompatible with irregular point cloud data. Volumetric approaches that discretize point clouds onto 3D grids introduce quantization artifacts and excessive memory usage. PointNet addressed this by operating on each point independently and aggregating with a symmetric function (max pooling), achieving permutation invariance. However, this independence means PointNet cannot capture local geometric structure.</p>
<p>PointNet++ partially addresses this by applying PointNet hierarchically in local neighborhoods, but it constructs neighborhoods based on Euclidean distances in the input space and does not update the graph structure during processing. The fundamental limitation is that treating points independently, even locally, prevents the model from learning the geometric relationships between points that carry important structural and semantic information.</p>
<h2 id="edgeconv-combining-local-geometry-with-global-structure">EdgeConv: Combining Local Geometry with Global Structure</h2>
<p>Given an $F$-dimensional point cloud $\mathbf{X} = \lbrace \mathbf{x}_1, \ldots, \mathbf{x}_n \rbrace \subseteq \mathbb{R}^F$, DGCNN constructs a directed graph $\mathcal{G} = (\mathcal{V}, \mathcal{E})$ as the $k$-nearest neighbor graph in $\mathbb{R}^F$, including self-loops so each node also points to itself. Edge features are defined as:</p>
<p>$$
\mathbf{x}_i&rsquo; = \square_{j:(i,j) \in \mathcal{E}} h_\Theta(\mathbf{x}_i, \mathbf{x}_j)
$$</p>
<p>where $h_\Theta$ is a learnable nonlinear function and $\square$ denotes a channel-wise symmetric aggregation operation (e.g., max or sum).</p>
<p>The choice of edge function $h_\Theta$ determines the model&rsquo;s properties. The authors analyze several options:</p>
<table>
	<thead>
			<tr>
					<th>Choice</th>
					<th>Edge function</th>
					<th>Properties</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Standard convolution</td>
					<td>$\theta_m \cdot \mathbf{x}_j$</td>
					<td>Requires fixed grid structure</td>
			</tr>
			<tr>
					<td>PointNet</td>
					<td>$h_\Theta(\mathbf{x}_i)$</td>
					<td>Global only, ignores local structure</td>
			</tr>
			<tr>
					<td>PointNet++</td>
					<td>$h_\Theta(\mathbf{x}_j)$</td>
					<td>Local only, loses global context</td>
			</tr>
			<tr>
					<td>Local difference</td>
					<td>$h_\Theta(\mathbf{x}_j - \mathbf{x}_i)$</td>
					<td>Local patches without global positioning</td>
			</tr>
			<tr>
					<td><strong>EdgeConv (this work)</strong></td>
					<td>$\bar{h}_\Theta(\mathbf{x}_i, \mathbf{x}_j - \mathbf{x}_i)$</td>
					<td><strong>Both local geometry and global structure</strong></td>
			</tr>
	</tbody>
</table>
<p>The concrete EdgeConv operation uses an asymmetric edge function that combines the point&rsquo;s own features $\mathbf{x}_i$ (global shape structure) with the relative difference $\mathbf{x}_j - \mathbf{x}_i$ (local neighborhood information):</p>
<p>$$
e&rsquo;_{ijm} = \text{ReLU}(\boldsymbol{\theta}_m \cdot (\mathbf{x}_j - \mathbf{x}_i) + \boldsymbol{\phi}_m \cdot \mathbf{x}_i)
$$</p>
<p>$$
x&rsquo;_{im} = \max_{j:(i,j) \in \mathcal{E}} e&rsquo;_{ijm}
$$</p>
<p>where $\boldsymbol{\Theta} = (\theta_1, \ldots, \theta_M, \phi_1, \ldots, \phi_M)$ are learnable parameters. This formulation can be implemented as a shared MLP followed by max pooling over neighbors.</p>
<h3 id="dynamic-graph-recomputation">Dynamic Graph Recomputation</h3>
<p>The defining feature of DGCNN is that the graph $\mathcal{G}^{(l)}$ is recomputed at each layer $l$ using k-NN in the current feature space, rather than being fixed based on input coordinates. This means:</p>
<ul>
<li>The receptive field grows to be as large as the diameter of the point cloud while remaining sparse.</li>
<li>Points that are far apart in Euclidean space but semantically similar (e.g., the two wings of an airplane) become neighbors in deeper feature spaces.</li>
<li>The model learns to construct the graph itself, rather than taking it as a fixed input.</li>
</ul>
<h3 id="permutation-and-translation-invariance">Permutation and Translation Invariance</h3>
<p>EdgeConv is permutation invariant because the max aggregation is a symmetric function. It has a &ldquo;partial&rdquo; translation invariance property: the local difference term $\mathbf{x}_j - \mathbf{x}_i$ is fully translation invariant, while the global term $\boldsymbol{\phi}_m \cdot \mathbf{x}_i$ is translation-dependent. Setting $\boldsymbol{\phi}_m = 0$ yields full translation invariance but loses global positioning information.</p>
<h2 id="benchmarks-classification-part-segmentation-and-scene-segmentation">Benchmarks: Classification, Part Segmentation, and Scene Segmentation</h2>
<h3 id="classification-on-modelnet40">Classification on ModelNet40</h3>
<p>The classification architecture uses four EdgeConv layers with output dimensions (64, 64, 128, 256), $k = 20$ nearest neighbors, and shortcut connections that concatenate all EdgeConv outputs into a $64 + 64 + 128 + 256 = 512$-dimensional per-point feature. A shared fully-connected layer (1024) aggregates these multi-scale features. Global max and sum pooling produce a 1D descriptor, followed by two fully-connected layers (512, 256) with dropout (probability 0.5). All layers use LeakyReLU and batch normalization. Input point clouds are rescaled to fit into the unit sphere.</p>
<p>Training uses SGD with momentum 0.9, initial learning rate 0.1, cosine annealing to 0.001, and batch size 32. Batch normalization momentum is 0.9 with no BN decay. Data augmentation includes random scaling and perturbation of object and point locations. The value of $k$ is selected using an 80/20 train/validation split, then the model is retrained on the full training set.</p>
<table>
	<thead>
			<tr>
					<th>Method</th>
					<th>Mean Class Acc. (%)</th>
					<th>Overall Acc. (%)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>PointNet</td>
					<td>86.0</td>
					<td>89.2</td>
			</tr>
			<tr>
					<td>PointNet++</td>
					<td>&ndash;</td>
					<td>90.7</td>
			</tr>
			<tr>
					<td>PointCNN</td>
					<td>88.1</td>
					<td>92.2</td>
			</tr>
			<tr>
					<td>PCNN</td>
					<td>&ndash;</td>
					<td>92.3</td>
			</tr>
			<tr>
					<td><strong>DGCNN (baseline, fixed graph)</strong></td>
					<td><strong>88.9</strong></td>
					<td><strong>91.7</strong></td>
			</tr>
			<tr>
					<td><strong>DGCNN</strong></td>
					<td><strong>90.2</strong></td>
					<td><strong>92.9</strong></td>
			</tr>
			<tr>
					<td><strong>DGCNN (2048 points)</strong></td>
					<td><strong>90.7</strong></td>
					<td><strong>93.5</strong></td>
			</tr>
	</tbody>
</table>
<h3 id="model-complexity">Model Complexity</h3>
<p>DGCNN achieves a favorable tradeoff between model size, inference speed, and accuracy:</p>
<table>
	<thead>
			<tr>
					<th>Method</th>
					<th>Model Size (MB)</th>
					<th>Time (ms)</th>
					<th>Accuracy (%)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>PointNet (baseline)</td>
					<td>9.4</td>
					<td>6.8</td>
					<td>87.1</td>
			</tr>
			<tr>
					<td>PointNet</td>
					<td>40</td>
					<td>16.6</td>
					<td>89.2</td>
			</tr>
			<tr>
					<td>PointNet++</td>
					<td>12</td>
					<td>163.2</td>
					<td>90.7</td>
			</tr>
			<tr>
					<td>PCNN</td>
					<td>94</td>
					<td>117.0</td>
					<td>92.3</td>
			</tr>
			<tr>
					<td>DGCNN (baseline)</td>
					<td>11</td>
					<td>19.7</td>
					<td>91.7</td>
			</tr>
			<tr>
					<td>DGCNN</td>
					<td>21</td>
					<td>27.2</td>
					<td>92.9</td>
			</tr>
	</tbody>
</table>
<p>The DGCNN baseline outperforms PointNet++ by 1.0% while being 7x faster. The full DGCNN outperforms PCNN by 0.6% while being 4x faster with 4.5x fewer parameters.</p>
<h3 id="ablation-studies">Ablation Studies</h3>
<table>
	<thead>
			<tr>
					<th style="text-align: center">Centralization</th>
					<th style="text-align: center">Dynamic Graph</th>
					<th style="text-align: center">2048 Points</th>
					<th>Mean Class (%)</th>
					<th>Overall (%)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td style="text-align: center"></td>
					<td style="text-align: center"></td>
					<td style="text-align: center"></td>
					<td>88.9</td>
					<td>91.7</td>
			</tr>
			<tr>
					<td style="text-align: center">x</td>
					<td style="text-align: center"></td>
					<td style="text-align: center"></td>
					<td>89.3</td>
					<td>92.2</td>
			</tr>
			<tr>
					<td style="text-align: center">x</td>
					<td style="text-align: center">x</td>
					<td style="text-align: center"></td>
					<td>90.2</td>
					<td>92.9</td>
			</tr>
			<tr>
					<td style="text-align: center">x</td>
					<td style="text-align: center">x</td>
					<td style="text-align: center">x</td>
					<td>90.7</td>
					<td>93.5</td>
			</tr>
	</tbody>
</table>
<p>The choice of $k$ also matters:</p>
<table>
	<thead>
			<tr>
					<th>$k$</th>
					<th>Mean Class Acc. (%)</th>
					<th>Overall Acc. (%)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>5</td>
					<td>88.0</td>
					<td>90.5</td>
			</tr>
			<tr>
					<td>10</td>
					<td>88.9</td>
					<td>91.4</td>
			</tr>
			<tr>
					<td>20</td>
					<td>90.2</td>
					<td>92.9</td>
			</tr>
			<tr>
					<td>40</td>
					<td>89.4</td>
					<td>92.4</td>
			</tr>
	</tbody>
</table>
<p>$k = 20$ performs best on 1024 points. Larger $k$ (e.g., 40) degrades performance because Euclidean distance poorly approximates geodesic distance at larger scales for a given point density.</p>
<h3 id="part-segmentation-on-shapenetpart">Part Segmentation on ShapeNetPart</h3>
<p>On the ShapeNetPart dataset (16,881 shapes, 16 categories, 50 part labels), DGCNN achieves 85.2% mean IoU, comparable to PointNet++ (85.1%) and PointCNN (86.1%). The model also demonstrates robustness to partial data, maintaining reasonable segmentation quality even when half of the points are removed.</p>
<h3 id="indoor-scene-segmentation-on-s3dis">Indoor Scene Segmentation on S3DIS</h3>
<p>On the Stanford Large-Scale 3D Indoor Spaces Dataset (6 indoor areas, 272 rooms, 13 semantic categories), DGCNN achieves 56.1% mean IoU and 84.1% overall accuracy using 6-fold cross-validation over the areas, outperforming PointNet (47.6% / 78.5%) and producing smoother segmentation boundaries. Each point is represented as a 9D vector (XYZ, RGB, and normalized spatial coordinates), with 4,096 points sampled per $1\text{m} \times 1\text{m}$ block during training.</p>
<h2 id="semantic-feature-spaces-and-future-directions">Semantic Feature Spaces and Future Directions</h2>
<p>A key qualitative finding is that the feature spaces learned by DGCNN in deeper layers capture semantic similarity rather than spatial proximity. Visualizations show that semantically similar structures (e.g., all legs of a table, or all wings of an airplane) are brought close together in feature space, even when they are far apart in the original 3D embedding. This property also transfers across shapes: features from one airplane&rsquo;s wing are close to the wing features of a different airplane in the learned feature space.</p>
<p>The authors identify several directions for future work:</p>
<ul>
<li><strong>Efficiency</strong>: Incorporating fast data structures (e.g., KD-trees) instead of computing pairwise distances for k-NN queries.</li>
<li><strong>Higher-order relationships</strong>: Considering tuples of points rather than only pairwise relationships.</li>
<li><strong>Non-shared transformations</strong>: Applying different transformations to different local patches rather than using shared weights.</li>
<li><strong>Abstract point clouds</strong>: Extending the approach to non-geometric applications like document retrieval and image processing, where the role of geometry in abstract feature spaces may provide new insights.</li>
</ul>
<p>The model has some limitations. On S3DIS, PointCNN achieves notably higher mean IoU (65.39% vs. 56.1%), suggesting room for improvement on large-scale scene segmentation. The dynamic k-NN computation adds overhead relative to fixed-graph approaches, though the overall model remains efficient.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
	<thead>
			<tr>
					<th>Purpose</th>
					<th>Dataset</th>
					<th>Size</th>
					<th>Notes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Classification</td>
					<td>ModelNet40</td>
					<td>12,311 CAD models (40 categories)</td>
					<td>1,024 points uniformly sampled per model</td>
			</tr>
			<tr>
					<td>Part Segmentation</td>
					<td>ShapeNetPart</td>
					<td>16,881 shapes (16 categories, 50 parts)</td>
					<td>2,048 points per shape</td>
			</tr>
			<tr>
					<td>Scene Segmentation</td>
					<td>S3DIS</td>
					<td>272 rooms (13 categories)</td>
					<td>4,096 points per 1m x 1m block</td>
			</tr>
	</tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li><strong>k-NN graph construction</strong>: Pairwise distance matrix in feature space, $k = 20$ (classification) or $k = 40$ (2048 points).</li>
<li><strong>EdgeConv</strong>: Shared MLP on concatenated $[\mathbf{x}_i, \mathbf{x}_j - \mathbf{x}_i]$ features, followed by channel-wise max pooling over neighbors.</li>
<li><strong>Dynamic graph update</strong>: Graph recomputed from k-NN in feature space at each EdgeConv layer.</li>
</ul>
<h3 id="models">Models</h3>
<ul>
<li><strong>Classification</strong>: 4 EdgeConv layers (64, 64, 128, 256) + shortcut concatenation (512-dim) + shared FC (1024) + global max/sum pooling + FC (512, 256). 21 MB.</li>
<li><strong>Segmentation</strong>: Spatial transformer + 3 EdgeConv layers + shared FC (1024) aggregation + shortcut connections + FC (256, 256, 128).</li>
<li>All layers use LeakyReLU and batch normalization. Dropout 0.5 in final FC layers.</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<table>
	<thead>
			<tr>
					<th>Task</th>
					<th>Metric</th>
					<th>DGCNN</th>
					<th>Best Baseline</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>ModelNet40 Classification</td>
					<td>Overall Accuracy</td>
					<td>92.9%</td>
					<td>92.3% (PCNN)</td>
			</tr>
			<tr>
					<td>ShapeNetPart Segmentation</td>
					<td>Mean IoU</td>
					<td>85.2%</td>
					<td>86.1% (PointCNN)</td>
			</tr>
			<tr>
					<td>S3DIS Scene Segmentation</td>
					<td>Mean IoU</td>
					<td>56.1%</td>
					<td>65.39% (PointCNN)</td>
			</tr>
	</tbody>
</table>
<h3 id="artifacts">Artifacts</h3>
<table>
	<thead>
			<tr>
					<th>Artifact</th>
					<th>Type</th>
					<th>License</th>
					<th>Notes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><a href="https://github.com/WangYueFt/dgcnn">WangYueFt/dgcnn</a></td>
					<td>Code</td>
					<td>MIT</td>
					<td>Official TensorFlow and PyTorch implementations</td>
			</tr>
	</tbody>
</table>
<h3 id="hardware">Hardware</h3>
<ul>
<li>Training used NVIDIA TITAN X GPUs. Distributed training (2 GPUs) for part segmentation.</li>
<li>Forward pass time: 27.2 ms per sample (1,024 points) on a single GPU.</li>
</ul>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Wang, Y., Sun, Y., Liu, Z., Sarma, S. E., Bronstein, M. M., &amp; Solomon, J. M. (2019). Dynamic Graph CNN for Learning on Point Clouds. <em>ACM Transactions on Graphics</em>, 38(5), Article 146. <a href="https://doi.org/10.1145/3326362">https://doi.org/10.1145/3326362</a></p>
<p><strong>Code</strong>: <a href="https://github.com/WangYueFt/dgcnn">github.com/WangYueFt/dgcnn</a> (MIT License)</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{wang2019dynamic,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Dynamic Graph CNN for Learning on Point Clouds}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Wang, Yue and Sun, Yongbin and Liu, Ziwei and Sarma, Sanjay E. and Bronstein, Michael M. and Solomon, Justin M.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{ACM Transactions on Graphics}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{38}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{5}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">articleno</span>=<span style="color:#e6db74">{146}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{1--12}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2019}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{ACM}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1145/3326362}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Defining Disentangled Representations via Group Theory</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/defining-disentangled-representations/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/defining-disentangled-representations/</guid><description>First formal definition of disentangled representations using group theory, connecting symmetry transformations to vector space decompositions.</description><content:encoded><![CDATA[<h2 id="a-theory-paper-grounding-disentanglement-in-symmetry">A Theory Paper Grounding Disentanglement in Symmetry</h2>
<p>This is a <strong>Theory</strong> paper that provides the first formal mathematical definition of disentangled representations. Rather than proposing a new learning algorithm or evaluating existing methods, the paper uses group theory and representation theory to define precisely what it means for a representation to be disentangled. The authors argue that the relevant structure of the world is captured by symmetry transformations, and that a disentangled representation must decompose into independent subspaces aligned with the decomposition of the corresponding symmetry group.</p>
<h2 id="why-disentangling-lacks-a-formal-foundation">Why Disentangling Lacks a Formal Foundation</h2>
<p>Disentangled representation learning aims to learn representations where distinct factors of variation in the data are separated into independent components. This idea has driven significant research, particularly through models like $\beta$-VAE and InfoGAN. Despite this progress, the field has lacked agreement on several fundamental questions: what constitutes the &ldquo;data generative factors,&rdquo; whether each factor should correspond to a single latent dimension or multiple dimensions, and whether a disentangled representation should have a unique axis alignment.</p>
<p>Without a formal definition, evaluating disentanglement methods remains subjective, relying on human intuition or metrics that encode different (sometimes contradictory) assumptions. For example, some metrics penalize multi-dimensional subspaces while others allow them. The lack of formal grounding also means there is no principled way to determine whether certain factors of variation (such as 3D rotations) can even be disentangled in principle.</p>
<p>The authors draw inspiration from physics, where symmetry transformations have been central to understanding world structure since <a href="https://en.wikipedia.org/wiki/Noether%27s_theorem">Noether&rsquo;s theorem</a> connected conservation laws to continuous symmetries. Gell-Mann&rsquo;s prediction of the $\Omega^{-}$ particle from symmetry-based classification of hadrons, and the unification of electricity and magnetism through shared symmetry transformations, illustrate the power of the symmetry perspective for generalization to new domains.</p>
<h2 id="symmetry-groups-as-the-foundation-for-disentanglement">Symmetry Groups as the Foundation for Disentanglement</h2>
<p>The core insight is that the &ldquo;data generative factors&rdquo; previously used to discuss disentanglement should be replaced by symmetry transformations of the world. The paper defines a disentangled representation through three key concepts.</p>
<h3 id="disentangled-group-action">Disentangled Group Action</h3>
<p>Given a group $G$ that decomposes as a <a href="https://en.wikipedia.org/wiki/Direct_product_of_groups">direct product</a> $G = G_1 \times G_2 \times \ldots \times G_n$, an action of $G$ on a set $X$ is <strong>disentangled</strong> if there exists a decomposition $X = X_1 \times X_2 \times \ldots \times X_n$ such that each subgroup $G_i$ acts only on $X_i$ and leaves all other components fixed:</p>
<p>$$(g_1, g_2) \cdot (v_1, v_2) = (g_1 \cdot_1 v_1, g_2 \cdot_2 v_2)$$</p>
<h3 id="disentangled-representation">Disentangled Representation</h3>
<p>Let $W$ be the set of world states with symmetry group $G$ acting on it. A generative process $b: W \to O$ produces observations, and an inference process $h: O \to Z$ produces representations. The composition $f = h \circ b$ maps world states to representations. The representation is <strong>disentangled</strong> if:</p>
<ol>
<li>There exists an action $\cdot: G \times Z \to Z$</li>
<li>The map $f: W \to Z$ is <strong><a href="https://en.wikipedia.org/wiki/Equivariant_map">equivariant</a></strong>: $g \cdot f(w) = f(g \cdot w)$ for all $g \in G, w \in W$</li>
<li>There exists a decomposition $Z = Z_1 \oplus Z_2 \oplus \ldots \oplus Z_n$ such that each $Z_i$ is affected only by $G_i$ and fixed by all other subgroups</li>
</ol>
<p>The equivariance condition ensures that the symmetry structure of the world is faithfully reflected in the representation space.</p>
<h3 id="linear-disentangled-representation">Linear Disentangled Representation</h3>
<p>When the group action on $Z$ is additionally constrained to be linear, the representation becomes a <strong>linear disentangled representation</strong>. This leverages <a href="https://en.wikipedia.org/wiki/Group_representation">group representation theory</a>, where the action is described by a homomorphism $\rho: G \to GL(Z)$. The representation is linearly disentangled if it decomposes as a direct sum $\rho = \rho_1 \oplus \rho_2 \oplus \ldots \oplus \rho_n$, where each $\rho_i$ acts only on $Z_i$. In matrix terms, this means $\rho(g)$ takes a block-diagonal form.</p>
<p>For the irreducible representations of a direct product group $G = G_1 \times G_2$, disentanglement requires that each irreducible component $\rho_1 \otimes \rho_2$ has at most one non-trivial factor. This prevents any subspace from being jointly affected by multiple subgroups.</p>
<h2 id="grid-world-example-and-the-so3-counterexample">Grid World Example and the SO(3) Counterexample</h2>
<p>Since this is a theory paper, the &ldquo;experiments&rdquo; consist of worked examples that illustrate the definition.</p>
<h3 id="grid-world-verification">Grid World Verification</h3>
<p>The authors consider a grid world where an object can translate horizontally, vertically, and change color, with wraparound boundaries. The symmetry group decomposes as $G = G_x \times G_y \times G_c$, where each subgroup is isomorphic to the <a href="https://en.wikipedia.org/wiki/Cyclic_group">cyclic group</a> $C_N$.</p>
<p>A CCI-VAE model trained on observations from this world learns a representation that approximately satisfies the equivariance condition $f(x, y, c) \approx (\lambda_x x, \lambda_y y, \lambda_c c)$, where each subgroup acts independently on its corresponding subspace. The group structure (commutativity of actions) is approximately preserved, though the learned representation uses translation rather than linear action, and the cyclic structure is lost.</p>
<p>For a linear disentangled representation, the map $f(x, y, c) = (e^{2\pi i x / N}, e^{2\pi i y / N}, e^{2\pi i c / N})$ over $\mathbb{C}^3$ provides an exact solution. The generator of each subgroup acts as multiplication by $e^{2\pi i / N}$ on its corresponding coordinate, yielding a truly linear and disentangled action. Equivalently, viewing $\rho$ as a representation over $\mathbb{R}^6$ (since $\mathbb{C}^3 \cong \mathbb{R}^6$), the group action is expressed using block-diagonal matrices of $2 \times 2$ rotation matrices, and each invariant subspace becomes two-dimensional.</p>
<h3 id="3d-rotations-cannot-be-disentangled">3D Rotations Cannot Be Disentangled</h3>
<p>The group of 3D rotations <a href="https://en.wikipedia.org/wiki/3D_rotation_group">$SO(3)$</a> has subgroups for rotations about the $x$, $y$, and $z$ axes. Intuitively, one might expect to disentangle these three rotation axes. However, rotations about different axes do not commute (rotating $90°$ about $x$ then $y$ gives a different result from $y$ then $x$), so $SO(3)$ cannot be written as a direct product of these subgroups. The definition correctly rules out disentangling along these lines.</p>
<p>Rotations can still be disentangled from other independent symmetries. For an object that can rotate and change color, the relevant group $G = SO(3) \times G_c$ is a valid direct product, so rotation and color form two disentangled subspaces (even though the rotation subspace is itself multi-dimensional and internally entangled).</p>
<h2 id="resolving-disagreements-and-defining-the-path-forward">Resolving Disagreements and Defining the Path Forward</h2>
<h3 id="backward-compatibility-with-existing-intuitions">Backward Compatibility with Existing Intuitions</h3>
<p>The paper evaluates its definition against three established dimensions of disentanglement:</p>
<p><strong>Modularity</strong> (each latent dimension encodes at most one factor): Satisfied by the new definition, with &ldquo;data generative factors&rdquo; replaced by &ldquo;disentangled actions of the symmetry group.&rdquo; The $SO(3)$ case shows where the new definition disagrees with naive intuition, correctly identifying that non-commuting factors cannot be disentangled.</p>
<p><strong>Compactness</strong> (each factor encoded by a single dimension): The new definition allows multi-dimensional subspaces, siding with approaches that permit distributed representations of individual factors. The dimensionality of each subspace is determined by the structure of the corresponding group representation.</p>
<p><strong>Explicitness</strong> (factors linearly decodable): The general definition does not require linearity. Linear disentangled representations are a strictly stronger condition, and the paper provides a separate formal definition for this case.</p>
<h3 id="key-consequences">Key Consequences</h3>
<p>The definition is relative to a particular decomposition of the symmetry group into subgroups. This has two implications. First, the same group may admit multiple decompositions, and different decompositions yield different disentangled representations (potentially useful for different downstream tasks). Second, identifying the &ldquo;natural&rdquo; decomposition is a separate problem that the authors leave to future work, suggesting that active perception and causal interventions may play a role.</p>
<p>The paper connects to Locatello et al. (2018), who proved that unsupervised learning of disentangled representations is impossible without inductive biases. The symmetry-based framework suggests that such biases could come from an agent&rsquo;s ability to interact with the world and discover which aspects remain invariant under various transformations.</p>
<h3 id="limitations">Limitations</h3>
<p>The paper explicitly focuses on defining disentanglement rather than solving the learning problem. It assumes that the symmetry group decomposes as a direct product of subgroups and that a useful decomposition is known. The authors acknowledge that relaxing these assumptions (e.g., discovering useful decompositions automatically) is important future work. The worked examples use toy environments, and bridging the gap to realistic data remains an open challenge.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<p>This is a purely theoretical paper. The only empirical element is a qualitative demonstration using a CCI-VAE model on a grid world environment, where an object translates on a grid with wraparound and changes color through discrete steps on a circular hue axis.</p>
<h3 id="algorithms">Algorithms</h3>
<p>No new algorithms are proposed. The CCI-VAE model from Burgess et al. (2018) is used for the grid world demonstration. The paper&rsquo;s contribution is a set of formal definitions, not an algorithmic procedure.</p>
<h3 id="evaluation">Evaluation</h3>
<p>No quantitative evaluation is performed. The paper discusses how existing disentanglement metrics relate to the proposed definition, noting that they each capture different subsets of the three dimensions (modularity, compactness, explicitness) and that the formal definition provides a principled way to evaluate their relative merits.</p>
<h3 id="reproducibility-status-closed">Reproducibility Status: Closed</h3>
<p>This is a theory paper whose primary contribution is a set of formal definitions. The theoretical content (definitions, proofs, worked examples) is self-contained in the paper. No code, data, or models are released. The CCI-VAE demonstration uses a model from Burgess et al. (2018), but no implementation or training details specific to the grid world experiment are provided.</p>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Higgins, I., Amos, D., Pfau, D., Racanière, S., Matthey, L., Rezende, D., &amp; Lerchner, A. (2018). Towards a Definition of Disentangled Representations. <em>arXiv preprint arXiv:1812.02230</em>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@misc</span>{higgins2018towards,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Towards a Definition of Disentangled Representations}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Higgins, Irina and Amos, David and Pfau, David and Racani\`{e}re, S\&#39;{e}bastien and Matthey, Lo\&#34;{i}c and Rezende, Danilo and Lerchner, Alexander}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2018}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">eprint</span>=<span style="color:#e6db74">{1812.02230}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">archiveprefix</span>=<span style="color:#e6db74">{arXiv}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">primaryclass</span>=<span style="color:#e6db74">{cs.LG}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Spherical CNNs: Rotation-Equivariant Networks on the Sphere</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/spherical-cnns/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/spherical-cnns/</guid><description>Cohen et al. introduce rotation-equivariant spherical CNNs that define cross-correlation on SO(3), computed via generalized FFT from harmonic analysis.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a <strong>method paper</strong> that introduces the theory and implementation of convolutional neural networks on the sphere. The key contribution is defining spherical cross-correlation that is SO(3)-equivariant and can be computed efficiently using generalized Fast Fourier Transforms from non-commutative harmonic analysis.</p>
<h2 id="why-planar-convolutions-fail-on-spherical-data">Why planar convolutions fail on spherical data</h2>
<p>Many problems require analyzing spherical signals: omnidirectional vision for robots and autonomous vehicles, molecular regression, and global weather modeling. A naive approach of projecting spherical data to a plane introduces space-varying distortions that break translational weight sharing. Rotating a spherical signal cannot be emulated by translating its planar projection.</p>
<p>The fundamental issue is geometric: patterns on a plane move via translations, but patterns on a sphere move via 3D rotations. A spherical CNN should detect patterns regardless of how they are rotated over the sphere. The relevant symmetry group is SO(3) (the group of all 3D rotations).</p>
<h2 id="spherical-cross-correlation-and-the-so3-output-space">Spherical cross-correlation and the SO(3) output space</h2>
<p>The paper defines spherical cross-correlation by replacing filter translations with rotations. For spherical signals $f$ on $S^2$ (the unit sphere) and filter $\psi$, the correlation is:</p>
<p>$$\lbrack\psi \star f\rbrack(R) = \langle L_R \psi, f \rangle = \int_{S^2} \sum_{k=1}^{K} \psi_k(R^{-1}x) f_k(x) , dx$$</p>
<p>where $L_R$ is the rotation operator $\lbrack L_R f\rbrack(x) = f(R^{-1}x)$.</p>
<p>A crucial subtlety: whereas the space of moves for the plane (2D translations) is isomorphic to the plane itself, the space of moves for the sphere (3D rotations) is SO(3), a different three-dimensional manifold. The output of a spherical correlation is therefore a function on SO(3), not on $S^2$. This means subsequent layers must use SO(3) correlation:</p>
<p>$$\lbrack\psi \star f\rbrack(R) = \int_{\text{SO}(3)} \sum_{k=1}^{K} \psi_k(R^{-1}Q) f_k(Q) , dQ$$</p>
<h3 id="equivariance-proof">Equivariance proof</h3>
<p>Equivariance follows from the unitarity of $L_R$ in a single line:</p>
<p>$$\lbrack\psi \star \lbrack L_Q f\rbrack\rbrack(R) = \langle L_R \psi, L_Q f \rangle = \langle L_{Q^{-1}R} \psi, f \rangle = \lbrack\psi \star f\rbrack(Q^{-1}R) = \lbrack L_Q\lbrack\psi \star f\rbrack\rbrack(R)$$</p>
<p>This holds for both $S^2$ and SO(3) correlation.</p>
<h2 id="efficient-computation-via-generalized-fft">Efficient computation via generalized FFT</h2>
<p>A naive SO(3) correlation is $O(n^6)$. The paper addresses this using the generalized Fourier transform (GFT) from non-commutative harmonic analysis.</p>
<p>The GFT projects functions onto orthogonal basis functions: spherical harmonics $Y_m^l(x)$ for $S^2$, and Wigner D-functions $D_{mn}^l(R)$ for SO(3). Both satisfy generalized Fourier theorems:</p>
<ul>
<li><strong>SO(3) convolution theorem</strong>: $\widehat{\psi \star f} = \hat{f} \cdot \hat{\psi}^\dagger$ (matrix multiplication of block Fourier coefficients)</li>
<li><strong>$S^2$ convolution theorem</strong>: $\widehat{\psi \star f}^l = \hat{f}^l \cdot \hat{\psi}^{l\dagger}$ (outer product of $S^2$ Fourier coefficient vectors)</li>
</ul>
<p>The SO(3) FFT works in two steps: (1) standard 2D FFT over the $\alpha$ and $\gamma$ Euler angles, then (2) linear contraction of the $\beta$ axis with precomputed Wigner-d function samples, implemented as a custom GPU kernel.</p>
<h2 id="experiments">Experiments</h2>
<h3 id="equivariance-error">Equivariance error</h3>
<p>Since the theory applies to continuous functions but the implementation is discretized, the authors rigorously measure equivariance error. The approximation error grows with resolution and depth but stays manageable for practical bandwidths. With ReLU activations, the error is higher but stays flat across layers, indicating the error comes from feature map rotation (exact only for bandlimited functions) rather than accumulating through the network.</p>
<h3 id="spherical-mnist">Spherical MNIST</h3>
<p>MNIST digits projected onto the sphere, tested in non-rotated (NR) and rotated (R) settings with ~165K parameters per model:</p>
<table>
	<thead>
			<tr>
					<th>Train / Test</th>
					<th>Planar CNN</th>
					<th>Spherical CNN</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>NR / NR</td>
					<td>99%</td>
					<td>91%</td>
			</tr>
			<tr>
					<td>R / R</td>
					<td>45%</td>
					<td>91%</td>
			</tr>
			<tr>
					<td>NR / R</td>
					<td>9%</td>
					<td>85%</td>
			</tr>
	</tbody>
</table>
<p>The planar CNN collapses to chance when trained on non-rotated data and tested on rotated data. The spherical CNN maintains strong performance across all settings.</p>
<h3 id="3d-shape-recognition-shrec17">3D shape recognition (SHREC17)</h3>
<p>3D meshes projected onto an enclosing sphere via ray casting. For each point on the sphere, a ray is cast toward the origin, collecting three types of information from the intersection: ray length and cos/sin of the surface angle. The same three channels are computed for the convex hull, giving 6 channels total. The network (~1.4M parameters) placed 2nd on recall, mAP, and NDCG, and 3rd on precision and F1 in the SHREC17 competition, competing against methods with highly task-specialized architectures.</p>
<h3 id="molecular-atomization-energy-qm7">Molecular atomization energy (QM7)</h3>
<p>Molecules represented as spherical potential functions around each atom (generalizing the Coulomb matrix). A deep ResNet-style $S^2$CNN with DeepSets-style permutation-invariant aggregation over atoms achieved 8.47 RMSE, outperforming all kernel-based approaches and sorted Coulomb matrix methods.</p>
<h2 id="discussion-and-future-directions">Discussion and future directions</h2>
<p>The authors highlight several avenues for future work. For volumetric tasks like 3D model recognition, extending beyond SO(3) to the roto-translation group SE(3) could improve results. They also note that a Steerable CNN for the sphere would enable analysis of vector fields (e.g., global wind directions). Omnidirectional vision is mentioned as a compelling application as 360-degree sensors become more prevalent.</p>
<h2 id="reproducibility">Reproducibility</h2>
<p>The official PyTorch implementation is publicly available. The code does not support recent PyTorch versions due to changes in the FFT interface.</p>
<table>
	<thead>
			<tr>
					<th>Artifact</th>
					<th>Type</th>
					<th>License</th>
					<th>Notes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><a href="https://github.com/jonkhler/s2cnn">s2cnn</a></td>
					<td>Code</td>
					<td>MIT</td>
					<td>Official PyTorch implementation (deprecated for modern PyTorch)</td>
			</tr>
	</tbody>
</table>
<p>Hardware requirements from the paper: the SHREC17 model uses 8GB GPU memory at batch size 16 and takes 50 hours to train. The QM7 model uses 7GB at batch size 20 and takes 3 hours to train. Datasets used (Spherical MNIST, SHREC17, QM7) are all publicly available.</p>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Cohen, T. S., Geiger, M., Köhler, J., &amp; Welling, M. (2018). Spherical CNNs. <em>International Conference on Learning Representations</em>. <a href="https://arxiv.org/abs/1801.10130">https://arxiv.org/abs/1801.10130</a></p>
<p><strong>Publication</strong>: ICLR 2018</p>
<p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://openreview.net/forum?id=Hkbd5xZRb">OpenReview</a></li>
<li><a href="https://arxiv.org/abs/1801.10130">arXiv</a></li>
<li><a href="https://github.com/jonkhler/s2cnn">GitHub</a></li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@inproceedings</span>{cohen2018spherical,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Spherical {CNNs}}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Cohen, Taco S. and Geiger, Mario and K{\&#34;o}hler, Jonas and Welling, Max}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">booktitle</span>=<span style="color:#e6db74">{International Conference on Learning Representations}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2018}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>SE(3)-Transformers: Equivariant Attention for 3D Data</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/se3-transformers/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/se3-transformers/</guid><description>Fuchs et al. combine self-attention with SE(3)-equivariance for 3D point clouds using invariant attention weights and equivariant value messages.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a <strong>method paper</strong> that introduces the SE(3)-Transformer, a self-attention mechanism for 3D point clouds and graphs that is equivariant under continuous 3D rotations and translations. It builds on tensor field networks (TFNs) by adding data-dependent attention weights, resolving a known expressiveness limitation of equivariant convolutions.</p>
<h2 id="why-equivariant-attention-for-point-clouds">Why equivariant attention for point clouds?</h2>
<p>Point cloud data appears in 3D object scans, molecular structures, and particle simulations. Two properties are essential: handling varying numbers of irregularly sampled points, and invariance to global changes in pose (rotations and translations).</p>
<p>Self-attention handles variable-size inputs naturally and has proven effective across many domains. Tensor field networks provide SE(3)-equivariant convolutions but suffer from a key limitation: their filter kernels are decomposed into learnable radial functions and fixed angular components (spherical harmonics). The angular dependence is completely constrained by the equivariance condition, leaving no learnable degrees of freedom in the angular direction. This has been identified in the literature as severely limiting performance.</p>
<p>The SE(3)-Transformer resolves this by introducing data-dependent attention weights that modulate the angular profile of the kernels while maintaining equivariance.</p>
<h2 id="architecture-invariant-attention-meets-equivariant-values">Architecture: invariant attention meets equivariant values</h2>
<p>The core layer combines three components:</p>
<p>$$\mathbf{f}_{\text{out},i}^{\ell} = \underbrace{\mathbf{W}_V^{\ell\ell} \mathbf{f}_{\text{in},i}^{\ell}}_{\text{self-interaction}} + \sum_{k \geq 0} \sum_{j \in \mathcal{N}_i \setminus i} \underbrace{\alpha_{ij}}_{\text{attention}} \underbrace{\mathbf{W}_V^{\ell k}(\mathbf{x}_j - \mathbf{x}_i) \mathbf{f}_{\text{in},j}^k}_{\text{value message}}$$</p>
<h3 id="invariant-attention-weights">Invariant attention weights</h3>
<p>The attention weights use dot-product attention between equivariant queries and keys:</p>
<p>$$\alpha_{ij} = \frac{\exp(\mathbf{q}_i^\top \mathbf{k}_{ij})}{\sum_{j&rsquo; \in \mathcal{N}_i \setminus i} \exp(\mathbf{q}_i^\top \mathbf{k}_{ij&rsquo;})}$$</p>
<p>Both $\mathbf{q}_i$ and $\mathbf{k}_{ij}$ are constructed using TFN-type linear embeddings, making them SE(3)-equivariant. Their inner product is invariant because SO(3) representations are orthogonal: $\mathbf{q}^\top \mathbf{S}_g^\top \mathbf{S}_g \mathbf{k} = \mathbf{q}^\top \mathbf{k}$.</p>
<h3 id="equivariant-value-messages">Equivariant value messages</h3>
<p>The value messages use the same TFN kernel structure as tensor field networks: weight kernels $\mathbf{W}_V^{\ell k}(\mathbf{x})$ decomposed into learnable radial functions and Clebsch-Gordan/spherical harmonic angular components. Features are typed by irreducible representation degree $\ell$ (the independent matrix blocks into which SO(3) group actions decompose): type-0 vectors are rotation-invariant scalars, type-1 vectors transform as 3D vectors, and so on.</p>
<h3 id="angular-modulation">Angular modulation</h3>
<p>The attention weights $\alpha_{ij}$ multiply the value messages, creating data-dependent kernels $\alpha_{ij} \mathbf{W}_V^{\ell k}(\mathbf{x})$. This effectively modulates the angular profile of the fixed spherical harmonic components, adding learnable angular degrees of freedom while preserving equivariance. The authors describe this as one of the first examples of a nonlinear equivariant layer.</p>
<h3 id="attentive-self-interaction">Attentive self-interaction</h3>
<p>The paper also introduces attentive self-interaction as an alternative to the standard linear self-interaction (analogous to 1x1 convolutions). Instead of fixed learned weights across all points, the weights are generated by an MLP operating on invariant inner products of the input features:</p>
<p>$$w_{i,c&rsquo;c}^{\ell\ell} = \text{MLP}\left(\bigoplus_{c,c&rsquo;} \mathbf{f}_{\text{in},i,c&rsquo;}^{\ell\top} \mathbf{f}_{\text{in},i,c}^{\ell}\right)$$</p>
<h2 id="experiments">Experiments</h2>
<h3 id="n-body-particle-simulation">N-body particle simulation</h3>
<p>Five charged particles carrying positive or negative charges, exerting repulsive or attractive forces on each other. The task is predicting positions and velocities 500 timesteps ahead. The SE(3)-Transformer achieves 0.0076 MSE on position (vs. 0.0139 for Set Transformer and 0.0151 for TFN), with equivariance error on the order of $10^{-7}$, confirming exact equivariance up to numerical precision.</p>
<h3 id="scanobjectnn-real-world-3d-object-classification">ScanObjectNN (real-world 3D object classification)</h3>
<p>2902 real-world scanned objects across 15 categories. This task is only SO(2)-invariant (gravity axis matters), so the authors provide the z-component as an additional scalar input. With only 128 input points, the SE(3)-Transformer+z achieves 85.0% accuracy, competitive with methods using 1024 points and task-specific architectures. The model learns to ignore the symmetry-breaking z-input when trained on rotation-augmented data.</p>
<h3 id="qm9-molecular-property-regression"><a href="/notes/chemistry/datasets/qm9/">QM9</a> molecular property regression</h3>
<p>134k molecules with up to 29 atoms, predicting 6 quantum chemical properties. The SE(3)-Transformer achieves competitive results against other equivariant models (TFN, Cormorant), with improvements over TFN on all six targets. Across all three experiments, the SE(3)-Transformer outperforms both a non-equivariant attention baseline (Set Transformer) and equivariant models without attention (TFN).</p>
<h3 id="practical-contributions">Practical contributions</h3>
<p>The paper includes a PyTorch spherical harmonics implementation that is 10x faster than Scipy on CPU and 100-1000x faster on GPU. For a ScanObjectNN model, this yields roughly 22x speedup of the forward pass compared to the lie-learn library, directly addressing a major bottleneck of TFN-based architectures.</p>
<h2 id="conclusions-and-limitations">Conclusions and limitations</h2>
<p>Adding attention to a roto-translation-equivariant model consistently led to higher accuracy and increased training stability across all three experiments. For large neighbourhoods, attention proved essential for model convergence. The equivariance constraints also improved performance compared to conventional (non-equivariant) attention in all experiments.</p>
<p>The authors note that the SE(3)-Transformer is inherently suited for classification and regression on molecular data and discuss applications in drug research, including early-stage suitability classification of molecules for inhibiting viral reproductive cycles.</p>
<h2 id="reproducibility">Reproducibility</h2>
<table>
	<thead>
			<tr>
					<th>Artifact</th>
					<th>Type</th>
					<th>License</th>
					<th>Notes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><a href="https://github.com/FabianFuchsML/se3-transformer-public">se3-transformer-public</a></td>
					<td>Code</td>
					<td>MIT</td>
					<td>Official PyTorch + DGL implementation</td>
			</tr>
	</tbody>
</table>
<p>The repository includes code for N-body simulations and QM9 experiments. Hyperparameters and architecture details are provided in the paper&rsquo;s appendix (4 equivariant layers, representation degrees, channels per degree, learning rates, batch sizes). Hardware requirements are not explicitly stated in the paper.</p>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Fuchs, F. B., Worrall, D. E., Fischer, V., &amp; Welling, M. (2020). SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks. <em>Advances in Neural Information Processing Systems</em>, 33. <a href="https://arxiv.org/abs/2006.10503">https://arxiv.org/abs/2006.10503</a></p>
<p><strong>Publication</strong>: NeurIPS 2020</p>
<p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://arxiv.org/abs/2006.10503">arXiv</a></li>
<li><a href="https://github.com/FabianFuchsML/se3-transformer-public">GitHub</a></li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@inproceedings</span>{fuchs2020se3,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{{SE(3)-Transformers}: 3D Roto-Translation Equivariant Attention Networks}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Fuchs, Fabian B. and Worrall, Daniel E. and Fischer, Volker and Welling, Max}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">booktitle</span>=<span style="color:#e6db74">{Advances in Neural Information Processing Systems}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{33}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2020}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>3D Steerable CNNs: Rotationally Equivariant Features</title><link>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/3d-steerable-cnns/</link><pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/machine-learning/geometric-deep-learning/3d-steerable-cnns/</guid><description>Weiler et al.'s NeurIPS 2018 paper introducing SE(3)-equivariant CNNs for volumetric data using group theory and spherical harmonics.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a <strong>method paper</strong> that introduces a novel neural network architecture, the 3D Steerable CNN. It provides a comprehensive theoretical derivation for the architecture grounded in group representation theory and demonstrates its practical application.</p>
<h2 id="what-is-the-motivation">What is the motivation?</h2>
<p>The work is motivated by the prevalence of <strong>symmetry</strong> in problems from the natural sciences. Standard 3D CNNs lack inherent equivariance to 3D rotations, a fundamental symmetry governed by the SE(3) group in many scientific datasets like molecular or protein structures. Building this symmetry directly into the model architecture as an <strong>inductive bias</strong> is expected to yield more data-efficient, generalizable, and physically meaningful models.</p>















<figure class="post-figure center ">
    <img src="/img/notes/3d-cnn-versus-3d-steerable-cnn.webp"
         alt="Comparison of standard 3D CNN versus 3D Steerable CNN for handling rotational symmetry. Panel A shows how standard CNNs produce distorted outputs when inputs are rotated, requiring data augmentation. Panel B shows how Steerable CNNs use spherical harmonic kernel bases to produce equivariant geometric field outputs that transform predictably under rotation."
         title="Comparison of standard 3D CNN versus 3D Steerable CNN for handling rotational symmetry. Panel A shows how standard CNNs produce distorted outputs when inputs are rotated, requiring data augmentation. Panel B shows how Steerable CNNs use spherical harmonic kernel bases to produce equivariant geometric field outputs that transform predictably under rotation."
         
         
         loading="lazy"
         class="post-image">
    
    <figcaption class="post-caption">Standard 3D CNNs (Panel A) produce inconsistent feature maps when inputs are rotated, requiring expensive data augmentation. 3D Steerable CNNs (Panel B) use analytically-derived spherical harmonic kernels to produce geometric field outputs that transform equivariantly under rotation.</figcaption>
    
</figure>

<h2 id="what-is-the-novelty-here">What is the novelty here?</h2>
<p>The core novelty is the rigorous and practical construction of a CNN architecture that is equivariant to 3D rigid body motions (SE(3) group). The key contributions are:</p>
<ul>
<li><strong>Geometric Feature Representation</strong>: Features are modeled as geometric <strong>fields</strong> (collections of scalars, vectors, and higher-order tensors) defined over $\mathbb{R}^{3}$. Each type of feature transforms according to an <strong>irreducible representation (irrep)</strong> of the rotation group SO(3).</li>
<li><strong>General Equivariant Convolution</strong>: The paper proves that the most general form of an SE(3)-equivariant linear map between these fields is a convolution with a <strong>rotation-steerable kernel</strong>.</li>
<li><strong>Analytical Kernel Basis</strong>: The main theoretical breakthrough is the analytical derivation of a complete basis for these steerable kernels. They solve the kernel&rsquo;s equivariance constraint, $\kappa(rx) = D^{j}(r)\kappa(x)D^{l}(r)^{-1}$, showing the solutions are functions whose angular components are <strong>spherical harmonics</strong>. The network&rsquo;s kernels are then parameterized as a learnable linear combination of these pre-computed basis functions, making the implementation a minor modification to standard 3D convolutions.</li>
</ul>















<figure class="post-figure center ">
    <img src="/img/notes/spherical-harmonics.webp"
         alt="Spherical harmonics visualization showing the angular basis functions organized by degree l (rows) and order m (columns). Row 0 shows the single s-type orbital (l=0), row 1 shows three p-type orbitals (l=1), row 2 shows five d-type orbitals (l=2), and row 3 shows seven f-type orbitals (l=3)."
         title="Spherical harmonics visualization showing the angular basis functions organized by degree l (rows) and order m (columns). Row 0 shows the single s-type orbital (l=0), row 1 shows three p-type orbitals (l=1), row 2 shows five d-type orbitals (l=2), and row 3 shows seven f-type orbitals (l=3)."
         
         
         loading="lazy"
         class="post-image">
    
    <figcaption class="post-caption">Spherical harmonics $Y_l^m$ organized by degree $l$ (rows) and order $m$ (columns). These functions form the angular basis for steerable kernels: $l=0$ (scalar), $l=1$ (vector/p-orbital), $l=2$ (rank-2 tensor/d-orbital), $l=3$ (rank-3 tensor/f-orbital). Each degree $l$ has $2l+1$ components.</figcaption>
    
</figure>

<ul>
<li><strong>Equivariant Nonlinearity</strong>: A novel <strong>gated nonlinearity</strong> is proposed for non-scalar features. It preserves equivariance by multiplying a feature field by a separately computed, learned scalar field (the gate).</li>
</ul>
<h2 id="what-experiments-were-performed">What experiments were performed?</h2>
<p>The model&rsquo;s performance was evaluated on a series of tasks with inherent rotational symmetry:</p>
<ol>
<li><strong>Tetris Classification</strong>: A toy problem to empirically validate the model&rsquo;s rotational equivariance by training on aligned blocks and testing on randomly rotated ones.</li>
<li><strong>SHREC17 3D Model Classification</strong>: A benchmark for classifying complex 3D shapes that are arbitrarily rotated.</li>
<li><strong>Amino Acid Propensity Prediction</strong>: A scientific application to predict amino acid types from their 3D atomic environments.</li>
<li><strong>CATH Protein Structure Classification</strong>: A challenging task on a new dataset introduced by the authors, requiring classification of global protein architecture, a problem with full SE(3) invariance.</li>
</ol>
<h2 id="what-outcomesconclusions">What outcomes/conclusions?</h2>
<p>The 3D Steerable CNN demonstrated clear advantages due to its built-in equivariance:</p>
<ul>
<li>It was empirically confirmed to be <strong>rotationally equivariant</strong>, achieving $99 \pm 2%$ test accuracy on the rotated Tetris dataset (averaged over 17 runs), compared to a standard 3D CNN&rsquo;s $27 \pm 7%$ accuracy.</li>
<li>On the amino acid prediction task the model achieves 0.58 accuracy, compared to 0.50 (regular-grid) and 0.56 (concentric-grid) baselines, using roughly half the parameters. On SHREC17 it reaches a total score (micro + macro mAP) of 1.11, compared to 1.13 for the leading contemporary system.</li>
<li>On the CATH protein classification task, it <strong>outperformed a deep 3D CNN baseline</strong> while using ~110x fewer parameters. This performance gap widened as the training data was reduced, highlighting the model&rsquo;s superior <strong>data efficiency</strong>.</li>
</ul>
<p>The paper concludes that 3D Steerable CNNs provide a universal and effective framework for incorporating SE(3) symmetry into deep learning models, leading to improved accuracy and efficiency for tasks involving volumetric data, particularly in scientific domains.</p>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<ul>
<li><strong>Input Format</strong>: All inputs must be voxelized. Point clouds require voxelization before use.
<ul>
<li><strong>Proteins (CATH)</strong>: $50^3$ grid, 0.2 nm voxel size. Simplified to $C_\alpha$ atoms only; Gaussian density placed at each atom position.</li>
<li><strong>3D Objects (SHREC17)</strong>: $64^3$ voxel grids.</li>
<li><strong>Tetris</strong>: $36^3$ input grid.</li>
</ul>
</li>
<li><strong>Splitting Strategy</strong>: CATH used a 10-fold split (7 train, 1 val, 2 test) strictly separated by &ldquo;superfamily&rdquo; level to prevent data leakage (&lt;40% sequence identity).</li>
</ul>
<h3 id="models">Models</h3>
<p><strong>Kernel Basis Construction</strong>:</p>
<ul>
<li>Constructed from <strong>Spherical Harmonics</strong> multiplied by <strong>Gaussian Radial Shells</strong>: $\exp\left(-\frac{1}{2}(|x|-m)^{2}/\sigma^{2}\right)$</li>
<li><strong>Anti-aliasing</strong>: A radially dependent angular frequency cutoff ($J_{\max}$) is applied to prevent aliasing near the origin.</li>
</ul>
<p><strong>Normalization</strong>: Uses <strong>Equivariant Batch Norm</strong>. Non-scalar fields are normalized by the average of their norms.</p>
<p><strong>Downsampling</strong>: Standard strided convolution breaks equivariance. The architecture uses <strong>low-pass filtering</strong> (Gaussian blur) before downsampling to maintain equivariance.</p>
<p><strong>Exact Architecture Configurations</strong>:</p>
<p><strong>Tetris Architecture</strong> (4 layers):</p>
<table>
	<thead>
			<tr>
					<th>Layer</th>
					<th>Field Types</th>
					<th>Spatial Size</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Input</td>
					<td>1 scalar</td>
					<td>$36^3$</td>
			</tr>
			<tr>
					<td>Layer 1</td>
					<td>4 scalars, 4 vectors ($l=1$), 4 tensors ($l=2$), 1 tensor ($l=3$)</td>
					<td>$40^3$</td>
			</tr>
			<tr>
					<td>Layer 2</td>
					<td>16 scalars, 16 vectors, 16 tensors ($l=2$)</td>
					<td>$22^3$ (stride 2)</td>
			</tr>
			<tr>
					<td>Layer 3</td>
					<td>32 scalars, 16 vectors, 16 tensors ($l=2$)</td>
					<td>$13^3$ (stride 2)</td>
			</tr>
			<tr>
					<td>Layer 4</td>
					<td>128 scalars</td>
					<td>$17^3$</td>
			</tr>
			<tr>
					<td>Output</td>
					<td>8 scalars (global average pool)</td>
					<td>$1$</td>
			</tr>
	</tbody>
</table>
<p><strong>SHREC17 Architecture</strong> (8 layers):</p>
<table>
	<thead>
			<tr>
					<th>Layers</th>
					<th>Field Types</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>1-2</td>
					<td>8 scalars, 4 vectors, 2 tensors ($l=2$)</td>
			</tr>
			<tr>
					<td>3-4</td>
					<td>16 scalars, 8 vectors, 4 tensors</td>
			</tr>
			<tr>
					<td>5-7</td>
					<td>32 scalars, 16 vectors, 8 tensors</td>
			</tr>
			<tr>
					<td>8</td>
					<td>512 scalars</td>
			</tr>
			<tr>
					<td>Output</td>
					<td>55 scalars (classes)</td>
			</tr>
	</tbody>
</table>
<p><strong>CATH Architecture</strong> (ResNet34-inspired):</p>
<p>Block progression: <code>(2,2,2,2)</code>, <code>(4,4,4,4)</code>, <code>(8,8,8,8)</code>, <code>(16,16,16,16)</code></p>
<p>Notation: <code>(a,b,c,d)</code> = $a$ scalars ($l=0$), $b$ vectors ($l=1$), $c$ rank-2 tensors ($l=2$), $d$ rank-3 tensors ($l=3$).</p>
<h3 id="algorithms">Algorithms</h3>
<p><strong>Parameter Counts</strong>:</p>
<table>
	<thead>
			<tr>
					<th>Task</th>
					<th>Model</th>
					<th>Parameters</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>CATH</td>
					<td>3D Steerable CNN</td>
					<td>143,560</td>
			</tr>
			<tr>
					<td>CATH</td>
					<td>Baseline (ResNet34-style)</td>
					<td>15,878,764</td>
			</tr>
			<tr>
					<td>Amino Acid</td>
					<td>3D Steerable CNN</td>
					<td>~32,600,000</td>
			</tr>
			<tr>
					<td>Amino Acid</td>
					<td>Regular grid baseline</td>
					<td>~61,100,000</td>
			</tr>
			<tr>
					<td>Amino Acid</td>
					<td>Concentric grid baseline</td>
					<td>~75,300,000</td>
			</tr>
	</tbody>
</table>
<p>Note: The concentric grid baseline groups voxels by distance from the molecular center, reflecting that atomic interactions are primarily distance-dependent (Torng, W., &amp; Altman, R. B. (2017). 3D deep convolutional neural networks for amino acid environment similarity analysis. <em>BMC Bioinformatics</em>, 18, 302). Amino acid parameter counts are rounded figures as reported in the paper.</p>
<p><strong>Hyperparameters &amp; Training</strong>:</p>
<table>
	<thead>
			<tr>
					<th>Parameter</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Optimizer</strong></td>
					<td>Adam</td>
			</tr>
			<tr>
					<td><strong>LR Scheduler</strong></td>
					<td>Exponential decay (0.94/epoch) after 40 epoch burn-in</td>
			</tr>
			<tr>
					<td><strong>Dropout</strong> (CATH)</td>
					<td>0.1 (Capsule-wide convolutional dropout)</td>
			</tr>
			<tr>
					<td><strong>Weight Decay</strong> (CATH)</td>
					<td>L1 &amp; L2 regularization: $10^{-8.5}$</td>
			</tr>
	</tbody>
</table>
<p><strong>Mathematical Formulations for Equivariance</strong>:</p>
<p>Standard operations like Batch Normalization and ReLU break rotational equivariance. The paper derives equivariant alternatives:</p>
<p><strong>Equivariant Batch Normalization</strong>:</p>
<p>Standard BN subtracts a mean, which introduces a preferred direction and breaks symmetry. <strong>Norm-based normalization</strong> scales feature fields by the average of their squared norms to preserve symmetry:</p>
<p>$$f_{i}(x) \mapsto f_{i}(x) \left( \frac{1}{|B|} \sum_{j \in B} \frac{1}{V} \int dx |f_{j}(x)|^{2} + \epsilon \right)^{-1/2}$$</p>
<p>This scales vector lengths to unit variance on average while avoiding mean subtraction, preserving directional information and symmetry.</p>
<p><strong>Equivariant Nonlinearities</strong>:</p>
<p>Applying ReLU to vector components independently breaks equivariance (this depends on the coordinate frame). Two approaches:</p>
<ol>
<li>
<p><strong>Norm Nonlinearity</strong> (geometric shrinking): Acts on magnitude, preserves direction. Shrinks vectors shorter than learned bias $\beta$ to zero:
$$f(x) \mapsto \text{ReLU}(|f(x)| - \beta) \frac{f(x)}{|f(x)|}$$
<em>Note: Found to converge slowly; omitted from final models.</em></p>
</li>
<li>
<p><strong>Gated Nonlinearity</strong> (used in practice): A separate scalar field $s(x)$ passes through sigmoid to create a gate $\sigma(s(x))$, which multiplies the geometric field:
$$f_{\text{out}}(x) = f_{\text{in}}(x) \cdot \sigma(s(x))$$
<em>Architecture implication: Requires extra scalar channels ($l=0$) specifically for gating higher-order channels ($l&gt;0$).</em></p>
</li>
</ol>
<p><strong>Voxelization Details</strong>:</p>
<p>For CATH protein inputs, Gaussian density is placed at each atom position with standard deviation equal to <strong>half the voxel width</strong> ($0.5 \times 0.2\text{ nm} = 0.1\text{ nm}$).</p>
<h3 id="evaluation">Evaluation</h3>
<table>
	<thead>
			<tr>
					<th>Task</th>
					<th>Metric</th>
					<th>Steerable CNN</th>
					<th>Baseline</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Tetris (rotated test)</td>
					<td>Accuracy</td>
					<td>$99 \pm 2%$</td>
					<td>$27 \pm 7%$ (standard 3D CNN)</td>
			</tr>
			<tr>
					<td>Amino Acid Propensity</td>
					<td>Accuracy</td>
					<td><strong>0.58</strong> (32.6M params)</td>
					<td>0.50 (regular grid, 61.1M params); 0.56 (concentric grid, 75.3M params)</td>
			</tr>
			<tr>
					<td>SHREC17</td>
					<td>micro + macro mAP (higher is better)</td>
					<td>1.11</td>
					<td>1.13 (SOTA)</td>
			</tr>
			<tr>
					<td>CATH</td>
					<td>Accuracy</td>
					<td>Higher across all training set sizes (see Figure 4; not reported as a single value) (143,560 params)</td>
					<td>Deep 3D CNN (15,878,764 params; ~110x more)</td>
			</tr>
	</tbody>
</table>
<p>Note: On SHREC17, the total score is micro mAP + macro mAP combined (higher is better). From Table 4 in the supplementary material: Steerable CNN micro mAP = 0.661, macro mAP = 0.449, total = 1.11. On CATH, the steerable CNN outperformed the baseline with ~110x fewer parameters, a gap that widened as training data was reduced.</p>
<h2 id="historical-context-from-peer-reviews">Historical Context (From Peer Reviews)</h2>
<p>The NeurIPS peer reviews reveal important context about the paper&rsquo;s structure and claims:</p>
<ul>
<li>
<p><strong>Evolution of Experiments</strong>: The <strong>SHREC17</strong> experiment and the <strong>arbitrary rotation</strong> test in Tetris were added during the rebuttal phase to address reviewer concerns about the lack of standard computer vision benchmarks. This explains why SHREC17 feels somewhat disconnected from the paper&rsquo;s &ldquo;AI for Science&rdquo; narrative.</p>
</li>
<li>
<p><strong>Continuous vs. Discrete Rotations</strong>: The Tetris experiment validates equivariance to <strong>continuous</strong> ($SO(3)$) rotations alongside discrete 90-degree turns. This distinction is crucial and separates Steerable CNNs from earlier Group CNNs that handled discrete rotation groups exclusively.</p>
</li>
<li>
<p><strong>Terminology Warning</strong>: The use of terms like &ldquo;fiber&rdquo; and &ldquo;induced representation&rdquo; was critiqued by reviewers as being denser than necessary and inconsistent with related work (e.g., Tensor Field Networks). If you find Section 3 difficult, this is a known barrier of this paper. Focus on the resulting kernel constraints.</p>
</li>
<li>
<p><strong>Parameter Efficiency Quantified</strong>: Reviewers highlighted that the main practical win is <strong>parameter efficiency</strong>. Standard 3D CNNs hit diminishing returns around $10^7$ parameters, while Steerable CNNs achieve better results with ~110x fewer parameters ($10^5$).</p>
</li>
</ul>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/ENLJACPHSEA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<h2 id="artifacts">Artifacts</h2>
<table>
	<thead>
			<tr>
					<th>Artifact</th>
					<th>Type</th>
					<th>License</th>
					<th>Notes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><a href="https://github.com/mariogeiger/se3cnn">se3cnn (GitHub)</a></td>
					<td>Code</td>
					<td>MIT</td>
					<td>Original implementation; superseded by <a href="https://github.com/e3nn/e3nn">e3nn</a> for point cloud applications</td>
			</tr>
			<tr>
					<td><a href="https://github.com/wouterboomsma/cath_datasets">CATH Datasets (GitHub)</a></td>
					<td>Dataset</td>
					<td>CC-BY-4.0</td>
					<td>Protein structure classification dataset introduced in this paper</td>
			</tr>
	</tbody>
</table>
<p>Pre-trained model weights are not publicly released. Hardware and compute requirements are not specified in the paper.</p>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Weiler, M., Geiger, M., Welling, M., Boomsma, W., &amp; Cohen, T. S. (2018). 3D steerable CNNs: Learning rotationally equivariant features in volumetric data. <em>Advances in Neural Information Processing Systems</em>, 31. <a href="https://proceedings.neurips.cc/paper/2018/hash/488e4104520c6aab692863cc1dba45af-Abstract.html">https://proceedings.neurips.cc/paper/2018/hash/488e4104520c6aab692863cc1dba45af-Abstract.html</a></p>
<p><strong>Publication</strong>: NeurIPS 2018</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@inproceedings</span>{weiler20183d,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{3D Steerable CNNs: Learning Rotationally Equivariant Features in Volumetric Data}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Weiler, Maurice and Geiger, Mario and Welling, Max and Boomsma, Wouter and Cohen, Taco S}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">booktitle</span>=<span style="color:#e6db74">{Advances in Neural Information Processing Systems}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{31}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2018}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://github.com/mariogeiger/se3cnn">GitHub Repository</a></li>
<li><a href="https://www.youtube.com/watch?v=ENLJACPHSEA">YouTube Video</a></li>
<li><a href="https://github.com/wouterboomsma/cath_datasets">CATH Dataset</a></li>
</ul>
]]></content:encoded></item></channel></rss>