Gradient Correlation Subspace Learning against Catastrophic Forgetting
Tammuz Dubnov, Vishal Thengane
TL;DR
Gradient Correlation Subspace Learning (GCSL) addresses catastrophic forgetting in incremental class learning by freezing prior weights and learning new tasks within a per-layer subspace defined by the gradient correlation structure. For each layer, GCSL computes a gradient-correlation matrix $C_g^l$ from $c_g^l = (dL/dh^l)^T(dL/dh^l)$, extracts eigenvectors corresponding to the smallest eigenvalues to form a projection $V$, and updates weights via $W^l_{t_k} = W^l_{t_{k-1}} + V^l_{t_{k-1}} W^l_{trainable}$ while keeping $W^l_{t_{k-1}}$ frozen. A task-specific BCE loss $loss(i,y) = y \log(i) + (1-y)\log(1-i)$ confines learning to the current task, preventing interference with previous logits. Experiments on MNIST and Fashion MNIST show that GCSL can significantly mitigate forgetting, with performance depending on subspace size and which layer is targeted, and competitive results versus GPM in several settings. The approach offers a practical, configurable alternative for continual learning that can integrate with standard optimizers and potentially combine with replay or contrastive strategies in future work.
Abstract
Efficient continual learning techniques have been a topic of significant research over the last few years. A fundamental problem with such learning is severe degradation of performance on previously learned tasks, known also as catastrophic forgetting. This paper introduces a novel method to reduce catastrophic forgetting in the context of incremental class learning called Gradient Correlation Subspace Learning (GCSL). The method detects a subspace of the weights that is least affected by previous tasks and projects the weights to train for the new task into said subspace. The method can be applied to one or more layers of a given network architectures and the size of the subspace used can be altered from layer to layer and task to task. Code will be available at \href{https://github.com/vgthengane/GCSL}{https://github.com/vgthengane/GCSL}
