{"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/learning-proximal-operators-to-discover","title":"Learning Proximal Operators to Discover Multiple Optima","arxiv_id":"2201.11945","date":"2022-01-28","proceeding":null,"authors":["Lingxiao Li","Noam Aigerman","Vladimir G. Kim","Jiajin Li","Kristjan Greenewald","Mikhail Yurochkin","Justin Solomon"],"abstract":"Finding multiple solutions of non-convex optimization problems is a ubiquitous yet challenging task. Most past algorithms either apply single-solution optimization methods from multiple random initial guesses or search in the vicinity of found solutions using ad hoc heuristics. We present an end-to-end method to learn the proximal operator of a family of training problems so that multiple local minima can be quickly obtained from initial guesses by iterating the learned operator, emulating the proximal-point algorithm that has fast convergence. The learned proximal operator can be further generalized to recover multiple optima for unseen problems at test time, enabling applications such as object detection. The key ingredient in our formulation is a proximal regularization term, which elevates the convexity of our training loss: by applying recent theoretical results, we show that for weakly-convex objectives with Lipschitz gradients, training of the proximal operator converges globally with a practical degree of over-parameterization. We further present an exhaustive benchmark for multi-solution optimization to demonstrate the effectiveness of our method.","url_abs":"https://arxiv.org/abs/2201.11945v3","url_pdf":"https://arxiv.org/pdf/2201.11945v3.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":"learning-proximal-operators-to-discover","repo_url":"https://github.com/lingxiaoli94/pol","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"hoc","method_name":"HOC"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2201.11945","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2201.11945"}},"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/lingxiaoli94/pol","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"063a0fdf435680a0","entry":"aggregate","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/utils/loss_aggregation.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/utils/loss_aggregation.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":"063a0fdf435680a0"}},{"code_sha256_prefix":"9d1ae5336498c0a1","entry":"collate_padding_fn","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/objdetect.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/objdetect.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":"9d1ae5336498c0a1"}},{"code_sha256_prefix":"14b4684487d5b6e6","entry":"compute_model_size","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/utils/model_size.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/utils/model_size.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":"14b4684487d5b6e6"}},{"code_sha256_prefix":"af2296dbabc9067f","entry":"compute_proxy_target_loss","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/utils/union_sdf_loss.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/utils/union_sdf_loss.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":"af2296dbabc9067f"}},{"code_sha256_prefix":"7d19aa8b0e714f75","entry":"compute_proxy_union_sdf","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/utils/union_sdf_loss.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/utils/union_sdf_loss.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":"7d19aa8b0e714f75"}},{"code_sha256_prefix":"2dc8a4235958f08c","entry":"create_nd_dataset","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/linear_regression.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/linear_regression.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":"2dc8a4235958f08c"}},{"code_sha256_prefix":"b67eecbc6e345636","entry":"create_toy1_2d_dataset","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/linear_regression.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/linear_regression.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":"b67eecbc6e345636"}},{"code_sha256_prefix":"8217e92ab2b14394","entry":"get_square_padding","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/objdetect.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/objdetect.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":"8217e92ab2b14394"}},{"code_sha256_prefix":"60f74c28a1526d90","entry":"make_analytical_loss_fn","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/analytical.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/analytical.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":"60f74c28a1526d90"}},{"code_sha256_prefix":"ce2471f80a234495","entry":"make_linear_regression_loss_fn","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/linear_regression.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/linear_regression.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":"ce2471f80a234495"}},{"code_sha256_prefix":"0406a3c440bc60ac","entry":"max_by_axis","repo":"lingxiaoli94/pol","repo_kind":"official","path":"pol/datasets/objdetect.py","file_url":"https://github.com/lingxiaoli94/pol/blob/HEAD/pol/datasets/objdetect.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":"0406a3c440bc60ac"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}