{"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/an-explicit-local-and-global-representation","title":"An Explicit Local and Global Representation Disentanglement Framework with Applications in Deep Clustering and Unsupervised Object Detection","arxiv_id":"2001.08957","date":"2020-01-24","proceeding":null,"authors":["Rujikorn Charakorn","Yuttapong Thawornwattana","Sirawaj Itthipuripat","Nick Pawlowski","Poramate Manoonpong","Nat Dilokthanakul"],"abstract":"Visual data can be understood at different levels of granularity, where global features correspond to semantic-level information and local features correspond to texture patterns. In this work, we propose a framework, called SPLIT, which allows us to disentangle local and global information into two separate sets of latent variables within the variational autoencoder (VAE) framework. Our framework adds generative assumption to the VAE by requiring a subset of the latent variables to generate an auxiliary set of observable data. This additional generative assumption primes the latent variables to local information and encourages the other latent variables to represent global information. We examine three different flavours of VAEs with different generative assumptions. We show that the framework can effectively disentangle local and global information within these models leads to improved representation, with better clustering and unsupervised object detection benchmarks. Finally, we establish connections between SPLIT and recent research in cognitive neuroscience regarding the disentanglement in human visual perception. The code for our experiments is at https://github.com/51616/split-vae .","url_abs":"https://arxiv.org/abs/2001.08957v2","url_pdf":"https://arxiv.org/pdf/2001.08957v2.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":"an-explicit-local-and-global-representation","repo_url":"https://github.com/51616/split-vae","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"deep-clustering","task_name":"Deep Clustering"},{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"style-transfer","task_name":"Style Transfer"},{"task_slug":"unsupervised-object-detection","task_name":"Unsupervised Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2001.08957","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2001.08957"}},"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/51616/split-vae","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":18},"by_repo_kind":{"official":{"samples":18,"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":"b1f2137631d4df35","entry":"calculateIntersection","repo":"51616/split-vae","repo_kind":"official","path":"spair/data.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/data.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":"b1f2137631d4df35"}},{"code_sha256_prefix":"5af6f50a761a3cd2","entry":"calculate_overlap","repo":"51616/split-vae","repo_kind":"official","path":"spair/data.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/data.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":"5af6f50a761a3cd2"}},{"code_sha256_prefix":"15a44e208eb95089","entry":"concrete_binary_pre_sigmoid_sample","repo":"51616/split-vae","repo_kind":"official","path":"spair/utils.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/utils.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":"15a44e208eb95089"}},{"code_sha256_prefix":"0f6ffc1f82fd1092","entry":"concrete_binary_sample_kl","repo":"51616/split-vae","repo_kind":"official","path":"spair/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/trainer.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":"0f6ffc1f82fd1092"}},{"code_sha256_prefix":"2158436f4619f9af","entry":"discretised_logistic_loss","repo":"51616/split-vae","repo_kind":"official","path":"vae/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/trainer.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":"2158436f4619f9af"}},{"code_sha256_prefix":"135b3dc835ffe6ad","entry":"get_confirm_token","repo":"51616/split-vae","repo_kind":"official","path":"vae/utils.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/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":"135b3dc835ffe6ad"}},{"code_sha256_prefix":"5438d8d9576107a0","entry":"get_model","repo":"51616/split-vae","repo_kind":"official","path":"spair/spair.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/spair.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":"5438d8d9576107a0"}},{"code_sha256_prefix":"98bc49e1bae2904c","entry":"glimpses_reconstruction_test","repo":"51616/split-vae","repo_kind":"official","path":"spair/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/visualizer.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":"98bc49e1bae2904c"}},{"code_sha256_prefix":"978b2197d45a49c5","entry":"kl_divergence","repo":"51616/split-vae","repo_kind":"official","path":"vae/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/trainer.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":"978b2197d45a49c5"}},{"code_sha256_prefix":"06d6e95f7b14b7dd","entry":"kl_divergence","repo":"51616/split-vae","repo_kind":"official","path":"spair/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/trainer.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":"06d6e95f7b14b7dd"}},{"code_sha256_prefix":"dfdbb3b5c5bd51e4","entry":"kl_divergence_two_gauss","repo":"51616/split-vae","repo_kind":"official","path":"vae/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/trainer.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":"dfdbb3b5c5bd51e4"}},{"code_sha256_prefix":"e1b9bac44422dfff","entry":"kl_divergence_two_gauss","repo":"51616/split-vae","repo_kind":"official","path":"spair/trainer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/trainer.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":"e1b9bac44422dfff"}},{"code_sha256_prefix":"f83c05a84860edf5","entry":"random_crop","repo":"51616/split-vae","repo_kind":"official","path":"spair/data.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/data.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":"f83c05a84860edf5"}},{"code_sha256_prefix":"42bf7a6e7b60c60c","entry":"reconstruction_bbox","repo":"51616/split-vae","repo_kind":"official","path":"spair/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/visualizer.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":"42bf7a6e7b60c60c"}},{"code_sha256_prefix":"8d20e3820ec4c18d","entry":"reconstruction_test","repo":"51616/split-vae","repo_kind":"official","path":"spair/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/spair/visualizer.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":"8d20e3820ec4c18d"}},{"code_sha256_prefix":"32c56d8020d4ae89","entry":"reconstruction_test_lg_vae","repo":"51616/split-vae","repo_kind":"official","path":"vae/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/visualizer.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":"32c56d8020d4ae89"}},{"code_sha256_prefix":"fa6264be29eb01f9","entry":"style_transfer_celeba","repo":"51616/split-vae","repo_kind":"official","path":"vae/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/visualizer.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":"fa6264be29eb01f9"}},{"code_sha256_prefix":"9f8ebb6945e3f4ee","entry":"style_transfer_test","repo":"51616/split-vae","repo_kind":"official","path":"vae/visualizer.py","file_url":"https://github.com/51616/split-vae/blob/HEAD/vae/visualizer.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":"9f8ebb6945e3f4ee"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}