[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Kaixhin--imitation-learning":3,"tool-Kaixhin--imitation-learning":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":10,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":105,"github_topics":106,"view_count":23,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":109,"updated_at":110,"faqs":111,"releases":127},4087,"Kaixhin\u002Fimitation-learning","imitation-learning","Imitation learning algorithms","imitation-learning 是一个专注于深度模仿学习算法的开源项目，旨在帮助智能体通过观察专家演示来掌握复杂任务，而无需依赖繁琐的人工奖励函数设计。它基于强大的 SAC 强化学习算法，集成了 AdRIL、DRIL、GAIL、PWIL 和 RED 等多种前沿模仿学习方法，并支持行为克隆（BC）预训练及混合数据训练等灵活配置。\n\n该工具主要解决了传统强化学习中奖励函数难以定义、样本效率低以及训练不稳定的痛点，特别适用于机器人控制、自动驾驶等需要从人类或专家数据中高效学习的场景。项目已在 Gym MuJoCo 环境中结合 D4RL 专家数据进行了充分验证，确保了算法的可靠性与复现性。\n\nimitation-learning 非常适合 AI 研究人员、算法工程师及深度学习开发者使用。其独特的技术亮点在于提供了高度模块化的架构和丰富的超参数选项，例如支持 AIRL 奖励塑形、谱归一化、多种损失函数变体以及针对特定算法的优化策略。用户只需通过简单的命令行指令即可快速启动训练或进行超参数自动搜索，极大地降低了探索不同模仿学习算法的技术门槛，是研究离线强化学习与模仿学习领域的实用工具箱。","# A Pragmatic Look at Deep Imitation Learning\n\n[![MIT License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE.md)\n\nImitation learning algorithms (using SAC [[HZA18, HZH18]](#references) as the base RL algorithm):\n\n- AdRIL [[SCB21]](#references)\n- DRIL [[BSH20]](#references) (dropout version)\n- GAIL [[HE16]](#references) (a.k.a. DAC\u002FSAM when using an off-policy algorithm [[KAD18, BK18]](#references))\n- GMMIL [[KP18]](#references)\n- PWIL [[DHG20]](#references) (nofill version)\n- RED [[WCA19]](#references)\n\nGeneral options include:\n\n- BC [[P91]](#references) (pre)training: `bc_pretraining.iterations: >= 0; default 0`\n- State-only imitation learning: `imitation.state-only: true\u002Ffalse; default false`\n- Absorbing state indicator [[KAD18]](#references): `imitation.absorbing: true\u002Ffalse; default true`\n- Training on a mix of agent and expert data: `imitation.mix_expert_data: none\u002Fmixed_batch\u002Fprefill_memory'; default none`\n- BC auxiliary loss: `imitation.bc_aux_loss: true\u002Ffalse; default false` (`true` for DRIL)\n\nDRIL, GAIL and RED include several options for their trained discriminators.\n\nAdRIL options include:\n\n- Balanced sampling: `imitation.balanced: true\u002Ffalse` (alternate sampling expert and agent data batches vs. mixed batches)\n- Discriminator update frequency: `imitation.update_freq: >= 0` (set to 0 for SQIL [[RDL19]](#references))\n\nDRIL options include:\n\n- Quantile cutoff: `imitation.quantile_cutoff: >= 0, \u003C= 1`\n\nGAIL options include:\n\n- Reward shaping (AIRL) [[FLL17]](#references): `imitation.model.reward_shaping: true\u002Ffalse`\n- Subtract log π(a|s) (AIRL) [[FLL17]](#references): `imitation.model.subtract_log_policy: true\u002Ffalse`\n- Reward functions (GAIL\u002FAIRL\u002FFAIRL) [[HE16, FLL17, GZG19]](#references): `imitation.model.reward_function: AIRL\u002FFAIRL\u002FGAIL`\n- Gradient penalty [[KAD18, BK18]](#references): `imitation.grad_penalty: >= 0`\n- Spectral normalisation [[BSK20]](#references): `imitation.spectral_norm: true\u002Ffalse`\n- Entropy bonus [[ORH21]](#references): `imitation.entropy_bonus: >= 0`\n- Loss functions (BCE\u002FMixup\u002Fnn-PUGAIL) [[HE16, CNN20, XD19]](#references): `imitation.loss_function: BCE\u002FMixup\u002FPUGAIL`\n- Additional hyperparameters for the loss functions: `imitation.mixup_alpha: >= 0`, `imitation.pos_class_prior: >= 0, \u003C= 1`, `imitation.nonnegative_margin: >= 0`\n\nPWIL options include:\n\n- Reward scale α: `imitation.reward_scale: >= 0`\n- Reward bandwidth scale β: `imitation.reward_bandwidth_scale: >= 0`\n\nRED options include:\n\n- Reward bandwidth scale σ1: `imitation.reward_bandwidth_scale: >= 0`\n\nBenchmarked on [Gym MuJoCo environments](https:\u002F\u002Fwww.gymlibrary.dev\u002Fenvironments\u002Fmujoco\u002F) with [D4RL \"expert-v2\" data](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FD4RL\u002Fwiki\u002FTasks#gym).\n\n## Requirements\n\nRequirements can be installed with:\n```sh\npip install -r requirements.txt\n```\nNotable required packages are [PyTorch](https:\u002F\u002Fpytorch.org\u002F), [OpenAI Gym](https:\u002F\u002Fgym.openai.com\u002F), [D4RL](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FD4RL) and [Hydra](https:\u002F\u002Fhydra.cc\u002F). [Ax](https:\u002F\u002Fax.dev\u002F) and the [Hydra Ax Sweeper plugin](https:\u002F\u002Fhydra.cc\u002Fdocs\u002Fnext\u002Fplugins\u002Fax_sweeper\u002F) are required for hyperparameter optimisation.\n\n## Normal run\n\nThe training of each imitation learning algorithm (or SAC with the real environment reward) can be started with:\n```sh\npython train.py algorithm=\u003CALG> env=\u003CENV>\n```\nwhere `\u003CALG>` is one of `AdRIL\u002FBC\u002FDRIL\u002FGAIL\u002FGMMIL\u002FPWIL\u002FRED\u002FSAC` and `\u003CENV>` is one of `ant\u002Fhalfcheetah\u002Fhopper\u002Fwalker2d`. For example:\n```sh\npython train.py algorithm=GAIL env=hopper\n```\n\nResults will be saved in `outputs\u002F\u003CALGO>_\u003CENV>\u002Fm-d_H-M-S` with the last subfolder indicating the current datetime.\n\nHyperparameters can be found in `conf\u002Fconfig.yaml` and `conf\u002Falgorithm\u002F\u003CALG>.yaml`. To use algorithm- + number-of-trajectory-specific tuned hyperparameters [[AL21]](#references), add option `optimised_hyperparameters=\u003CALG>_\u003CNUM_TRAJECTORIES>_trajectories` (note that `algorithm=\u003CALG>` also needs to be specified to load other algorithm-specific hyperparameters). For example:\n```sh\npython train.py algorithm=AdRIL optimised_hyperparameters=AdRIL_5_trajectories env=halfcheetah\n```\n\nRunning the algorithm on all environments in parallel can be achieved with:\n```sh\npython train_all.py algorithm=\u003CALG> env=\u003CENV>\n```\nwith results saved in `outputs\u002F\u003CALGO>_all\u002Fm-d_H-M-S`, containing subdirectories for each environment.\n\n### Hyperparameter sweep\n\nA hyperparameter sweep can be performed using `-m` and a series of hyperparameter values. For example:\n```sh\npython train.py -m algorithm=PWIL env=walker2d reinforcement.discount=0.97,0.98,0.99\n```\n\nResults will be saved in `outputs\u002F\u003CALGO>_\u003CENV>_sweep\u002Fm-d_H-M-S` with a subdirectory (named by job number) for each run.\n\nTherefore to run seed sweeps with optimised hyperparameters, we can run the following:\n```sh\npython train.py -m algorithm=RED optimised_hyperparameters=RED_25_trajectories env=halfcheetah seed=1,2,3,4,5,6,7,8,9,10\n```\n\n### Hyperparameter optimisation\n\nBayesian hyperparameter optimisation (jointly, over all environments) can be run with:\n```sh\npython train_all.py -m algorithm=\u003CALG>\n```\n\nThis command is used to optimise hyperparameters for a given number of expert trajectories, for example:\n```sh\npython train_all.py -m algorithm=GAIL imitation.trajectories=5\n```\n\nTo view the results of the optimisation process, run:\n```sh\npython scripts\u002Fprint_plot_sweep_results.py --path \u003CPATH>\n```\nfor example, as follow:\n```sh\npython scripts\u002Fprint_plot_sweep_results.py --path outputs\u002FBC_all_sweeper\u002F03-09_19-13-21\n```\n\n## Results\n\n![v2 results](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKaixhin_imitation-learning_readme_7a6ce4d45f5c.png) \n\n## Acknowledgements\n\n- [@ikostrikov](https:\u002F\u002Fgithub.com\u002Fikostrikov) for [https:\u002F\u002Fgithub.com\u002Fikostrikov\u002Fpytorch-a2c-ppo-acktr-gail](https:\u002F\u002Fgithub.com\u002Fikostrikov\u002Fpytorch-a2c-ppo-acktr-gail)\n- [@RuohanW](https:\u002F\u002Fgithub.com\u002FRuohanW) for [https:\u002F\u002Fgithub.com\u002FRuohanW\u002FRED](https:\u002F\u002Fgithub.com\u002FRuohanW\u002FRED)\n- [@jonathantompson](https:\u002F\u002Fgithub.com\u002Fjonathantompson) for [https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fdac](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fdac)\n- [@gkswamy98](https:\u002F\u002Fgithub.com\u002Fgkswamy98) for [https:\u002F\u002Fgithub.com\u002Fgkswamy98\u002Fpillbox](https:\u002F\u002Fgithub.com\u002Fgkswamy98\u002Fpillbox)\n- [@ddsh](https:\u002F\u002Fgithub.com\u002Fddsh) for [https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fpwil](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fpwil)\n\n## Citation\n\nIf you find this work useful and would like to cite it, please use the following:\n\n```tex\n@inproceedings{arulkumaran2023pragmatic,\n  author = {Arulkumaran, Kai and Ogawa Lillrank, Dan},\n  title = {A Pragmatic Look at Deep Imitation Learning},\n  booktitle = {Asian Conference on Machine Learning},\n  year = {2023}\n}\n```\n\n[v1.0](\u002F..\u002F..\u002Freleases\u002Ftag\u002F1.0) of the library contains [on-policy IL algorithms](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867v1). [v2.0](\u002F..\u002F..\u002Freleases\u002Ftag\u002F2.0) of the library contains [off-policy IL algorithms](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867v2).\n\n## References\n\n[AL23] [A Pragmatic Look at Deep Imitation Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867)  \n[BK18] [Sample-Efficient Imitation Learning via Generative Adversarial Nets](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.02064)  \n[BSH20] [Disagreement-Regularized Imitation Learning](https:\u002F\u002Fopenreview.net\u002Fforum?id=rkgbYyHtwB)  \n[BSK20] [Lipschitzness Is All You Need To Tame Off-policy Generative Adversarial Imitation Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.16785)  \n[CNN20] [Batch Exploration with Examples for Scalable Robotic Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11917)  \n[DHG20] [Primal Wasserstein Imitation Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.04678)  \n[FLL17] [Learning Robust Rewards with Adversarial Inverse Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1710.11248)  \n[GZG19] [A Divergence Minimization Perspective on Imitation Learning Methods](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.02256)  \n[HE16] [Generative Adversarial Imitation Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1606.03476)  \n[HZA18] [Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor](https:\u002F\u002Farxiv.org\u002Fabs\u002F1801.01290)  \n[HZH18] [Soft Actor-Critic Algorithms and Applications](https:\u002F\u002Farxiv.org\u002Fabs\u002F1812.05905)  \n[KAD18] [Discriminator-Actor-Critic: Addressing Sample Inefficiency and Reward Bias in Adversarial Imitation Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.02925)  \n[KP18] [Imitation Learning via Kernel Mean Embedding](https:\u002F\u002Fojs.aaai.org\u002Findex.php\u002FAAAI\u002Farticle\u002Fview\u002F11720)  \n[ORH21] [What Matters for Adversarial Imitation Learning?](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.00672)  \n[P91] [Efficient Training of Artificial Neural Networks for Autonomous Navigation](https:\u002F\u002Fwww.mitpressjournals.org\u002Fdoi\u002Fabs\u002F10.1162\u002Fneco.1991.3.1.88?journalCode=neco)  \n[RDL19] [SQIL: Imitation Learning via Reinforcement Learning with Sparse Rewards](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.11108)  \n[SCB21] [Of Moments and Matching: A Game-Theoretic Framework for Closing the Imitation Gap](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.03236)  \n[WCA19] [Random Expert Distillation: Imitation Learning via Expert Policy Support Estimation](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.06750)  \n[XD19] [Positive-Unlabeled Reward Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.00459)  \n","# 深度模仿学习的务实视角\n\n[![MIT License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE.md)\n\n以SAC [[HZA18, HZH18]](#references) 为基础强化学习算法的模仿学习算法：\n\n- AdRIL [[SCB21]](#references)\n- DRIL [[BSH20]](#references)（dropout版本）\n- GAIL [[HE16]](#references)（当使用非策略型算法时，也称为DAC\u002FSAM [[KAD18, BK18]](#references)）\n- GMMIL [[KP18]](#references)\n- PWIL [[DHG20]](#references)（nofill版本）\n- RED [[WCA19]](#references)\n\n通用选项包括：\n\n- BC [[P91]](#references) （预）训练：`bc_pretraining.iterations: >= 0; 默认 0`\n- 仅状态模仿学习：`imitation.state-only: true\u002Ffalse; 默认 false`\n- 吸收态指示器 [[KAD18]](#references)：`imitation.absorbing: true\u002Ffalse; 默认 true`\n- 在智能体和专家数据混合上进行训练：`imitation.mix_expert_data: none\u002Fmixed_batch\u002Fprefill_memory'; 默认 none`\n- BC 辅助损失：`imitation.bc_aux_loss: true\u002Ffalse; 默认 false`（DRIL 使用 `true`）\n\nDRIL、GAIL 和 RED 包含其训练好的判别器的若干选项。\n\nAdRIL 的选项包括：\n\n- 平衡采样：`imitation.balanced: true\u002Ffalse`（交替采样专家和智能体数据批次，而非混合批次）\n- 判别器更新频率：`imitation.update_freq: >= 0`（设置为 0 以实现 SQIL [[RDL19]](#references)）\n\nDRIL 的选项包括：\n\n- 分位数截断：`imitation.quantile_cutoff: >= 0, \u003C= 1`\n\nGAIL 的选项包括：\n\n- 奖励塑造（AIRL）[[FLL17]](#references)：`imitation.model.reward_shaping: true\u002Ffalse`\n- 减去 log π(a|s)（AIRL）[[FLL17]](#references)：`imitation.model.subtract_log_policy: true\u002Ffalse`\n- 奖励函数（GAIL\u002FAIRL\u002FFAIRL）[[HE16, FLL17, GZG19]](#references)：`imitation.model.reward_function: AIRL\u002FFAIRL\u002FGAIL`\n- 梯度惩罚 [[KAD18, BK18]](#references)：`imitation.grad_penalty: >= 0`\n- 谱归一化 [[BSK20]](#references)：`imitation.spectral_norm: true\u002Ffalse`\n- 熵奖励 [[ORH21]](#references)：`imitation.entropy_bonus: >= 0`\n- 损失函数（BCE\u002FMixup\u002Fnn-PUGAIL）[[HE16, CNN20, XD19]](#references)：`imitation.loss_function: BCE\u002FMixup\u002FPUGAIL`\n- 损失函数的其他超参数：`imitation.mixup_alpha: >= 0`、`imitation.pos_class_prior: >= 0, \u003C= 1`、`imitation.nonnegative_margin: >= 0`\n\nPWIL 的选项包括：\n\n- 奖励缩放 α：`imitation.reward_scale: >= 0`\n- 奖励带宽缩放 β：`imitation.reward_bandwidth_scale: >= 0`\n\nRED 的选项包括：\n\n- 奖励带宽缩放 σ1：`imitation.reward_bandwidth_scale: >= 0`\n\n在 [Gym MuJoCo 环境](https:\u002F\u002Fwww.gymlibrary.dev\u002Fenvironments\u002Fmujoco\u002F) 上进行了基准测试，并使用了 [D4RL \"expert-v2\" 数据](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FD4RL\u002Fwiki\u002FTasks#gym)。\n\n## 需求\n\n可以通过以下命令安装所需依赖：\n```sh\npip install -r requirements.txt\n```\n值得注意的必要包包括 [PyTorch](https:\u002F\u002Fpytorch.org\u002F)、[OpenAI Gym](https:\u002F\u002Fgym.openai.com\u002F)、[D4RL](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FD4RL) 和 [Hydra](https:\u002F\u002Fhydra.cc\u002F)。[Ax](https:\u002F\u002Fax.dev\u002F) 和 [Hydra Ax Sweeper 插件](https:\u002F\u002Fhydra.cc\u002Fdocs\u002Fnext\u002Fplugins\u002Fax_sweeper\u002F) 是超参数优化所必需的。\n\n## 正常运行\n\n每种模仿学习算法（或带有真实环境奖励的 SAC）的训练都可以通过以下命令启动：\n```sh\npython train.py algorithm=\u003CALG> env=\u003CENV>\n```\n其中 `\u003CALG>` 是 `AdRIL\u002FBC\u002FDRIL\u002FGAIL\u002FGMMIL\u002FPWIL\u002FRED\u002FSAC` 中的一个，而 `\u003CENV>` 是 `ant\u002Fhalfcheetah\u002Fhopper\u002Fwalker2d` 中的一个。例如：\n```sh\npython train.py algorithm=GAIL env=hopper\n```\n\n结果将保存在 `outputs\u002F\u003CALGO>_\u003CENV>\u002Fm-d_H-M-S` 中，最后一个子文件夹表示当前日期时间。\n\n超参数可以在 `conf\u002Fconfig.yaml` 和 `conf\u002Falgorithm\u002F\u003CALG>.yaml` 中找到。若要使用针对特定算法和轨迹数量调优的超参数 [[AL21]](#references)，可添加选项 `optimised_hyperparameters=\u003CALG>_\u003CNUM_TRAJECTORIES>_trajectories`（请注意，还需指定 `algorithm=\u003CALG>` 以加载其他算法特定的超参数）。例如：\n```sh\npython train.py algorithm=AdRIL optimised_hyperparameters=AdRIL_5_trajectories env=halfcheetah\n```\n\n可以使用以下命令并行地在所有环境中运行该算法：\n```sh\npython train_all.py algorithm=\u003CALG> env=\u003CENV>\n```\n结果将保存在 `outputs\u002F\u003CALGO>_all\u002Fm-d_H-M-S` 中，包含每个环境的子目录。\n\n### 超参数扫描\n\n可以使用 `-m` 和一系列超参数值来进行超参数扫描。例如：\n```sh\npython train.py -m algorithm=PWIL env=walker2d reinforcement.discount=0.97,0.98,0.99\n```\n\n结果将保存在 `outputs\u002F\u003CALGO>_\u003CENV>_sweep\u002Fm-d_H-M-S` 中，每次运行都会有一个以作业编号命名的子文件夹。\n\n因此，若要使用优化后的超参数进行种子扫描，可以运行以下命令：\n```sh\npython train.py -m algorithm=RED optimised_hyperparameters=RED_25_trajectories env=halfcheetah seed=1,2,3,4,5,6,7,8,9,10\n```\n\n### 超参数优化\n\n可以使用以下命令进行贝叶斯超参数优化（跨所有环境）：\n```sh\npython train_all.py -m algorithm=\u003CALG>\n```\n\n此命令用于优化给定数量的专家轨迹的超参数，例如：\n```sh\npython train_all.py -m algorithm=GAIL imitation.trajectories=5\n```\n\n要查看优化过程的结果，可以运行以下命令：\n```sh\npython scripts\u002Fprint_plot_sweep_results.py --path \u003CPATH>\n```\n例如：\n```sh\npython scripts\u002Fprint_plot_sweep_results.py --path outputs\u002FBC_all_sweeper\u002F03-09_19-13-21\n```\n\n## 结果\n\n![v2 结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKaixhin_imitation-learning_readme_7a6ce4d45f5c.png)\n\n## 致谢\n\n- [@ikostrikov](https:\u002F\u002Fgithub.com\u002Fikostrikov) 提供了 [https:\u002F\u002Fgithub.com\u002Fikostrikov\u002Fpytorch-a2c-ppo-acktr-gail](https:\u002F\u002Fgithub.com\u002Fikostrikov\u002Fpytorch-a2c-ppo-acktr-gail)\n- [@RuohanW](https:\u002F\u002Fgithub.com\u002FRuohanW) 提供了 [https:\u002F\u002Fgithub.com\u002FRuohanW\u002FRED](https:\u002F\u002Fgithub.com\u002FRuohanW\u002FRED)\n- [@jonathantompson](https:\u002F\u002Fgithub.com\u002Fjonathantompson) 提供了 [https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fdac](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fdac)\n- [@gkswamy98](https:\u002F\u002Fgithub.com\u002Fgkswamy98) 提供了 [https:\u002F\u002Fgithub.com\u002Fgkswamy98\u002Fpillbox](https:\u002F\u002Fgithub.com\u002Fgkswamy98\u002Fpillbox)\n- [@ddsh](https:\u002F\u002Fgithub.com\u002Fddsh) 提供了 [https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fpwil](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fpwil)\n\n## 引用\n\n如果您觉得这项工作有用并希望引用它，请使用以下格式：\n\n```tex\n@inproceedings{arulkumaran2023pragmatic,\n  author = {Arulkumaran, Kai and Ogawa Lillrank, Dan},\n  title = {A Pragmatic Look at Deep Imitation Learning},\n  booktitle = {Asian Conference on Machine Learning},\n  year = {2023}\n}\n```\n\n库的 [v1.0](\u002F..\u002F..\u002Freleases\u002Ftag\u002F1.0) 版本包含 [基于策略的模仿学习算法](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867v1)。库的 [v2.0](\u002F..\u002F..\u002Freleases\u002Ftag\u002F2.0) 版本包含 [非策略型模仿学习算法](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867v2)。\n\n## 参考文献\n\n[AL23] [深度模仿学习的务实视角](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.01867)  \n[BK18] [基于生成对抗网络的样本高效模仿学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.02064)  \n[BSH20] [基于分歧正则化的模仿学习](https:\u002F\u002Fopenreview.net\u002Fforum?id=rkgbYyHtwB)  \n[BSK20] [Lipschitz连续性是驯服离策略生成对抗模仿学习的关键](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.16785)  \n[CNN20] [用于可扩展机器人强化学习的批处理探索方法](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.11917)  \n[DHG20] [原始Wasserstein距离下的模仿学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.04678)  \n[FLL17] [通过对抗逆向强化学习学习鲁棒奖励函数](https:\u002F\u002Farxiv.org\u002Fabs\u002F1710.11248)  \n[GZG19] [从散度最小化视角看模仿学习方法](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.02256)  \n[HE16] [生成对抗模仿学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1606.03476)  \n[HZA18] [软演员-评论家：带有随机演员的离策略最大熵深度强化学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1801.01290)  \n[HZH18] [软演员-评论家算法及其应用](https:\u002F\u002Farxiv.org\u002Fabs\u002F1812.05905)  \n[KAD18] [判别器-演员-评论家：解决对抗式模仿学习中的样本低效与奖励偏差问题](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.02925)  \n[KP18] [基于核均值嵌入的模仿学习](https:\u002F\u002Fojs.aaai.org\u002Findex.php\u002FAAAI\u002Farticle\u002Fview\u002F11720)  \n[ORH21] [对抗式模仿学习中什么才是关键？](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.00672)  \n[P91] [用于自主导航的人工神经网络高效训练](https:\u002F\u002Fwww.mitpressjournals.org\u002Fdoi\u002Fabs\u002F10.1162\u002Fneco.1991.3.1.88?journalCode=neco)  \n[RDL19] [SQIL：基于稀疏奖励的强化学习式模仿学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.11108)  \n[SCB21] [矩与匹配：一种用于弥合模仿差距的博弈论框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2103.03236)  \n[WCA19] [随机专家蒸馏：基于专家策略支持估计的模仿学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.06750)  \n[XD19] [正例-未标记奖励学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.00459)","# imitation-learning 快速上手指南\n\n本指南帮助中国开发者快速部署并运行基于深度模仿学习（Deep Imitation Learning）的开源工具库。该库实现了多种主流模仿学习算法（如 GAIL, DRIL, AdRIL, PWIL, RED 等），基于 SAC 强化学习算法，并在 Gym MuJoCo 环境中进行了基准测试。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS。\n*   **Python 版本**: 建议 Python 3.8 或更高版本。\n*   **核心依赖**:\n    *   [PyTorch](https:\u002F\u002Fpytorch.org\u002F)：深度学习框架。\n    *   [OpenAI Gym](https:\u002F\u002Fgym.openai.com\u002F)：强化学习环境接口。\n    *   [D4RL](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FD4RL)：提供专家演示数据集（需安装 `d4rl` 包）。\n    *   [Hydra](https:\u002F\u002Fhydra.cc\u002F)：用于配置管理。\n*   **可选依赖** (仅用于超参数优化):\n    *   [Ax](https:\u002F\u002Fax.dev\u002F) 及 Hydra Ax Sweeper 插件。\n\n> **国内加速建议**：\n> 安装 PyTorch 时，建议使用清华或中科大镜像源以加快下载速度。例如：\n> `pip install torch torchvision torchaudio --index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n1.  克隆仓库并进入目录（假设已获取源码）：\n    ```bash\n    git clone \u003Crepository_url>\n    cd imitation-learning\n    ```\n\n2.  使用 pip 安装所有依赖项。为提升下载速度，推荐使用国内镜像源：\n    ```sh\n    pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n    *注意：如果自动安装失败，请手动安装核心包：*\n    ```sh\n    pip install torch gym d4rl hydra-core -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n## 基本使用\n\n本工具通过 `train.py` 脚本启动训练。支持多种算法（AdRIL, BC, DRIL, GAIL, GMMIL, PWIL, RED, SAC）和环境（ant, halfcheetah, hopper, walker2d）。\n\n### 1. 运行单个算法\n\n最基本的运行命令格式如下：\n\n```sh\npython train.py algorithm=\u003CALG> env=\u003CENV>\n```\n\n*   `\u003CALG>`: 替换为算法名称，例如 `GAIL`, `BC`, `DRIL`, `PWIL` 等。\n*   `\u003CENV>`: 替换为环境名称，例如 `hopper`, `halfcheetah` 等。\n\n**示例**：在 Hopper 环境中运行 GAIL 算法：\n```sh\npython train.py algorithm=GAIL env=hopper\n```\n\n训练结果将保存在 `outputs\u002F\u003CALGO>_\u003CENV>\u002F\u003C日期时间>` 目录下。\n\n### 2. 使用预调优的超参数\n\n为了获得更好的复现效果，可以使用针对特定轨迹数量优化过的超参数配置：\n\n```sh\npython train.py algorithm=AdRIL optimised_hyperparameters=AdRIL_5_trajectories env=halfcheetah\n```\n\n### 3. 并行运行所有环境\n\n若需在所有支持的环境中并行运行同一算法：\n\n```sh\npython train_all.py algorithm=\u003CALG>\n```\n\n**示例**：\n```sh\npython train_all.py algorithm=RED\n```\n\n### 4. 超参数搜索 (可选)\n\n使用 `-m` 标志进行简单的超参数网格搜索：\n\n```sh\npython train.py -m algorithm=PWIL env=walker2d reinforcement.discount=0.97,0.98,0.99\n```\n\n更多高级配置（如奖励函数类型、损失函数选择等）可参考 `conf\u002Fconfig.yaml` 及 `conf\u002Falgorithm\u002F\u003CALG>.yaml` 文件。","某自动驾驶初创团队正致力于让机器人学会在复杂城市环境中平稳驾驶，但缺乏足够的安全数据来手动编写每一条驾驶规则。\n\n### 没有 imitation-learning 时\n- **奖励函数设计困难**：工程师难以用数学公式量化“像人类老司机一样平稳”的驾驶行为，导致强化学习模型经常学到激进或怪异的策略。\n- **冷启动效率低下**：从零开始训练智能体需要数亿次试错，不仅消耗巨额算力，且在模拟中频繁发生碰撞，收敛速度极慢。\n- **行为不可控**：纯强化学习容易陷入局部最优，生成的轨迹虽然能到达终点，但充满抖动或违反交通常识，无法直接部署。\n- **专家数据浪费**：团队收集了大量人类驾驶员的高质量演示视频，却只能用于事后评估，无法直接转化为模型的策略参数。\n\n### 使用 imitation-learning 后\n- **直接复刻专家策略**：利用 GAIL 或 BC 算法，直接将人类驾驶数据作为监督信号，让模型快速习得平滑、拟人的驾驶风格，无需手工设计复杂奖励。\n- **大幅缩短训练周期**：通过预训练（BC Pretraining）和混合专家数据（Mix Expert Data），智能体在极少交互次数下即可达到可用水平，节省 90% 以上的训练时间。\n- **提升安全性与稳定性**：借助 DRIL 的不确定性估计或 PWIL 的距离加权机制，模型在面对未见场景时更保守，显著减少了危险的非理性操作。\n- **灵活适配不同场景**：通过配置 `state-only` 或调整判别器更新频率，可轻松在不同车型（如 Hopper、Walker2d 类比）和环境间迁移专家经验。\n\nimitation-learning 将昂贵的专家演示数据直接转化为可执行的智能策略，解决了传统强化学习“难定义奖励、难冷启动”的核心痛点。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKaixhin_imitation-learning_7a6ce4d4.png","Kaixhin","Kai Arulkumaran","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FKaixhin_68410579.png","Researcher, programmer, DJ, transhumanist.","@SakanaAI","Tokyo",null,"kaixhin","http:\u002F\u002Fkaixhin.com","https:\u002F\u002Fgithub.com\u002FKaixhin",[86],{"name":87,"color":88,"percentage":89},"Python","#3572A5",100,563,44,"2026-03-22T11:39:29","MIT","未说明","未说明 (基于 PyTorch 和 MuJoCo 环境，通常建议使用 NVIDIA GPU 进行加速，但 README 未明确指定型号或显存要求)",{"notes":97,"python":94,"dependencies":98},"该工具主要用于在 Gym MuJoCo 环境中进行模仿学习算法的研究。核心依赖包括 PyTorch、OpenAI Gym、D4RL 数据集和 Hydra 配置管理工具。若需进行贝叶斯超参数优化，还需安装 Ax 及其 Hydra 插件。README 中未提供具体的操作系统、Python 版本、GPU 型号或内存大小的硬性限制，具体环境配置需参考 requirements.txt 文件。",[99,100,101,102,103,104],"PyTorch","OpenAI Gym","D4RL","Hydra","Ax (用于超参数优化)","Hydra Ax Sweeper plugin",[13],[107,108,67],"deep-learning","deep-reinforcement-learning","2026-03-27T02:49:30.150509","2026-04-06T09:14:13.696374",[112,117,122],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},18628,"训练过程中是否使用了 GPU？","否，该仓库仅支持 CPU。由于环境（MuJoCo）和网络规模的原因，数据在 CPU 和 GPU 之间传输的开销显著大于在 GPU 上运行网络所带来的速度提升，因此未使用 GPU。","https:\u002F\u002Fgithub.com\u002FKaixhin\u002Fimitation-learning\u002Fissues\u002F14",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},18629,"如何生成专家轨迹（expert trajectories）？","该仓库目前不直接生成专家轨迹，而是使用 [D4RL Pybullet](https:\u002F\u002Fgithub.com\u002Ftakuseno\u002Fd4rl-pybullet) 提供的数据集，以确保结果更加标准化。数据集加载代码位于 environments.py 文件的第 86 行。","https:\u002F\u002Fgithub.com\u002FKaixhin\u002Fimitation-learning\u002Fissues\u002F11",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},18630,"在不知道奖励函数的情况下，如何判断逆向强化学习（如 AIRL 和 GAIL）的收敛性？","虽然这很困难，但可以参考论文《Hyperparameter Selection for Imitation Learning》（https:\u002F\u002Farxiv.org\u002Fabs\u002F2105.12034），其中提出了一些可用于判断收敛性的指标和方法。","https:\u002F\u002Fgithub.com\u002FKaixhin\u002Fimitation-learning\u002Fissues\u002F8",[]]