{"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/arxiv-2509-20177","title":"Generative Model Inversion Through the Lens of the Manifold Hypothesis","arxiv_id":"2509.20177","date":"2025-09-24","proceeding":"NeurIPS","authors":["Xiong Peng","Bo Han","Fengfei Yu","Tongliang Liu","Feng Liu","Mingyuan Zhou"],"abstract":"Model inversion attacks (MIAs) aim to reconstruct class-representative samples from trained models. Recent generative MIAs utilize generative adversarial networks to learn image priors that guide the inversion process, yielding reconstructions with high visual quality and strong fidelity to the private training data. To explore the reason behind their effectiveness, we begin by examining the gradients of inversion loss with respect to synthetic inputs, and find that these gradients are surprisingly noisy. Further analysis reveals that generative inversion implicitly denoises these gradients by projecting them onto the tangent space of the generator manifold, filtering out off-manifold components while preserving informative directions aligned with the manifold. Our empirical measurements show that, in models trained with standard supervision, loss gradients often exhibit large angular deviations from the data manifold, indicating poor alignment with class-relevant directions. This observation motivates our central hypothesis: models become more vulnerable to MIAs when their loss gradients align more closely with the generator manifold. We validate this hypothesis by designing a novel training objective that explicitly promotes such alignment. Building on this insight, we further introduce a training-free approach to enhance gradient-manifold alignment during inversion, leading to consistent improvements over state-of-the-art generative MIAs.","url_abs":"https://arxiv.org/abs/2509.20177","url_pdf":"https://arxiv.org/pdf/2509.20177","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2509.20177","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2509.20177"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/tmlr-group/AlignMI","reach":{"status":"ok"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI","reach":{"status":"ok"}}],"summary":{"ran_honours":2,"ran_draft_wrong":4,"unverified":10},"by_repo_kind":{"found_in_text":{"samples":16,"ran":6,"repositories":2}},"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":16,"samples":[{"code_sha256_prefix":"0b62387de45ba23b","entry":"Pdist2","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/mmd_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/mmd_loss.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0b62387de45ba23b"}},{"code_sha256_prefix":"17b094c69aebe5ed","entry":"dconv_bn_relu","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"models/generator.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/models/generator.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"17b094c69aebe5ed"}},{"code_sha256_prefix":"ad5dbf57f3ea2633","entry":"get_block","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"models/evolve.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/models/evolve.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ad5dbf57f3ea2633"}},{"code_sha256_prefix":"ea7941eb1ea8ffb2","entry":"get_blocks","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"models/evolve.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/models/evolve.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ea7941eb1ea8ffb2"}},{"code_sha256_prefix":"c54fea429589425d","entry":"l2_norm","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"models/evolve.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/models/evolve.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c54fea429589425d"}},{"code_sha256_prefix":"9eeaa864194d2b12","entry":"poincare_loss","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/losses/poincare.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/losses/poincare.py","link_basis":"plan_row","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":"9eeaa864194d2b12"}},{"code_sha256_prefix":"8ceea87fe22a6f64","entry":"completion_network_loss","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"losses.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8ceea87fe22a6f64"}},{"code_sha256_prefix":"2a8b85ddd4d1398a","entry":"create_initial_vectors","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/attack.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/attack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a8b85ddd4d1398a"}},{"code_sha256_prefix":"eca18f52e446c713","entry":"ct","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/ct_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/ct_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eca18f52e446c713"}},{"code_sha256_prefix":"d1badab353798361","entry":"guassian_kernel","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/mmd_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/mmd_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d1badab353798361"}},{"code_sha256_prefix":"f0c385819d1248ac","entry":"l2_loss","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/l2_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/l2_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f0c385819d1248ac"}},{"code_sha256_prefix":"0dec46f9d35f2650","entry":"l2_loss_all_pairs","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/l2_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/l2_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0dec46f9d35f2650"}},{"code_sha256_prefix":"36a55c008abe5c4b","entry":"load_attri","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"dataloader.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"36a55c008abe5c4b"}},{"code_sha256_prefix":"931e13e1f2b410bc","entry":"mmd","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/mmd_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/mmd_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"931e13e1f2b410bc"}},{"code_sha256_prefix":"45a9b6bf1ce41469","entry":"noise_loss","repo":"sutd-visual-computing-group/Re-thinking_MI","repo_kind":"found_in_text","path":"losses.py","file_url":"https://github.com/sutd-visual-computing-group/Re-thinking_MI/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"45a9b6bf1ce41469"}},{"code_sha256_prefix":"8c809b3027f48d74","entry":"pairwise_cosine_dist","repo":"tmlr-group/AlignMI","repo_kind":"found_in_text","path":"high_resolution/criteria/ct_loss.py","file_url":"https://github.com/tmlr-group/AlignMI/blob/HEAD/high_resolution/criteria/ct_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c809b3027f48d74"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}