{"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/on-pi-controllers-for-updating-lagrange","title":"On PI Controllers for Updating Lagrange Multipliers in Constrained Optimization","arxiv_id":"2406.04558","date":"2024-06-07","proceeding":null,"authors":["Motahareh Sohrabi","Juan Ramirez","Tianyue H. Zhang","Simon Lacoste-Julien","Jose Gallego-Posada"],"abstract":"Constrained optimization offers a powerful framework to prescribe desired behaviors in neural network models. Typically, constrained problems are solved via their min-max Lagrangian formulations, which exhibit unstable oscillatory dynamics when optimized using gradient descent-ascent. The adoption of constrained optimization techniques in the machine learning community is currently limited by the lack of reliable, general-purpose update schemes for the Lagrange multipliers. This paper proposes the $\\nu$PI algorithm and contributes an optimization perspective on Lagrange multiplier updates based on PI controllers, extending the work of Stooke, Achiam and Abbeel (2020). We provide theoretical and empirical insights explaining the inability of momentum methods to address the shortcomings of gradient descent-ascent, and contrast this with the empirical success of our proposed $\\nu$PI controller. Moreover, we prove that $\\nu$PI generalizes popular momentum methods for single-objective minimization. Our experiments demonstrate that $\\nu$PI reliably stabilizes the multiplier dynamics and its hyperparameters enjoy robust and predictable behavior.","url_abs":"https://arxiv.org/abs/2406.04558v1","url_pdf":"https://arxiv.org/pdf/2406.04558v1.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":"on-pi-controllers-for-updating-lagrange","repo_url":"https://github.com/motahareh-sohrabi/nupi","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2406.04558","atlas_url":"https://app.syntology.ai/?focus=2406.04558","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.04558"}},"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":"deterministic:regex_extraction","url":"https://github.com/motahareh-sohrabi/nuPI","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/motahareh-sohrabi/nupi","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2},"by_repo_kind":{"official":{"samples":2,"ran":2,"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":"fbbedf4d02ee82a8","entry":"default_get_config","repo":"motahareh-sohrabi/nuPI","repo_kind":"official","path":"shared.py","file_url":"https://github.com/motahareh-sohrabi/nuPI/blob/HEAD/shared.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fbbedf4d02ee82a8"}},{"code_sha256_prefix":"bf95c4b40d3737a0","entry":"fetch_main_logger","repo":"motahareh-sohrabi/nuPI","repo_kind":"official","path":"shared.py","file_url":"https://github.com/motahareh-sohrabi/nuPI/blob/HEAD/shared.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bf95c4b40d3737a0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}