{"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/counterfactual-state-explanations-for","title":"Counterfactual State Explanations for Reinforcement Learning Agents via Generative Deep Learning","arxiv_id":"2101.12446","date":"2021-01-29","proceeding":null,"authors":["Matthew L. Olson","Roli Khanna","Lawrence Neal","Fuxin Li","Weng-Keen Wong"],"abstract":"Counterfactual explanations, which deal with \"why not?\" scenarios, can provide insightful explanations to an AI agent's behavior. In this work, we focus on generating counterfactual explanations for deep reinforcement learning (RL) agents which operate in visual input environments like Atari. We introduce counterfactual state explanations, a novel example-based approach to counterfactual explanations based on generative deep learning. Specifically, a counterfactual state illustrates what minimal change is needed to an Atari game image such that the agent chooses a different action. We also evaluate the effectiveness of counterfactual states on human participants who are not machine learning experts. Our first user study investigates if humans can discern if the counterfactual state explanations are produced by the actual game or produced by a generative deep learning approach. Our second user study investigates if counterfactual state explanations can help non-expert participants identify a flawed agent; we compare against a baseline approach based on a nearest neighbor explanation which uses images from the actual game. Our results indicate that counterfactual state explanations have sufficient fidelity to the actual game images to enable non-experts to more effectively identify a flawed RL agent compared to the nearest neighbor baseline and to having no explanation at all.","url_abs":"https://arxiv.org/abs/2101.12446v1","url_pdf":"https://arxiv.org/pdf/2101.12446v1.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":"counterfactual-state-explanations-for","repo_url":"https://github.com/mattolson93/counterfactual-state-explanations","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"counterfactual-state-explanations-for","repo_url":"https://github.com/amir-samadi/safe-rl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":null,"task_name":"counterfactual"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2101.12446","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2101.12446"}},"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/mattolson93/counterfactual-state-explanations","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/amir-samadi/safe-rl","reach":{"status":"unanswered"}}],"summary":{"ran_fixture":3,"ran_honours":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":4,"samples":[{"code_sha256_prefix":"5631ad961a040998","entry":"ablate_screen","repo":"mattolson93/counterfactual-state-explanations","repo_kind":"official","path":"train_agent.py","file_url":"https://github.com/mattolson93/counterfactual-state-explanations/blob/HEAD/train_agent.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5631ad961a040998"}},{"code_sha256_prefix":"0e48a46118533a21","entry":"catv","repo":"mattolson93/counterfactual-state-explanations","repo_kind":"official","path":"model.py","file_url":"https://github.com/mattolson93/counterfactual-state-explanations/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0e48a46118533a21"}},{"code_sha256_prefix":"b7b09d9d9a19672a","entry":"norm","repo":"mattolson93/counterfactual-state-explanations","repo_kind":"official","path":"model.py","file_url":"https://github.com/mattolson93/counterfactual-state-explanations/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b7b09d9d9a19672a"}},{"code_sha256_prefix":"73b4d21087b3f008","entry":"normalize_vector","repo":"mattolson93/counterfactual-state-explanations","repo_kind":"official","path":"model.py","file_url":"https://github.com/mattolson93/counterfactual-state-explanations/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"73b4d21087b3f008"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}