"Deep Noether's Theorem": Building in Symmetry Constraints
From Emre's comment above, Section 4.4 of Group theoretical methods in machine learning by Risi Kondor has detailed information and proofs about creating kernel methods that inherently have symmetries. I will summarize it in a hopefully intuitive way (I am a physicist not a mathematician!).

Most ML algorithms have a matrix multiplication like,
\begin{align}
s_i &amp;= \sum_j W_{ij}~x_j \\
  &amp;= \sum_j W_{ij}~(\vec{e}_j \cdot \vec{x})
\end{align}
with  $ \vec{x} $ being the input and $ W_{ij} $ being the weights we wish to train.

Kernel Method

Enter the realm of kernel methods and let the algorithm handle input via,
\begin{align}
s_i &amp;= \sum_j W_{ij}~k(e_j,~x)
\end{align}
where now we generalize to $ x, e_j \in \mathcal{X} $.

Consider a group $ G $ that acts on $ \mathcal{X} $ via $ x \rightarrow T_g(x) $ for $ g \in G $. A simple way to make our algorithm invariant under this group is to make a kernel,
\begin{align}
k^G(x, y) &amp;= \frac{1}{|G|} \sum_{g \in G} k(x, T_g(y))
\end{align}
with $ k(x, y) = k(T_g(x), T_g(y)) $.

So,
\begin{align}
k^G(x, T_h(y)) &amp;= \frac{1}{|G|} \sum_{g \in G} k(x, T_{gh}(y)) \\
  &amp;= \frac{1}{|G|} \sum_{g \in G} k(x, T_{g}(y)) \\
  &amp;= \frac{1}{|G|} \sum_{g \in G} k(T_{g}(x), y)
\end{align}

For $ k(x, y) = x \cdot y $ which works for all unitary representations,

\begin{align}
k^G(x, T_h(y)) &amp;= \left[ \frac{1}{|G|} \sum_{g \in G} T_{g}(x) \right] \cdot y
\end{align}

Which offers a transformation matrix that can symmeterize the input into the algorithm.

SO(2) Example

Actually just the group that maps to $ \frac{\pi}{2} $ rotations for simplicity.

Let us run linear regression on data $ (\vec{x}_i, y_i) \in \mathbb{R}^2 \times \mathbb{R} $ where we expect a rotational symmetry.

Our optimization problem becomes,
\begin{align}
\min_{W_{j}} &amp;\sum_i \frac{1}{2} (y_i - \tilde{y}_i)^2 \\
\tilde{y}_i &amp;= \sum_j W_{j} k_G(e_j, x_i) + b_i
\end{align}

The kernel $ k(x, y) = \| x - y \|^2 $ satisfies $ k(x, y) = k(T_g(x), T_g(y)) $. You could also use $ k(x, y) = x \cdot y $ and a variety of kernels.

Thus,
\begin{align}
k_G(e_j, x_i) &amp;= \frac{1}{4} \sum_{n=1}^4 \| R(n\pi/2)~\vec{e}_j - \vec{x}_i \|^2 \\
  &amp;= \frac{1}{4} \sum_{n=1}^4 ( \cos(n\pi/2) - \vec{x}_{i1} )^2 + ( \sin(n\pi/2) - \vec{x}_{i2} )^2 \\
  &amp;= \frac{1}{4} \left[ 2 \vec{x}_{i1}^2 + 2 \vec{x}_{i2}^2 + (1 - \vec{x}_{i1} )^2 + (1 - \vec{x}_{i2} )^2 + (1 + \vec{x}_{i1} )^2 + (1 + \vec{x}_{i2} )^2 \right] \\
  &amp;= \vec{x}_{i1}^2 + \vec{x}_{i2}^2 + 1
\end{align}

Note that we needn't sum over $ j $ because it is the same for both. So our problem becomes,
\begin{align}
\min_{W} &amp;\sum_i \frac{1}{2} (y_i - \tilde{y}_i)^2 \\
\tilde{y}_i &amp;= W \left[ \vec{x}_{i1}^2 + \vec{x}_{i2}^2 + 1 \right] + b_i
\end{align}

Which yields the expected spherical symmetry!

Tic-Tac-Toe

Example code can be seen here. It shows how we can create a matrix that encodes the symmetry and use it. Note that this is really bad when I actually run it! Working with other kernels at the moment.