{"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/a-coupled-flow-approach-to-imitation-learning","title":"A Coupled Flow Approach to Imitation Learning","arxiv_id":"2305.00303","date":"2023-04-29","proceeding":null,"authors":["Gideon Freund","Elad Sarafian","Sarit Kraus"],"abstract":"In reinforcement learning and imitation learning, an object of central importance is the state distribution induced by the policy. It plays a crucial role in the policy gradient theorem, and references to it--along with the related state-action distribution--can be found all across the literature. Despite its importance, the state distribution is mostly discussed indirectly and theoretically, rather than being modeled explicitly. The reason being an absence of appropriate density estimation tools. In this work, we investigate applications of a normalizing flow-based model for the aforementioned distributions. In particular, we use a pair of flows coupled through the optimality point of the Donsker-Varadhan representation of the Kullback-Leibler (KL) divergence, for distribution matching based imitation learning. Our algorithm, Coupled Flow Imitation Learning (CFIL), achieves state-of-the-art performance on benchmark tasks with a single expert trajectory and extends naturally to a variety of other settings, including the subsampled and state-only regimes.","url_abs":"https://arxiv.org/abs/2305.00303v1","url_pdf":"https://arxiv.org/pdf/2305.00303v1.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":"a-coupled-flow-approach-to-imitation-learning","repo_url":"https://github.com/gfreund123/cfil","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"a-coupled-flow-approach-to-imitation-learning","repo_url":"https://github.com/ml-group-sdu/diffail","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"density-estimation","task_name":"Density Estimation"},{"task_slug":"imitation-learning","task_name":"Imitation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.00303","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.00303"}},"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/ml-group-sdu/diffail","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gfreund123/cfil","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"unverified":4},"by_repo_kind":{"community":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"5a2e1cee97642f25","entry":"create_masks","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"maf.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/maf.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5a2e1cee97642f25"}},{"code_sha256_prefix":"4ded486bf24035d1","entry":"evaluate","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"maf.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/maf.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4ded486bf24035d1"}},{"code_sha256_prefix":"3672083c9d5c74a5","entry":"compute_kl_qp_loss","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"bnaf.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/bnaf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3672083c9d5c74a5"}},{"code_sha256_prefix":"e85f2bdae1682196","entry":"evaluate","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"glow.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/glow.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e85f2bdae1682196"}},{"code_sha256_prefix":"39bbb477ca2e6900","entry":"potential_fn","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"bnaf.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/bnaf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"39bbb477ca2e6900"}},{"code_sha256_prefix":"dd262503f03810a0","entry":"sample_2d_data","repo":"kamenbliznashki/normalizing_flows","repo_kind":"community","path":"bnaf.py","file_url":"https://github.com/kamenbliznashki/normalizing_flows/blob/HEAD/bnaf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dd262503f03810a0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}