Papers › Overcoming catastrophic forgetting in neural networks

Overcoming catastrophic forgetting in neural networks

2 Dec 2016arXiv:1612.00796archive 2025-07-28

James Kirkpatrick, Razvan Pascanu, Neil Rabinowitz, Joel Veness, Guillaume Desjardins, Andrei A. Rusu, Kieran Milan, John Quan, Tiago Ramalho, Agnieszka Grabska-Barwinska, Demis Hassabis, Claudia Clopath, Dharshan Kumaran, Raia Hadsell

The ability to learn tasks in a sequential fashion is crucial to the development of artificial intelligence. Neural networks are not, in general, capable of this and it has been widely thought that catastrophic forgetting is an inevitable feature of connectionist models. We show that it is possible to overcome this limitation and train networks that can maintain expertise on tasks which they have not experienced for a long time. Our approach remembers old tasks by selectively slowing down learning on the weights important for those tasks. We demonstrate our approach is scalable and effective by solving a set of classification tasks based on the MNIST hand written digit dataset and by learning several Atari 2600 games sequentially.

PaperPDFCodeCode Syntology ran

In Syntology View this paper on Syntology: its repositories, every harvested function with whether it ran, its licence and the call to fetch it.

Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1612.00796")

Code

Syntology Ran 14 of 22 code samples harvested from 12 repositories linked to this paper; 8 have no recorded run. Of those that ran: 2 ran · honoured contract; 4 ran · our draft was wrong; 8 ran with no contract checked.

By repository: community (archive-listed): 22 samples from 12 repositories, 14 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

29 repositories listed; official and paper-mentioned ones first.

Minhchuyentoancbn/Continual-Learning mentioned on GitHubpytorch report
PCJohn/cata-forget mentioned on GitHubtf report
ariseff/overcoming-catastrophic mentioned on GitHubtf report
catid/never_forget mentioned on GitHubpytorchBSD-3-Clause report
dalxndr/NEURO140 mentioned on GitHubtf report
daskol/paper-reviews mentioned on GitHubMIT report
g-u-n/pycil mentioned on GitHubpytorch report
kamsyn95/CL_DNN mentioned on GitHubpytorch report
mu-y/lll-tts mentioned on GitHubpytorch report
srvCodes/continual-learning-benchmark mentioned on GitHubpytorch report
wannabeOG/MAS-PyTorch mentioned on GitHubpytorch report
wjmacro/continualmt mentioned on GitHubpytorch report
xduan7/hat-cl mentioned on GitHubpytorchMIT report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

22 samples harvested; 14 ran; 2 honoured the contract we drafted; 8 have no recorded run. Read from Syntology's graph 2026-09-25; that is when this build read the record, not when the samples ran.

2ran · honoured contract
4ran · our draft was wrong
8ran
8unverified

Licence: 4 of the 22 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 12 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

EWC srvCodes/continual-learning-benchmark/train/ewc.py community (archive-listed) ran MIT (permissive) · 3ca3b2ad5cf08e7a · report
EWC codelion/adaptive-classifier/src/adaptive_classifier/ewc.py community (archive-listed) ran Apache-2.0 (permissive) · a1465fe6cdcb57d7 · report
EWCMultitask kamsyn95/CL_DNN/models/ewc_modules.py community (archive-listed) ran no licence file found · pointer only · 6aad701239ed7577 · report
ExemplarsDataset mmasana/FACIL/src/approach/ewc.py community (archive-listed) ran · metamorphic tier: well formed MIT (permissive) · 39b8751422fdac64 · report
ExperimentLogger mmasana/FACIL/src/approach/ewc.py community (archive-listed) ran MIT (permissive) · 1d10e03aa48307d3 · report
GradMultiply wjmacro/continualmt/fairseq/modules/grad_multiply.py community (archive-listed) ran MIT (permissive) · b26c848baf0f673d · report
Inc_Learning_Appr mmasana/FACIL/src/approach/ewc.py community (archive-listed) ran MIT (permissive) · a47c1a346ec772ca · report
MemoryDataset mmasana/FACIL/src/approach/ewc.py community (archive-listed) ran MIT (permissive) · c1ecdf9c6eed882e · report
cauchy_naive catid/never_forget/models/s4.py community (archive-listed) ran · our draft was wrong fingerprinted BSD-3-Clause (permissive) · b7d9d94554e93b1b · report
compute_omega_grads_norm wannabeOG/MAS-PyTorch/utils/mas_utils.py community (archive-listed) ran · our draft was wrong BSD-2-Clause (permissive) · a1703c053471f8d6 · report
log_vandermonde_naive catid/never_forget/models/s4.py community (archive-listed) ran · our draft was wrong fingerprinted BSD-3-Clause (permissive) · e25911109ba29783 · report
one_epoch_baseline clam004/intro_continual_learning/contlearn/gettrainer.py community (archive-listed) ran · honoured contract MIT (permissive) · 4473672cd588ecd4 · report
test clam004/intro_continual_learning/contlearn/gettrainer.py community (archive-listed) ran · honoured contract MIT (permissive) · 426df1649f33777b · report
var2device clam004/intro_continual_learning/contlearn/gettrainer.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · aff2576823d89d61 · report
Appr mmasana/FACIL/src/approach/ewc.py community (archive-listed) unverified MIT (permissive) · c1596b67340a6f97 · report
Approach Minhchuyentoancbn/Continual-Learning/UCL/approaches/ewc.py community (archive-listed) unverified no licence file found · pointer only · 118dad0481c8d9e3 · report
EWC stijani/elastic-weight-consolidation-tf2/module.py community (archive-listed) unverified no licence file found · pointer only · 5ebc601b0d506a2c · report
ElasticWeightConsolidation shivamsaboo17/overcoming-catastrophic-forgetting-in-neural-networks/elastic_weight_consolidation.py community (archive-listed) unverified no licence file found · pointer only · 9d058983f0e0d999 · report
elastic_weight_consolidation_training clam004/intro_continual_learning/contlearn/gettrainer.py community (archive-listed) unverified MIT (permissive) · cbe2eeebdcb6a48a · report
log_vandermonde_transpose_naive catid/never_forget/models/s4.py community (archive-listed) unverified BSD-3-Clause (permissive) · 7cfca855faa8e8dc · report
read_servers_from_hostfile catid/never_forget/command_client_grid.py community (archive-listed) unverified BSD-3-Clause (permissive) · 5e7be12170048fbb · report
register_mapping xduan7/hat-cl/hat/modules/utils.py community (archive-listed) unverified MIT (permissive) · ca1097ecd04eb4a3 · report

Tasks

Atari GamesClass Incremental LearningContinual LearningGeneral ClassificationIncremental Learningclass-incremental learning

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Continual Learning 20Newsgroup (10 tasks) EWC F1 - macro 0.9180 #5 of 6 Archive leaderboard report
Continual Learning ASC (19 tasks) EWC F1 - macro 0.7452 #13 of 15 Archive leaderboard report
Continual Learning ASC (19 tasks) L2 F1 - macro 0.5243 #15 of 15 Archive leaderboard report
Continual Learning DSC (10 tasks) EWC F1 - macro 0.6576 #6 of 6 Archive leaderboard report
Continual Learning F-CelebA (10 tasks) EWC Acc 0.6545 #3 of 7 Archive leaderboard report
class-incremental learning cifar100 EWC 10-stage average accuracy 50.53 #1 of 1 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Introduced by this paper: EWC

EWC

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections