{"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/invariant-information-distillation-for","title":"Invariant Information Clustering for Unsupervised Image Classification and Segmentation","arxiv_id":"1807.06653","date":"2018-07-17","proceeding":"ICCV 2019 10","authors":["Xu Ji","João F. Henriques","Andrea Vedaldi"],"abstract":"We present a novel clustering objective that learns a neural network classifier from scratch, given only unlabelled data samples. The model discovers clusters that accurately match semantic classes, achieving state-of-the-art results in eight unsupervised clustering benchmarks spanning image classification and segmentation. These include STL10, an unsupervised variant of ImageNet, and CIFAR10, where we significantly beat the accuracy of our closest competitors by 6.6 and 9.5 absolute percentage points respectively. The method is not specialised to computer vision and operates on any paired dataset samples; in our experiments we use random transforms to obtain a pair from each image. The trained network directly outputs semantic labels, rather than high dimensional representations that need external processing to be usable for semantic clustering. The objective is simply to maximise mutual information between the class assignments of each pair. It is easy to implement and rigorously grounded in information theory, meaning we effortlessly avoid degenerate solutions that other clustering methods are susceptible to. In addition to the fully unsupervised mode, we also test two semi-supervised settings. The first achieves 88.8% accuracy on STL10 classification, setting a new global state-of-the-art over all existing methods (whether supervised, semi-supervised or unsupervised). The second shows robustness to 90% reductions in label coverage, of relevance to applications that wish to make use of small amounts of labels. github.com/xu-ji/IIC","url_abs":"https://arxiv.org/abs/1807.06653v4","url_pdf":"https://arxiv.org/pdf/1807.06653v4.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":"invariant-information-distillation-for","repo_url":"https://github.com/xu-ji/IIC","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"invariant-information-distillation-for","repo_url":"https://github.com/ThmCuong/IIC-alter","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"invariant-information-distillation-for","repo_url":"https://github.com/astirn/IIC","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"invariant-information-distillation-for","repo_url":"https://github.com/nathanin/IIC","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"invariant-information-distillation-for","repo_url":"https://github.com/willi-menapace/acids-clustering-domain-shift","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"invariant-information-distillation-for","repo_url":"https://github.com/jizongFox/DeepClusteringProject","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-clustering","task_name":"Image Clustering"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"unsupervised-image-classification","task_name":"Unsupervised Image Classification"},{"task_slug":"unsupervised-mnist","task_name":"Unsupervised MNIST"},{"task_slug":"unsupervised-semantic-segmentation","task_name":"Unsupervised Semantic Segmentation"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-classification-on-stl-10","task":"Image Classification","dataset":"STL-10","model":"IIC","rank_in_archive_order":41,"of":117,"metrics":{"Percentage correct":"88.8"},"uses_additional_data":false},{"leaderboard":"/sota/image-clustering-on-cifar-10","task":"Image Clustering","dataset":"CIFAR-10","model":"IIC","rank_in_archive_order":32,"of":40,"metrics":{"ARI":"0.411","Accuracy":"0.617","Backbone":"ResNet-34","NMI":"0.511","Train set":"Train+Test"},"uses_additional_data":true},{"leaderboard":"/sota/semi-supervised-image-classification-on-stl","task":"Semi-Supervised Image Classification","dataset":"STL-10","model":"IIC","rank_in_archive_order":2,"of":3,"metrics":{"Accuracy":"88.8"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on-cifar-10","task":"Unsupervised Image Classification","dataset":"CIFAR-10","model":"IIC","rank_in_archive_order":8,"of":9,"metrics":{"Accuracy":"61.7"},"uses_additional_data":true},{"leaderboard":"/sota/unsupervised-image-classification-on-cifar-20","task":"Unsupervised Image Classification","dataset":"CIFAR-20","model":"IIC","rank_in_archive_order":14,"of":14,"metrics":{"Accuracy":"25.7"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on-mnist","task":"Unsupervised Image Classification","dataset":"MNIST","model":"IIC","rank_in_archive_order":1,"of":10,"metrics":{"Accuracy":"99.3"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on-stl-10","task":"Unsupervised Image Classification","dataset":"STL-10","model":"IIC","rank_in_archive_order":8,"of":9,"metrics":{"Accuracy":"61.00"},"uses_additional_data":true},{"leaderboard":"/sota/unsupervised-semantic-segmentation-on-coco","task":"Unsupervised Semantic Segmentation","dataset":"COCO-Stuff-15","model":"IIC","rank_in_archive_order":3,"of":3,"metrics":{"Pixel Accuracy":"27.7"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-semantic-segmentation-on-coco-6","task":"Unsupervised Semantic Segmentation","dataset":"COCO-Stuff-171","model":"IIC (ResNet-50)","rank_in_archive_order":4,"of":4,"metrics":{"Pixel Accuracy":"15.7","mIoU":"2.2"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-semantic-segmentation-on-coco-7","task":"Unsupervised Semantic Segmentation","dataset":"COCO-Stuff-27","model":"IIC","rank_in_archive_order":27,"of":29,"metrics":{"Clustering [Accuracy]":"21.8"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-semantic-segmentation-on-coco-1","task":"Unsupervised Semantic Segmentation","dataset":"COCO-Stuff-3","model":"IIC","rank_in_archive_order":6,"of":6,"metrics":{"Pixel Accuracy":"72.3"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-semantic-segmentation-on-potsdam-1","task":"Unsupervised Semantic Segmentation","dataset":"Potsdam-3","model":"IIC","rank_in_archive_order":7,"of":8,"metrics":{"Accuracy":"45.4"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1807.06653","atlas_url":"https://app.syntology.ai/?focus=1807.06653","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1807.06653"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/nathanin/IIC","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ThmCuong/IIC-alter","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/astirn/IIC","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jizongFox/DeepClusteringProject","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xu-ji/IIC","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/willi-menapace/acids-clustering-domain-shift","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"unverified":16},"by_repo_kind":{"official":{"samples":2,"ran":2,"repositories":1},"listed":{"samples":16,"ran":0,"repositories":3}},"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":"b2399f01716e7765","entry":"IID_loss","repo":"xu-ji/IIC","repo_kind":"official","path":"code/utils/cluster/IID_losses.py","file_url":"https://github.com/xu-ji/IIC/blob/HEAD/code/utils/cluster/IID_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b2399f01716e7765"}},{"code_sha256_prefix":"76deff4b3537c768","entry":"compute_joint","repo":"xu-ji/IIC","repo_kind":"official","path":"code/utils/cluster/IID_losses.py","file_url":"https://github.com/xu-ji/IIC/blob/HEAD/code/utils/cluster/IID_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"76deff4b3537c768"}},{"code_sha256_prefix":"d9b2528f3dc09ca2","entry":"IID_alpha_plus_loss","repo":"willi-menapace/acids-clustering-domain-shift","repo_kind":"listed","path":"codebase/utils/cluster/IID_losses.py","file_url":"https://github.com/willi-menapace/acids-clustering-domain-shift/blob/HEAD/codebase/utils/cluster/IID_losses.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":"d9b2528f3dc09ca2"}},{"code_sha256_prefix":"eafc9f12c5ea5696","entry":"IID_loss","repo":"nathanin/IIC","repo_kind":"listed","path":"tensorflow/IID_losses.py","file_url":"https://github.com/nathanin/IIC/blob/HEAD/tensorflow/IID_losses.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":"eafc9f12c5ea5696"}},{"code_sha256_prefix":"aeaf2fa6a05b6904","entry":"IID_loss","repo":"nathanin/IIC","repo_kind":"listed","path":"tensorflow/IID_losses_tf.py","file_url":"https://github.com/nathanin/IIC/blob/HEAD/tensorflow/IID_losses_tf.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":"aeaf2fa6a05b6904"}},{"code_sha256_prefix":"1217b85cf4046007","entry":"IID_plus_loss","repo":"willi-menapace/acids-clustering-domain-shift","repo_kind":"listed","path":"codebase/utils/cluster/IID_losses.py","file_url":"https://github.com/willi-menapace/acids-clustering-domain-shift/blob/HEAD/codebase/utils/cluster/IID_losses.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":"1217b85cf4046007"}},{"code_sha256_prefix":"66416b36a224f011","entry":"compute_cluster_confusion_matrix","repo":"willi-menapace/acids-clustering-domain-shift","repo_kind":"listed","path":"codebase/utils/cluster/cluster_eval.py","file_url":"https://github.com/willi-menapace/acids-clustering-domain-shift/blob/HEAD/codebase/utils/cluster/cluster_eval.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":"66416b36a224f011"}},{"code_sha256_prefix":"7c744f563f3b9f6c","entry":"convex_combo","repo":"nathanin/IIC","repo_kind":"listed","path":"tensorflow/mnist_draw.py","file_url":"https://github.com/nathanin/IIC/blob/HEAD/tensorflow/mnist_draw.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":"7c744f563f3b9f6c"}},{"code_sha256_prefix":"1d13a626952e713c","entry":"convolution_layer","repo":"astirn/IIC","repo_kind":"listed","path":"graphs.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/graphs.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":"1d13a626952e713c"}},{"code_sha256_prefix":"839dfd8e8303304d","entry":"fully_connected_layer","repo":"astirn/IIC","repo_kind":"listed","path":"graphs.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/graphs.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":"839dfd8e8303304d"}},{"code_sha256_prefix":"d17d2c856e1674fc","entry":"genclust","repo":"nathanin/IIC","repo_kind":"listed","path":"tensorflow/generate_clusterings.py","file_url":"https://github.com/nathanin/IIC/blob/HEAD/tensorflow/generate_clusterings.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":"d17d2c856e1674fc"}},{"code_sha256_prefix":"95b736abab569c08","entry":"get_iterator","repo":"nathanin/IIC","repo_kind":"listed","path":"tensorflow/data.py","file_url":"https://github.com/nathanin/IIC/blob/HEAD/tensorflow/data.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":"95b736abab569c08"}},{"code_sha256_prefix":"99bb4dfc8b575f7e","entry":"get_subhead_using_loss","repo":"willi-menapace/acids-clustering-domain-shift","repo_kind":"listed","path":"codebase/utils/cluster/cluster_eval.py","file_url":"https://github.com/willi-menapace/acids-clustering-domain-shift/blob/HEAD/codebase/utils/cluster/cluster_eval.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":"99bb4dfc8b575f7e"}},{"code_sha256_prefix":"d73cf3ab592ee3f1","entry":"max_pooling_layer","repo":"astirn/IIC","repo_kind":"listed","path":"graphs.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/graphs.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":"d73cf3ab592ee3f1"}},{"code_sha256_prefix":"c7ef0b467f726ba3","entry":"mnist_gx","repo":"astirn/IIC","repo_kind":"listed","path":"data.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/data.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":"c7ef0b467f726ba3"}},{"code_sha256_prefix":"b8622cc70f86e3ba","entry":"mnist_x","repo":"astirn/IIC","repo_kind":"listed","path":"data.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/data.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":"b8622cc70f86e3ba"}},{"code_sha256_prefix":"7bd08b02a79cc9c7","entry":"pre_process_data","repo":"astirn/IIC","repo_kind":"listed","path":"data.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/data.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":"7bd08b02a79cc9c7"}},{"code_sha256_prefix":"9ce81c4ed4d32382","entry":"unsupervised_labels","repo":"astirn/IIC","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/astirn/IIC/blob/HEAD/utils.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":"9ce81c4ed4d32382"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}