{"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/two-stage-learning-of-stabilizing-neural","title":"Two-Stage Learning of Stabilizing Neural Controllers via Zubov Sampling and Iterative Domain Expansion","arxiv_id":"2506.01356","date":"2025-06-02","proceeding":null,"authors":["Haoyu Li","Xiangru Zhong","Bin Hu","huan zhang"],"abstract":"Learning-based neural network (NN) control policies have shown impressive empirical performance. However, obtaining stability guarantees and estimations of the region of attraction of these learned neural controllers is challenging due to the lack of stable and scalable training and verification algorithms. Although previous works in this area have achieved great success, much conservatism remains in their framework. In this work, we propose a novel two-stage training framework to jointly synthesize the controller and Lyapunov function for continuous-time systems. By leveraging a Zubov-inspired region of attraction characterization to directly estimate stability boundaries, we propose a novel training data sampling strategy and a domain updating mechanism that significantly reduces the conservatism in training. Moreover, unlike existing works on continuous-time systems that rely on an SMT solver to formally verify the Lyapunov condition, we extend state-of-the-art neural network verifier $\\alpha,\\!\\beta$-CROWN with the capability of performing automatic bound propagation through the Jacobian of dynamical systems and a novel verification scheme that avoids expensive bisection. To demonstrate the effectiveness of our approach, we conduct numerical experiments by synthesizing and verifying controllers on several challenging nonlinear systems across multiple dimensions. We show that our training can yield region of attractions with volume $5 - 1.5\\cdot 10^{5}$ times larger compared to the baselines, and our verification on continuous systems can be up to $40-10000$ times faster compared to the traditional SMT solver dReal. Our code is available at https://github.com/Verified-Intelligence/Two-Stage_Neural_Controller_Training.","url_abs":"https://arxiv.org/abs/2506.01356v1","url_pdf":"https://arxiv.org/pdf/2506.01356v1.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":"two-stage-learning-of-stabilizing-neural","repo_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2506.01356","atlas_url":"https://app.syntology.ai/?focus=2506.01356","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2506.01356"}},"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/YaChienChang/Neural-Lyapunov-Control","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/verified-intelligence/two-stage_neural_controller_training","reach":null}],"summary":{"ran_draft_wrong":3,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"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":"dc981efdf82dc7ec","entry":"compute_full_violation","repo":"verified-intelligence/two-stage_neural_controller_training","repo_kind":"official","path":"src/finetune.py","file_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training/blob/HEAD/src/finetune.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dc981efdf82dc7ec"}},{"code_sha256_prefix":"998c3cc666e77038","entry":"pgd_attack_band_ROA","repo":"verified-intelligence/two-stage_neural_controller_training","repo_kind":"official","path":"src/finetune.py","file_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training/blob/HEAD/src/finetune.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"998c3cc666e77038"}},{"code_sha256_prefix":"1caeba86878edbfd","entry":"sample_out_of_domain","repo":"verified-intelligence/two-stage_neural_controller_training","repo_kind":"official","path":"src/finetune.py","file_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training/blob/HEAD/src/finetune.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1caeba86878edbfd"}},{"code_sha256_prefix":"3e8308f3705abd65","entry":"finetune_roa_adaptive_cex_nobdry","repo":"verified-intelligence/two-stage_neural_controller_training","repo_kind":"official","path":"src/finetune.py","file_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training/blob/HEAD/src/finetune.py","link_basis":"first_harvest_node","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":"3e8308f3705abd65"}},{"code_sha256_prefix":"8288aa89301d27b2","entry":"update_adv_dataset","repo":"verified-intelligence/two-stage_neural_controller_training","repo_kind":"official","path":"src/finetune.py","file_url":"https://github.com/verified-intelligence/two-stage_neural_controller_training/blob/HEAD/src/finetune.py","link_basis":"first_harvest_node","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":"8288aa89301d27b2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}