{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/replay-enhanced-continual-reinforcement","title":"Replay-enhanced Continual Reinforcement Learning","arxiv_id":"2311.11557","date":"2023-11-20","proceeding":null,"authors":["Tiantian Zhang","Kevin Zehua Shen","Zichuan Lin","Bo Yuan","Xueqian Wang","Xiu Li","Deheng Ye"],"abstract":"Replaying past experiences has proven to be a highly effective approach for averting catastrophic forgetting in supervised continual learning. However, some crucial factors are still largely ignored, making it vulnerable to serious failure, when used as a solution to forgetting in continual reinforcement learning, even in the context of perfect memory where all data of previous tasks are accessible in the current task. On the one hand, since most reinforcement learning algorithms are not invariant to the reward scale, the previously well-learned tasks (with high rewards) may appear to be more salient to the current learning process than the current task (with small initial rewards). This causes the agent to concentrate on those salient tasks at the expense of generality on the current task. On the other hand, offline learning on replayed tasks while learning a new task may induce a distributional shift between the dataset and the learned policy on old tasks, resulting in forgetting. In this paper, we introduce RECALL, a replay-enhanced method that greatly improves the plasticity of existing replay-based methods on new tasks while effectively avoiding the recurrence of catastrophic forgetting in continual reinforcement learning. RECALL leverages adaptive normalization on approximate targets and policy distillation on old tasks to enhance generality and stability, respectively. Extensive experiments on the Continual World benchmark show that RECALL performs significantly better than purely perfect memory replay, and achieves comparable or better overall performance against state-of-the-art continual learning methods.","url_abs":"https://arxiv.org/abs/2311.11557v1","url_pdf":"https://arxiv.org/pdf/2311.11557v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"replay-enhanced-continual-reinforcement","repo_url":"https://github.com/Sweety-dm/RECALL","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.11557","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.11557"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Sweety-dm/RECALL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"202e5667957e2ade","entry":"apply_squashing_func","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/sac/models.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/sac/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"202e5667957e2ade"}},{"code_sha256_prefix":"a1e3e500ec354922","entry":"gaussian_likelihood","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/sac/models.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/sac/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a1e3e500ec354922"}},{"code_sha256_prefix":"d0d50fe058210c6f","entry":"get_mt50_idx","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/envs.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/envs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d0d50fe058210c6f"}},{"code_sha256_prefix":"d8d6e9ae3541d61c","entry":"mlp","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/sac/models.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/sac/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d8d6e9ae3541d61c"}},{"code_sha256_prefix":"bb294055afc67149","entry":"smoothen_long_seq","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/results_processing/plots.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/results_processing/plots.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bb294055afc67149"}},{"code_sha256_prefix":"37e50b1dd7ee09ae","entry":"apply_filters","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/results_processing/plots.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/results_processing/plots.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"37e50b1dd7ee09ae"}},{"code_sha256_prefix":"411821c78f34d103","entry":"get_steps_per_task","repo":"Sweety-dm/RECALL","repo_kind":"official","path":"myrecall/results_processing/plots.py","file_url":"https://github.com/Sweety-dm/RECALL/blob/HEAD/myrecall/results_processing/plots.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"411821c78f34d103"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}