Inverse-Hessian Regularization for Continual Learning in ASR
ChatGPT paper summary
- The problem
- Existing solution: Fine-Tuning + Averaging (FTA)
- Core idea of the paper
- Geometric intuition
- The algorithm
- Why does the inverse Hessian help?
- Practical challenge #1
- Solution: Kronecker-factored approximation
- Practical challenge #2
- Layer-wise implementation
- What about other parameters?
- Computational cost
- Experimental results
- Why this paper is interesting
@INPROCEEDINGS{vander_eeckt_icassp26,
author={Vander Eeckt, Steven and Van Hamme, Hugo},
booktitle={ICASSP 2026 - 2026 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
title={Inverse-Hessian Regularization for Continual Learning in ASR},
year={2026},
volume={},
number={},
pages={18192-18196},
doi={10.1109/ICASSP55912.2026.11461503}
}
The problem
The paper studies continual learning (CL) for automatic speech recognition (ASR).
Training proceeds as
Task 1 -> Task 2 -> Task 3 -> ...
where each task might correspond to
- a new accent
- microphone
- recording condition
- speaker population
The challenge is catastrophic forgetting:
train on Task 1
↓
good on Task 1
train on Task 2
↓
good on Task 2
bad on Task 1
The important constraint is memory-free continual learning:
- no replay buffer
- no old datasets
- no expanding architecture
Only the previous model is available.
Existing solution: Fine-Tuning + Averaging (FTA)
The previous state-of-the-art memory-free method is surprisingly simple.
Suppose
θ_old
is the model before learning the new task.
Fine-tune normally:
θ_old
|
| fine tune
V
θ_ft
Instead of keeping the fine-tuned model, average the parameters:
θ_new =
(1-η) θ_old
+
η θ_ft
where
η = 1/t
after task t.
This reduces forgetting because it never fully commits to the new weights.
However, the authors identify two problems.
1. Adaptation shrinks over time
Since
η = 1/t
later tasks receive tiny updates.
Eventually
η ≈ 0
so learning almost stops.
2. Every parameter is treated equally
Suppose two directions in parameter space:
Direction A
very important for Task 1
Direction B
almost irrelevant
Weight averaging scales both equally.
But ideally we’d like
preserve A
allow movement along B
Weight averaging has no notion of this.
Core idea of the paper
The authors ask:
Instead of averaging blindly, can we determine which parameter directions are “safe” to move?
Their answer:
Use the inverse Hessian of the previous task.
This is the entire contribution.
Geometric intuition
Imagine two loss basins.
Old task:
_______
/ \
/ \
New task:
_______
/ \
/ \
Fine-tuning moves directly toward the new basin:
old ● -------------> new
which exits the old basin.
Instead, they propose
old
\
\
curved path
\
\
new
where the update is warped by the inverse Hessian so it stays inside flatter directions of the previous task.
Figure 1 in the paper illustrates exactly this intuition.
The algorithm
Suppose fine-tuning produces
θ̃
The update is
Δθ = θ̃ − θ_old
Normally we’d do
θ_new = θ_old + Δθ
Instead they compute
θ_new =
θ_old
+
H^{-1} Δθ
where
H^{-1}
is the inverse Hessian of the previous task.
So rather than changing the endpoint,
they transform the update vector.
Why does the inverse Hessian help?
Recall:
Large Hessian eigenvalue
→ steep direction
Small movement hurts performance.
Small Hessian eigenvalue
→ flat direction
Large movement is acceptable.
The inverse Hessian flips these:
steep direction
↓
small update
flat direction
↓
large update
So the update automatically avoids damaging directions.
Practical challenge #1
A full Hessian is impossible.
For a 47M parameter model,
47,000,000²
entries would be required.
Impossible.
Solution: Kronecker-factored approximation
Instead they use a KFAC-style approximation.
Rather than one enormous Hessian,
each linear layer has
A
×
B
Kronecker factors.
This allows efficient inverse-Hessian × vector products.
Importantly,
they never build the full Hessian.
Practical challenge #2
You don’t have old data
Ideally we’d compute
H(Task1 + Task2 + ...)
But after Task 3 starts,
Task 1 data is gone.
So they approximate
H(previous tasks)
≈
H(last task)
Only the most recent task’s Hessian is retained.
This keeps storage constant regardless of the number of tasks.
Layer-wise implementation
Only linear layers use Hessian correction.
For each weight matrix
W
they compute
ΔW = W_ft − W_old
then
W_new =
W_old
+
α H^{-1} ΔW
where α rescales the corrected update to have a comparable norm to the original update. The scalar τ controls the stability–plasticity tradeoff.
What about other parameters?
Things like
- convolution kernels
- normalization parameters
- biases
are simply averaged:
p_new
=
p_old
+
(1/t)
Δp
Exactly as in the earlier weight-averaging method.
Only the large linear layers receive Hessian-based correction.
Computational cost
A nice aspect is that this is not a second-order optimizer.
Training is still ordinary Adam.
The workflow is:
Fine tune
↓
Done training
↓
Apply one inverse-Hessian correction
↓
Finished
So the expensive second-order computation happens once per task, not at every optimization step.
Experimental results
The paper evaluates on two continual-learning benchmarks for ASR:
- Sequential English accents (Common Voice)
- LibriSpeech → Libri-Adapt with accent + microphone shifts
Across both:
- IHR consistently outperforms previous memory-free methods.
- On the first benchmark it even outperforms experience replay (which stores past data), while maintaining essentially zero forgetting.
- On the harder second benchmark it remains the strongest memory-free method and comes closest to experience replay.
Why this paper is interesting
The contribution isn’t a new optimizer or a new continual-learning framework. Instead, it’s a smarter merge operator.
The pattern becomes:
Fine tune
↓
Obtain update Δθ
↓
Transform update using curvature
↓
Merge
This makes it easy to add to existing fine-tuning pipelines.