{"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/stochastic-optimal-control-matching","title":"Stochastic Optimal Control Matching","arxiv_id":"2312.02027","date":"2023-12-04","proceeding":null,"authors":["Carles Domingo-Enrich","Jiequn Han","Brandon Amos","Joan Bruna","Ricky T. Q. Chen"],"abstract":"Stochastic optimal control, which has the goal of driving the behavior of noisy systems, is broadly applicable in science, engineering and artificial intelligence. Our work introduces Stochastic Optimal Control Matching (SOCM), a novel Iterative Diffusion Optimization (IDO) technique for stochastic optimal control that stems from the same philosophy as the conditional score matching loss for diffusion models. That is, the control is learned via a least squares problem by trying to fit a matching vector field. The training loss, which is closely connected to the cross-entropy loss, is optimized with respect to both the control function and a family of reparameterization matrices which appear in the matching vector field. The optimization with respect to the reparameterization matrices aims at minimizing the variance of the matching vector field. Experimentally, our algorithm achieves lower error than all the existing IDO techniques for stochastic optimal control for three out of four control problems, in some cases by an order of magnitude. The key idea underlying SOCM is the path-wise reparameterization trick, a novel technique that may be of independent interest. Code at https://github.com/facebookresearch/SOC-matching","url_abs":"https://arxiv.org/abs/2312.02027v5","url_pdf":"https://arxiv.org/pdf/2312.02027v5.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":"stochastic-optimal-control-matching","repo_url":"https://github.com/facebookresearch/soc-matching","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"philosophy","task_name":"Philosophy"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.02027","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.02027"}},"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/facebookresearch/soc-matching","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":5,"unverified":3},"by_repo_kind":{"official":{"samples":8,"ran":5,"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":8,"samples":[{"code_sha256_prefix":"c679ec93b211f696","entry":"brownian_bridge_std","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/gsbm_lib.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/gsbm_lib.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c679ec93b211f696"}},{"code_sha256_prefix":"711b453f130130c0","entry":"brownian_motion_std","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/gsbm_lib.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/gsbm_lib.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"711b453f130130c0"}},{"code_sha256_prefix":"42cd5c6c9d59171d","entry":"cubic_interp1d","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/interp1d.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/interp1d.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"42cd5c6c9d59171d"}},{"code_sha256_prefix":"7f3aa2b64734b9df","entry":"init_spline","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/gsbm_lib.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/gsbm_lib.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7f3aa2b64734b9df"}},{"code_sha256_prefix":"f90fca5deae6ff4c","entry":"linear_interp1d","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/interp1d.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/interp1d.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f90fca5deae6ff4c"}},{"code_sha256_prefix":"419d0b572122971f","entry":"control_objective","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/utils.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"419d0b572122971f"}},{"code_sha256_prefix":"5a082f656bcc3b5e","entry":"normalization_constant","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/utils.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5a082f656bcc3b5e"}},{"code_sha256_prefix":"e1ca048d7d7f1912","entry":"stochastic_trajectories","repo":"facebookresearch/soc-matching","repo_kind":"official","path":"SOC_matching/utils.py","file_url":"https://github.com/facebookresearch/soc-matching/blob/HEAD/SOC_matching/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e1ca048d7d7f1912"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}