{"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/likelihood-training-of-schrodinger-bridge-1","title":"Likelihood Training of Schrödinger Bridge using Forward-Backward SDEs Theory","arxiv_id":"2110.11291","date":"2021-10-21","proceeding":"ICLR 2022 4","authors":["Tianrong Chen","Guan-Horng Liu","Evangelos A. Theodorou"],"abstract":"Schr\\\"odinger Bridge (SB) is an entropy-regularized optimal transport problem that has received increasing attention in deep generative modeling for its mathematical flexibility compared to the Scored-based Generative Model (SGM). However, it remains unclear whether the optimization principle of SB relates to the modern training of deep generative models, which often rely on constructing log-likelihood objectives.This raises questions on the suitability of SB models as a principled alternative for generative applications. In this work, we present a novel computational framework for likelihood training of SB models grounded on Forward-Backward Stochastic Differential Equations Theory - a mathematical methodology appeared in stochastic optimal control that transforms the optimality condition of SB into a set of SDEs. Crucially, these SDEs can be used to construct the likelihood objectives for SB that, surprisingly, generalizes the ones for SGM as special cases. This leads to a new optimization principle that inherits the same SB optimality yet without losing applications of modern generative training techniques, and we show that the resulting training algorithm achieves comparable results on generating realistic images on MNIST, CelebA, and CIFAR10. Our code is available at https://github.com/ghliu/SB-FBSDE.","url_abs":"https://arxiv.org/abs/2110.11291v5","url_pdf":"https://arxiv.org/pdf/2110.11291v5.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":"likelihood-training-of-schrodinger-bridge-1","repo_url":"https://github.com/ghliu/sb-fbsde","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-generation-on-cifar-10","task":"Image Generation","dataset":"CIFAR-10","model":"SB-FBSDE","rank_in_archive_order":26,"of":78,"metrics":{"FID":"3.01"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2110.11291","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.11291"}},"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/ghliu/sb-fbsde","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":2,"ran":3,"ran_honours":2,"unverified":4},"by_repo_kind":{"official":{"samples":11,"ran":7,"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":"7b0725913f7abbbb","entry":"sample_rademacher_like","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":2,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7b0725913f7abbbb"}},{"code_sha256_prefix":"831ff3e5265f6557","entry":"blue","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"util.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/util.py","link_basis":"harvester_set","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":"831ff3e5265f6557"}},{"code_sha256_prefix":"aafea5a6cd6d98ab","entry":"checkpoint","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/models/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"aafea5a6cd6d98ab"}},{"code_sha256_prefix":"6c22ac743d271a9e","entry":"green","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"util.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/util.py","link_basis":"harvester_set","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":"6c22ac743d271a9e"}},{"code_sha256_prefix":"f975c78dd7a0439b","entry":"red","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"util.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/util.py","link_basis":"harvester_set","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":"f975c78dd7a0439b"}},{"code_sha256_prefix":"97f801e33d907e8a","entry":"sample_gaussian_like","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"97f801e33d907e8a"}},{"code_sha256_prefix":"129b804760b3115f","entry":"zero_module","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/models/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"129b804760b3115f"}},{"code_sha256_prefix":"ecd0fc28815b65ae","entry":"avg_pool_nd","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/models/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ecd0fc28815b65ae"}},{"code_sha256_prefix":"f3c69a82cb618229","entry":"divergence_approx","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"sde.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/sde.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f3c69a82cb618229"}},{"code_sha256_prefix":"0cea5977ff26ee79","entry":"get_data_dim","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"data.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0cea5977ff26ee79"}},{"code_sha256_prefix":"0601e2625342e738","entry":"sample_e","repo":"ghliu/sb-fbsde","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ghliu/sb-fbsde/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0601e2625342e738"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}