{"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/what-s-in-a-prior-learned-proximal-networks","title":"What's in a Prior? Learned Proximal Networks for Inverse Problems","arxiv_id":"2310.14344","date":"2023-10-22","proceeding":null,"authors":["Zhenghan Fang","Sam Buchanan","Jeremias Sulam"],"abstract":"Proximal operators are ubiquitous in inverse problems, commonly appearing as part of algorithmic strategies to regularize problems that are otherwise ill-posed. Modern deep learning models have been brought to bear for these tasks too, as in the framework of plug-and-play or deep unrolling, where they loosely resemble proximal operators. Yet, something essential is lost in employing these purely data-driven approaches: there is no guarantee that a general deep network represents the proximal operator of any function, nor is there any characterization of the function for which the network might provide some approximate proximal. This not only makes guaranteeing convergence of iterative schemes challenging but, more fundamentally, complicates the analysis of what has been learned by these networks about their training data. Herein we provide a framework to develop learned proximal networks (LPN), prove that they provide exact proximal operators for a data-driven nonconvex regularizer, and show how a new training strategy, dubbed proximal matching, provably promotes the recovery of the log-prior of the true data distribution. Such LPN provide general, unsupervised, expressive proximal operators that can be used for general inverse problems with convergence guarantees. We illustrate our results in a series of cases of increasing complexity, demonstrating that these models not only result in state-of-the-art performance, but provide a window into the resulting priors learned from data.","url_abs":"https://arxiv.org/abs/2310.14344v2","url_pdf":"https://arxiv.org/pdf/2310.14344v2.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":"what-s-in-a-prior-learned-proximal-networks","repo_url":"https://github.com/sulam-group/learned-proximal-networks","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.14344","atlas_url":"https://app.syntology.ai/?focus=2310.14344","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.14344"}},"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/sulam-group/learned-proximal-networks","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":8},"by_repo_kind":{"official":{"samples":8,"ran":8,"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":"8ed4162345e6f01d","entry":"cvx","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"exps/laplacian/utils.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/exps/laplacian/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8ed4162345e6f01d"}},{"code_sha256_prefix":"c8dfbf8c31f8fd0d","entry":"gaussian_kernel","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"lpn/operators/blur.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/lpn/operators/blur.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c8dfbf8c31f8fd0d"}},{"code_sha256_prefix":"30a901d47741abbc","entry":"get_kernel_size","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"lpn/operators/blur.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/lpn/operators/blur.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"30a901d47741abbc"}},{"code_sha256_prefix":"79771be175dbb37c","entry":"get_padding","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"lpn/networks/lpn_mnist.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/lpn/networks/lpn_mnist.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"79771be175dbb37c"}},{"code_sha256_prefix":"50afd3868566b5bc","entry":"get_x0","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"lpn/inverse_celeba.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/lpn/inverse_celeba.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"50afd3868566b5bc"}},{"code_sha256_prefix":"0f7be23e768b2368","entry":"measure","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"lpn/inverse_celeba.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/lpn/inverse_celeba.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0f7be23e768b2368"}},{"code_sha256_prefix":"c9f43348a1e9f48e","entry":"prior","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"exps/laplacian/utils.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/exps/laplacian/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c9f43348a1e9f48e"}},{"code_sha256_prefix":"18bd82d75c07384c","entry":"prox","repo":"sulam-group/learned-proximal-networks","repo_kind":"official","path":"exps/laplacian/utils.py","file_url":"https://github.com/sulam-group/learned-proximal-networks/blob/HEAD/exps/laplacian/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18bd82d75c07384c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}