{"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/disentanglement-by-nonlinear-ica-with-general","title":"Disentanglement by Nonlinear ICA with General Incompressible-flow Networks (GIN)","arxiv_id":"2001.04872","date":"2020-01-14","proceeding":"ICLR 2020 1","authors":["Peter Sorrenson","Carsten Rother","Ullrich Köthe"],"abstract":"A central question of representation learning asks under which conditions it is possible to reconstruct the true latent variables of an arbitrarily complex generative process. Recent breakthrough work by Khemakhem et al. (2019) on nonlinear ICA has answered this question for a broad class of conditional generative processes. We extend this important result in a direction relevant for application to real-world data. First, we generalize the theory to the case of unknown intrinsic problem dimension and prove that in some special (but not very restrictive) cases, informative latent variables will be automatically separated from noise by an estimating model. Furthermore, the recovered informative latent variables will be in one-to-one correspondence with the true latent variables of the generating process, up to a trivial component-wise transformation. Second, we introduce a modification of the RealNVP invertible neural network architecture (Dinh et al. (2016)) which is particularly suitable for this type of problem: the General Incompressible-flow Network (GIN). Experiments on artificial data and EMNIST demonstrate that theoretical predictions are indeed verified in practice. In particular, we provide a detailed set of exactly 22 informative latent variables extracted from EMNIST.","url_abs":"https://arxiv.org/abs/2001.04872v1","url_pdf":"https://arxiv.org/pdf/2001.04872v1.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":"disentanglement-by-nonlinear-ica-with-general","repo_url":"https://github.com/VLL-HD/GIN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"affine-coupling","method_name":"Affine Coupling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"ica","method_name":"ICA"},{"method_slug":"normalizing-flows","method_name":"Normalizing Flows"},{"method_slug":"realnvp","method_name":"RealNVP"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2001.04872","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2001.04872"}},"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/VLL-HD/GIN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"listed":{"samples":5,"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":"b3f77a6966255640","entry":"make_dataloader","repo":"VLL-HD/GIN","repo_kind":"listed","path":"data.py","file_url":"https://github.com/VLL-HD/GIN/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":"b3f77a6966255640"}},{"code_sha256_prefix":"d86324f50c63b523","entry":"make_dataloader_emnist","repo":"VLL-HD/GIN","repo_kind":"listed","path":"data.py","file_url":"https://github.com/VLL-HD/GIN/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":"d86324f50c63b523"}},{"code_sha256_prefix":"70f8863872169995","entry":"scale_ground_truth","repo":"VLL-HD/GIN","repo_kind":"listed","path":"plot.py","file_url":"https://github.com/VLL-HD/GIN/blob/HEAD/plot.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":"70f8863872169995"}},{"code_sha256_prefix":"4fd146e6b5e1ce2d","entry":"subnet_fc","repo":"VLL-HD/GIN","repo_kind":"listed","path":"model.py","file_url":"https://github.com/VLL-HD/GIN/blob/HEAD/model.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":"4fd146e6b5e1ce2d"}},{"code_sha256_prefix":"30fabfdc14029635","entry":"subnet_fc_10d","repo":"VLL-HD/GIN","repo_kind":"listed","path":"model.py","file_url":"https://github.com/VLL-HD/GIN/blob/HEAD/model.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":"30fabfdc14029635"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}