{"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/how-to-leverage-diverse-demonstrations-in","title":"How to Leverage Diverse Demonstrations in Offline Imitation Learning","arxiv_id":"2405.17476","date":"2024-05-24","proceeding":null,"authors":["Sheng Yue","Jiani Liu","Xingyuan Hua","Ju Ren","Sen Lin","Junshan Zhang","Yaoxue Zhang"],"abstract":"Offline Imitation Learning (IL) with imperfect demonstrations has garnered increasing attention owing to the scarcity of expert data in many real-world domains. A fundamental problem in this scenario is how to extract positive behaviors from noisy data. In general, current approaches to the problem select data building on state-action similarity to given expert demonstrations, neglecting precious information in (potentially abundant) $\\textit{diverse}$ state-actions that deviate from expert ones. In this paper, we introduce a simple yet effective data selection method that identifies positive behaviors based on their resultant states -- a more informative criterion enabling explicit utilization of dynamics information and effective extraction of both expert and beneficial diverse behaviors. Further, we devise a lightweight behavior cloning algorithm capable of leveraging the expert and selected data correctly. In the experiments, we evaluate our method on a suite of complex and high-dimensional offline IL benchmarks, including continuous-control and vision-based tasks. The results demonstrate that our method achieves state-of-the-art performance, outperforming existing methods on $\\textbf{20/21}$ benchmarks, typically by $\\textbf{2-5x}$, while maintaining a comparable runtime to Behavior Cloning ($\\texttt{BC}$).","url_abs":"https://arxiv.org/abs/2405.17476v3","url_pdf":"https://arxiv.org/pdf/2405.17476v3.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":"how-to-leverage-diverse-demonstrations-in","repo_url":"https://github.com/hansenhua/ilid-offline-imitation-learning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"continuous-control","task_name":"Continuous Control"},{"task_slug":"imitation-learning","task_name":"Imitation Learning"},{"task_slug":"continuous-control","task_name":"continuous-control"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.17476","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17476"}},"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":"deterministic:regex_extraction","url":"https://github.com/ryanxhr/DWBC","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/tinkoff-ai/CORL","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/liziniu/ISWBC","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hansenhua/ilid-offline-imitation-learning","reach":{"status":"ok"}}],"summary":{"ran":8,"unverified":5},"by_repo_kind":{"found_in_text":{"samples":13,"ran":8,"repositories":3}},"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":"3336fdca39b09846","entry":"clamp","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"atari/experiments/agents/iswbc_agent.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/atari/experiments/agents/iswbc_agent.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3336fdca39b09846"}},{"code_sha256_prefix":"cc5f4add4c5cc2b4","entry":"concat_trajectories","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"mujoco/dataset_utils.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/mujoco/dataset_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cc5f4add4c5cc2b4"}},{"code_sha256_prefix":"f013924cbc909a48","entry":"get_dataset","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"mujoco/dataset_utils.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/mujoco/dataset_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f013924cbc909a48"}},{"code_sha256_prefix":"ef7fbd2aab415a25","entry":"get_replay_dataset","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"mujoco/dataset_utils.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/mujoco/dataset_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ef7fbd2aab415a25"}},{"code_sha256_prefix":"119b5a0ec83785b2","entry":"qlearning_dataset","repo":"ryanxhr/DWBC","repo_kind":"found_in_text","path":"get_dataset.py","file_url":"https://github.com/ryanxhr/DWBC/blob/HEAD/get_dataset.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":"119b5a0ec83785b2"}},{"code_sha256_prefix":"8ceadd2844bebbfb","entry":"stable_scaled_log_softmax","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"atari/experiments/agents/iswbc_agent.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/atari/experiments/agents/iswbc_agent.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8ceadd2844bebbfb"}},{"code_sha256_prefix":"2de1ae4938d1cdca","entry":"stable_softmax","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"atari/experiments/agents/iswbc_agent.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/atari/experiments/agents/iswbc_agent.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2de1ae4938d1cdca"}},{"code_sha256_prefix":"bde9000f5d0e5e03","entry":"timeit","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"atari/experiments/replay_memory.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/atari/experiments/replay_memory.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bde9000f5d0e5e03"}},{"code_sha256_prefix":"c55b1773d8caec85","entry":"dataset_setting1","repo":"ryanxhr/DWBC","repo_kind":"found_in_text","path":"get_dataset.py","file_url":"https://github.com/ryanxhr/DWBC/blob/HEAD/get_dataset.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":"c55b1773d8caec85"}},{"code_sha256_prefix":"ef7685bff6390ccd","entry":"dataset_setting2","repo":"ryanxhr/DWBC","repo_kind":"found_in_text","path":"get_dataset.py","file_url":"https://github.com/ryanxhr/DWBC/blob/HEAD/get_dataset.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":"ef7685bff6390ccd"}},{"code_sha256_prefix":"8205eb63bd6bd52d","entry":"eval_policy","repo":"ryanxhr/DWBC","repo_kind":"found_in_text","path":"main_setting_demodice.py","file_url":"https://github.com/ryanxhr/DWBC/blob/HEAD/main_setting_demodice.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":"8205eb63bd6bd52d"}},{"code_sha256_prefix":"83e1823efe8292e6","entry":"evaluate","repo":"liziniu/ISWBC","repo_kind":"found_in_text","path":"mujoco/run_iswbc_full_replay.py","file_url":"https://github.com/liziniu/ISWBC/blob/HEAD/mujoco/run_iswbc_full_replay.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":"83e1823efe8292e6"}},{"code_sha256_prefix":"da056a6fdaccaacf","entry":"keep_best_trajectories","repo":"tinkoff-ai/CORL","repo_kind":"found_in_text","path":"algorithms/offline/any_percent_bc.py","file_url":"https://github.com/tinkoff-ai/CORL/blob/HEAD/algorithms/offline/any_percent_bc.py","link_basis":"first_harvest_node","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":"da056a6fdaccaacf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}