{"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/interpretable-image-recognition-with","title":"Interpretable Image Recognition with Hierarchical Prototypes","arxiv_id":"1906.10651","date":"2019-06-25","proceeding":null,"authors":["Peter Hase","Chaofan Chen","Oscar Li","Cynthia Rudin"],"abstract":"Vision models are interpretable when they classify objects on the basis of features that a person can directly understand. Recently, methods relying on visual feature prototypes have been developed for this purpose. However, in contrast to how humans categorize objects, these approaches have not yet made use of any taxonomical organization of class labels. With such an approach, for instance, we may see why a chimpanzee is classified as a chimpanzee, but not why it was considered to be a primate or even an animal. In this work we introduce a model that uses hierarchically organized prototypes to classify objects at every level in a predefined taxonomy. Hence, we may find distinct explanations for the prediction an image receives at each level of the taxonomy. The hierarchical prototypes enable the model to perform another important task: interpretably classifying images from previously unseen classes at the level of the taxonomy to which they correctly relate, e.g. classifying a hand gun as a weapon, when the only weapons in the training data are rifles. With a subset of ImageNet, we test our model against its counterpart black-box model on two tasks: 1) classification of data from familiar classes, and 2) classification of data from previously unseen classes at the appropriate level in the taxonomy. We find that our model performs approximately as well as its counterpart black-box model while allowing for each classification to be interpreted.","url_abs":"https://arxiv.org/abs/1906.10651v2","url_pdf":"https://arxiv.org/pdf/1906.10651v2.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":"interpretable-image-recognition-with","repo_url":"https://github.com/peterbhase/interpretable-image","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"classification","task_name":"General Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1906.10651","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.10651"}},"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/peterbhase/interpretable-image","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"ran":0,"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":"43207151bb362ee3","entry":"compute_layer_rf_info","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/receptive_field.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/receptive_field.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":"43207151bb362ee3"}},{"code_sha256_prefix":"44240d6a58cd6e24","entry":"compute_rf_protoL_at_spatial_location","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/receptive_field.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/receptive_field.py","link_basis":"harvester_set","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":"44240d6a58cd6e24"}},{"code_sha256_prefix":"988c042bac56f793","entry":"compute_rf_prototype","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/receptive_field.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/receptive_field.py","link_basis":"harvester_set","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":"988c042bac56f793"}},{"code_sha256_prefix":"da0f80d54b852951","entry":"create_logger","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/log.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/log.py","link_basis":"plan_row","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":"da0f80d54b852951"}},{"code_sha256_prefix":"c9e92d0b7ff929fe","entry":"list_of_distances","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/helpers.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/helpers.py","link_basis":"plan_row","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":"c9e92d0b7ff929fe"}},{"code_sha256_prefix":"0894ca3508f1f9b0","entry":"make_layers","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/model.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/model.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":"0894ca3508f1f9b0"}},{"code_sha256_prefix":"55b1d3d8a88d426b","entry":"preprocess","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/preprocess.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/preprocess.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":"55b1d3d8a88d426b"}},{"code_sha256_prefix":"c6742862b55d61c5","entry":"preprocess_input_function","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/preprocess.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/preprocess.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":"c6742862b55d61c5"}},{"code_sha256_prefix":"21c841f94efb412b","entry":"undo_preprocess","repo":"peterbhase/interpretable-image","repo_kind":"official","path":"HPnet/preprocess.py","file_url":"https://github.com/peterbhase/interpretable-image/blob/HEAD/HPnet/preprocess.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":"21c841f94efb412b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}