1 SymNet

SymNet: Simple Symmetric Positive Definite Manifold Network

SymNet is a lightweight SPD-manifold network that replaces Riemannian end-to-end filter optimization with unsupervised PCA and uses KDA for final discriminant learning.

Ref: @wangSymNetSimpleSymmetric2022

Code at: https://github.com/GitWR/SymNet

Overview

SymNet addresses the large within-class variability of covariance representations used in image-set classification. It combines SPD matrix mapping, a two-part nonlinear rectifier, optional manifold-aware pooling, a Log-Euclidean map, kernel discriminant analysis (KDA), and nearest-neighbor classification. Unlike SPDNet, its mapping filters are learned without labels by PCA rather than Riemannian matrix backpropagation. It evaluates YTC, ETH-80, Virus, MDSD, AFEW, and FPHA.

The major contributions:

  1. SymNet utilizes the simple but efficient (2-D)2 PCA algorithm to conduct unsupervised filter learning, whereas SPDNet exploits the Riemannian matrix backpropagation computing to perform end-to-end training, which is more time consuming than ours.
  2. On the tail of the network, SPDNet makes use of the classical fully connected layer to learn Euclidean feature representations. Instead, SymNet utilizes KDA (Kernel Discriminant Analysis) to perform discriminative subspace learning. As a result, training SymNet is very easy.
  3. SPDNet introduces the nonlinear mapping scheme by tuning up some small eigenvalues with a ReLU-like function in the designed ReEig layer. However, the proposed SymNet additionally considers the impact of some negative elements of the SPD matrices on the discriminability of the learned features and designs a nonlinear activation function in the rectifying layer to adjust them to desired ones.
  4. The conventional pooling operations are generalized to SymNet to further compress the learned SPD matrices. However, SPDNet does not take this into consideration.

center

center

Architecture

The two reported compositions are

SymNet-v1 contains one mapping/rectifying stage and optional pooling. SymNet-v2 contains two mapping/rectifying stages and uses no pooling in the final recommended configuration.

SPD Matrix Mapping

For , each BiMap-like mapping filter computes

where indexes the filters and . The output is SPD iff has full column rank.

(2-D)² PCA Filter Learning

Each image set is first represented by the covariance

Treating the matrices as basic samples, SymNet computes the row-direction covariance

and solves

The solution consists of the leading eigenvectors of . With , the leading-eigenvector matrix is divided into nonoverlapping groups of eigenvectors, giving the filters . The filters are orthonormal, full-rank, and learned without labels or iterative backpropagation.

Two-part Rectifying Layer

The first nonlinearity treats selected negative off-diagonal elements:

This amplifies small negative correlations toward , with the stated goal of reducing within-class variation.

The second nonlinearity is a ReEig-type eigenvalue floor. Given ,

The first operation changes selected matrix entries; the second ensures positive definiteness and supplies a spectral nonlinearity.

Pooling Variants

SymNet’s SPD Matrix Pooling uses a patch:

  • Tangent-space pooling applies , giving tangent-space max (TMaP) or mean (TMeP) pooling.
  • SPD max pooling applies region-wise conventional max pooling directly on SPD matrices: . The pooling window does not move along geodesics and may distort SPD geometry.
  • SPD mean pooling uses the Fréchet mean under the Log-Euclidean metric,

The paper additionally formulates a lower-dimensional mean-pooling projection optimized by conjugate gradients on a Grassmann manifold.

Log-map and KDA Tail

The LogEig layer computes ; the symmetric outputs are vectorized and concatenated into . KDA maps them into an RKHS and solves

retaining the largest generalized eigenvectors. Classification is nearest neighbor in the KDA subspace.

Model Parameters

DatasetInputNotes
YTCComplexity example uses (v1) and (v2)
ETH-80v1: , 8 filters
Virus-
MDSDv1: , , ; v2: ,
AFEW-
FPHA21 joints × 3-D coordinates

Recommended pooling: v1 uses TMeP on YTC/AFEW and TMaP on ETH-80/Virus/MDSD; v2 uses NP (no pooling) everywhere.

Training Parameters

ComponentSetting
Mapping-filter trainingUnsupervised PCA (closed form)
Tail trainingKDA generalized eigendecomposition
ClassifierNearest neighbor
End-to-end optimizerNone (no backpropagation)
Hardwarei7-9700 3.00 GHz CPU, 16 GB RAM (MATLAB 2019a)

Data protocols: YTC 3 train / 6 test videos per subject; ETH-80 five sets per category; Virus 3 train / 2 test sets; MDSD 7 train / 3 test; AFEW 1,746 training clips, validation set evaluation; FPHA 600 train / 575 test. Random selection repeated ten times and averaged for YTC/ETH-80/Virus/MDSD; images resized to grayscale ( covariances).

Results

ExperimentSymNet-v1SymNet-v2
MDSD without the first entry-wise activation 35.2634.19
MDSD AUC74.9573.61
MDSD selected 2.98,
  • SymNet-v1/v2 outperformed SPDNet on ETH-80, YTC, Virus, and MDSD; SPDNet remained better on AFEW and FPHA.
  • Pooling ablation: NP best for v2 on all five datasets; SPD mean > SPD max for v1 on ETH-80/Virus/MDSD.
  • Component ablation: LogEig significantly improves all datasets; adding /‌ generally improves discrimination.
  • Complexity: ≈ operations for SymNet vs ≈ for SPDNet; training time example 23.36 s vs 1668.06 s (from paper notes).

Notes and Caveats

  • No pooling (NP) was the best SymNet-v2 configuration on every pooling-ablation dataset.
  • The first rectifier changes selected negative off-diagonal elements before spectral rectification - unlike SPDNet’s ReEig, which changes eigenvalues only.
  • Tangent-space pooling may distort local geometry through repeated log/exp mappings; pooling also becomes a bottleneck in deeper designs because second-stage matrices get too small.
  • SymNet was never tested on EEG.