Representation Theory for ML
Representations turn abstract symmetries into matrices, so equivariant layers become concrete weight-sharing patterns you can implement.
Why Does This Exist?
Group theory names the symmetry; code needs matrices. A representation assigns each group element a matrix with : composition becomes multiplication. Once symmetry is matrices, equivariant layers become linear algebra: intertwiners between representations, classified by decomposition into irreducibles (blocks with no smaller stable subspace). Steerable CNNs and spherical networks are this machinery shipped: kernel bases come from tabulated irreducibles, not from search. Group axioms stay on the group page; harmonic analysis on groups touches the Fourier page.
The one idea you need first
A linear action of rotations on feature vectors: rotating the input permutes and mixes channels by a fixed matrix per group element. Equivariance says the layer intertwines the two representations.
Think of It Like This
Sheet music for an improvising band
The band agrees on chord changes (the abstract group: verse, chorus, bridge with repeats). Each player renders those changes on their instrument: the pianist as voicings, the bassist as walking lines, the drummer as patterns. Same changes, different realizations per instrument.
Representations are the instrument parts: matrices realizing abstract moves on concrete vectors. Irreducibles are solo voices that cannot split further. An equivariant layer is an arrangement where every instrument changes together: transpose the chart and all parts transpose in step.
How It Actually Works
For finite groups (and compact ones like ), Maschke's theorem: every representation splits into a direct sum of irreducibles. Schur's lemma: maps between distinct irreducibles vanish; maps within one are scalars. Consequence: any equivariant linear map is block-diagonal over isotypic components, with one scalar (or tiny matrix) per block. Design reduces to picking irreducibles per layer (frequencies for ) and learning the scalars.
Characters fingerprint representations: equal characters mean equivalent representations. Fourier analysis on groups expands functions in irreducible matrix coefficients.
Worked example
rotations on image patches (4 pixels). The permutation representation is ; characters: , (no pixel fixed), . Decompose over one-dimensional irreducibles (frequencies ): multiplicities from inner products of characters give each. So the -pixel space splits into independent frequency channels; an equivariant map is scalars, not a -parameter matrix. Savings ratio : small here, and it compounds per layer (for with , blocks cut hundreds of kernel parameters to dozens).
Code
def character(perm: list[int]) -> int: return sum(1 for i, p in enumerate(perm) if p == i) # trace = fixed points
identity = [0, 1, 2, 3]quarter = [1, 2, 3, 0] # 90-degree rotation of 4 pixelshalf = [2, 3, 0, 1]print(character(identity), character(quarter), character(half)) # -> 4 0 0Characters fingerprint the permutation representation; inner products against the four frequency characters yield multiplicity each.
Watch Out For
Using reducible features without splitting
Stacking raw oriented responses without decomposing mixes frequencies, so learned maps entangle channels that theory keeps separate. Symptoms: rotation tests pass at trained angles but fail between them. Project onto irreducibles (group Fourier transform) and learn per-block scalars instead.
Assuming irreducibles of the wrong group
irreducibles (planar frequencies) misdescribe data (spherical harmonics needed): using planar steerability on 3-D rotations silently drops the out-of-plane coupling. Match the group to the data geometry (rotations of the plane vs of space) before tabulating blocks.
The Quick Version
- Representations realize group moves as matrices with composition preserved.
- Complete reducibility splits every representation into irreducible blocks.
- Schur's lemma forces equivariant maps block-diagonal with scalar freedom per block.
- on pixels splits into frequency channels: scalars replace weights.
- Characters fingerprint representations without constructing the change of basis.
- Decompose first, then learn per-block maps for exact steerability.