{"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/robust-semantic-interpretability-revisiting","title":"Robust Semantic Interpretability: Revisiting Concept Activation Vectors","arxiv_id":"2104.02768","date":"2021-04-06","proceeding":null,"authors":["Jacob Pfau","Albert T. Young","Jerome Wei","Maria L. Wei","Michael J. Keiser"],"abstract":"Interpretability methods for image classification assess model trustworthiness by attempting to expose whether the model is systematically biased or attending to the same cues as a human would. Saliency methods for feature attribution dominate the interpretability literature, but these methods do not address semantic concepts such as the textures, colors, or genders of objects within an image. Our proposed Robust Concept Activation Vectors (RCAV) quantifies the effects of semantic concepts on individual model predictions and on model behavior as a whole. RCAV calculates a concept gradient and takes a gradient ascent step to assess model sensitivity to the given concept. By generalizing previous work on concept activation vectors to account for model non-linearity, and by introducing stricter hypothesis testing, we show that RCAV yields interpretations which are both more accurate at the image level and robust at the dataset level. RCAV, like saliency methods, supports the interpretation of individual predictions. To evaluate the practical use of interpretability methods as debugging tools, and the scientific use of interpretability methods for identifying inductive biases (e.g. texture over shape), we construct two datasets and accompanying metrics for realistic benchmarking of semantic interpretability methods. Our benchmarks expose the importance of counterfactual augmentation and negative controls for quantifying the practical usability of interpretability methods.","url_abs":"https://arxiv.org/abs/2104.02768v1","url_pdf":"https://arxiv.org/pdf/2104.02768v1.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":"robust-semantic-interpretability-revisiting","repo_url":"https://github.com/keiserlab/rcav","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"benchmarking","task_name":"Benchmarking"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":null,"task_name":"counterfactual"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.02768","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.02768"}},"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":"deterministic:regex_extraction","url":"https://github.com/keiserlab/rcav","reach":null}],"summary":{"ran":3,"ran_fixture":1,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":5,"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":5,"samples":[{"code_sha256_prefix":"c5e350a75b34cd72","entry":"ActList","repo":"keiserlab/rcav","repo_kind":"official","path":"rcav.py","file_url":"https://github.com/keiserlab/rcav/blob/HEAD/rcav.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c5e350a75b34cd72"}},{"code_sha256_prefix":"540b0ea791cac6a1","entry":"CAV","repo":"keiserlab/rcav","repo_kind":"official","path":"rcav.py","file_url":"https://github.com/keiserlab/rcav/blob/HEAD/rcav.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"540b0ea791cac6a1"}},{"code_sha256_prefix":"d8aeb972e2f3317e","entry":"RCAV","repo":"keiserlab/rcav","repo_kind":"official","path":"rcav.py","file_url":"https://github.com/keiserlab/rcav/blob/HEAD/rcav.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d8aeb972e2f3317e"}},{"code_sha256_prefix":"f9b2d040b435c141","entry":"get_acts","repo":"keiserlab/rcav","repo_kind":"official","path":"rcav_utils.py","file_url":"https://github.com/keiserlab/rcav/blob/HEAD/rcav_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f9b2d040b435c141"}},{"code_sha256_prefix":"97795a7b853c4260","entry":"get_grads","repo":"keiserlab/rcav","repo_kind":"official","path":"rcav_utils.py","file_url":"https://github.com/keiserlab/rcav/blob/HEAD/rcav_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"97795a7b853c4260"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}