{"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/arxiv-2510-14623","title":"LeapFactual: Reliable Visual Counterfactual Explanation Using Conditional Flow Matching","arxiv_id":"2510.14623","date":"2025-10-16","proceeding":"NeurIPS","authors":["Zhuo Cao","Xuan Zhao","Lena Krieger","Hanno Scharr","Ira Assent"],"abstract":"The growing integration of machine learning (ML) and artificial intelligence (AI) models into high-stakes domains such as healthcare and scientific research calls for models that are not only accurate but also interpretable. Among the existing explainable methods, counterfactual explanations offer interpretability by identifying minimal changes to inputs that would alter a model's prediction, thus providing deeper insights. However, current counterfactual generation methods suffer from critical limitations, including gradient vanishing, discontinuous latent spaces, and an overreliance on the alignment between learned and true decision boundaries. To overcome these limitations, we propose LeapFactual, a novel counterfactual explanation algorithm based on conditional flow matching. LeapFactual generates reliable and informative counterfactuals, even when true and learned decision boundaries diverge. Following a model-agnostic approach, LeapFactual is not limited to models with differentiable loss functions. It can even handle human-in-the-loop systems, expanding the scope of counterfactual explanations to domains that require the participation of human annotators, such as citizen science. We provide extensive experiments on benchmark and real-world datasets showing that LeapFactual generates accurate and in-distribution counterfactual explanations that offer actionable insights. We observe, for instance, that our reliable counterfactual samples with labels aligning to ground truth can be beneficially used as new training data to enhance the model. The proposed method is broadly applicable and enhances both scientific knowledge discovery and non-expert interpretability.","url_abs":"https://arxiv.org/abs/2510.14623","url_pdf":"https://arxiv.org/pdf/2510.14623","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2510.14623","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.14623"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/caicairay/LeapFactual","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":5,"ran":1,"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":"b27dffc0609fbec0","entry":"get_norm_layer","repo":"caicairay/LeapFactual","repo_kind":"found_in_text","path":"training_scripts/models/VAE/losses.py","file_url":"https://github.com/caicairay/LeapFactual/blob/HEAD/training_scripts/models/VAE/losses.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b27dffc0609fbec0"}},{"code_sha256_prefix":"3452901b7c850dc8","entry":"cal_gradient_penalty","repo":"caicairay/LeapFactual","repo_kind":"found_in_text","path":"training_scripts/models/VAE/losses.py","file_url":"https://github.com/caicairay/LeapFactual/blob/HEAD/training_scripts/models/VAE/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3452901b7c850dc8"}},{"code_sha256_prefix":"73a5cdcd89c29ee4","entry":"data_loader","repo":"caicairay/LeapFactual","repo_kind":"found_in_text","path":"training_scripts/experiments/utils.py","file_url":"https://github.com/caicairay/LeapFactual/blob/HEAD/training_scripts/experiments/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"73a5cdcd89c29ee4"}},{"code_sha256_prefix":"8e0c5ef63327d48c","entry":"frange_cycle_linear","repo":"caicairay/LeapFactual","repo_kind":"found_in_text","path":"training_scripts/experiments/utils.py","file_url":"https://github.com/caicairay/LeapFactual/blob/HEAD/training_scripts/experiments/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e0c5ef63327d48c"}},{"code_sha256_prefix":"cdd92f206f764591","entry":"frange_cycle_sigmoid","repo":"caicairay/LeapFactual","repo_kind":"found_in_text","path":"training_scripts/experiments/utils.py","file_url":"https://github.com/caicairay/LeapFactual/blob/HEAD/training_scripts/experiments/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cdd92f206f764591"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}