来源

腾讯云 开发者社区 NAT 网关为您提供可靠的 IP 地址转换服务 文档 建议反馈 控制台 登录/注册 首页 学习 活动 专区 工具 TVP 最新优惠活动 文章/答案/技术大牛 搜索 发布 社区首页 > 专栏 > 从算法到训练,综述强化学习实现技巧与调试经验 从算法到训练,综述强化学习实现技巧与调试经验 发布于 2018-05-08 11:42:44 1.3K0 举报 文章被收录于专栏: 机器之心 选自GitHub 作者:WilliamFalcon 机器之心编译 参与:乾树、黄小天 本文整理自 John Schulman 题为「深度强化学习研究的具体内容」的演讲,主要内容是作者在加州大学伯克利分校参加夏季深度强化学习训练营时写下的技巧。 GitHub地址:https://github.com/williamFalcon/DeepRLHacks 调试新算法的技巧 1. 通过低维状态空间环境的使用简化问题。 John 建议使用钟摆问题,因为它具有 2 维状态空间(摆角与速度)。 便于得到值函数的形式和算法应处的状态,以及它们随时间如何演化。 直观地了解为什么某些参数不起作用(也可以说,价值函数是否足够平滑等) 2. 为了测试你的算法是否合理,你要构造一个适用于该算法的问题。 例如:对于分层强化学习,你要构建一个它应该会学习的明显的分层结构的问题。 该问题可以简单测试出算法是否合理。 警告:不要使算法过度拟合你这个玩具问题(你要知道玩具问题并不具有实际意义)。 3. 熟悉你知道的某些环境。 随着时间的推移,你将会知道训练应该花费多长时间。 知晓奖励信号的演化过程等。 允许你设置一个基准,以了解你过去试验的效果。 John 使用弹跳机器人,通过这个机器人他知道应该采取多快的学习速度,并且可以很容易地发现奇怪的行为。 调试新任务的技巧 1. 简化任务 开始简化直到曙光降临。 方法 1 :简化特征空间: ◦ 例如,如果你正在使用图像(巨大的维度空间)学习,那么可能先要手动处理图像特征。示例:如果你觉得你的函数正在尝试近似得到某个参数的位置,请使用 x,y 坐标位置作为步骤 1 的特征。 ◦ 一旦前一步开始工作,将使问题更加复杂,直到你解决所有的问题。 方法 2:简化奖励函数。 ◦ 这样你就可以快速地得到反馈,从而知道算法是否正确。 ◦ 例如:当机器人击中目标时有奖励(+1)。这通常很难学习,因为在开始和奖励函数之间的不确定因素太多了。将问题重新定位为目标的距离,这将增加学习,并带来更快的迭代速度。 在强化学习中构建问题的技巧 也许现在还不清楚这些特征是什么,奖励是什么,甚至它是否可行。 1. 第一步:可视化处理这个问题的随机策略。 看看它的效果。 如果随机策略奏效过,那么很有可能强化学习会得到预期的效果。 ◦ 策略梯度会发现这种行为,并使其更有可能。 如果随机策略从未奏效,那么强化学习基本也不用考虑了。 2. 确保评论有用: 通过给个体同样的评论来测试你能否控制这个系统。 ◦ 示例:自己查看预处理的图像,以确保没有删除必要的细节或某种程度上阻碍了算法。 3. 确保合理地缩放特征。 经验法则: ◦ 评论:取特征均值为 0,标准差为 1。 ◦ 奖励: 如果你能控制它,就把它放缩到一个合理的值。 ◦ 对当前所有数据进行处理。 观测所有的评论和奖励,确保没有过度的异常值。 4. 每当你碰到一个新问题,都要找好出发点。 目前还不清楚哪种算法可行,因此有一组出发点(从其他方法) ◦ 交叉熵法 ◦ 策略梯度法 ◦ 某种 Q-learning 方法 (点击 OpenAI Baselines 或 RLLab 开始学习) 重现论文代码 依托论文来重现其中的实验结果有时(很多时候)很难。下面有一些技巧可能帮到你: 1. 使用多于你当前所需的样本。 2. 采用正确的策略,但这并非绝对。 循序渐进,一点一点的改进算法。 然后微调超参数使其具有泛化能力。 使用更大的批量可以使算法作用于所有数据。 ◦ 如果批量太小,噪声会掩盖信号。 ◦ 例如:TRPO,John 用的批量太小,只好设置时间步为 100k。 ◦ DQN 的最佳超参数为:10k 时间步,1mm 帧置于 replay buffer。 训练指导手册 全面检查你的训练是否奏效。 1. 查看每个超参数的灵敏度 如果算法过于敏感,那么就是算法不够鲁棒,我们不应该满足于此。 有时一个莫名的变动会使算法奏效,但这并不具有泛化能力。 2. 监测优化过程中的指标是有益的。 变化值 观察价值函数是否精确。 ◦ 预测是否有效? ◦ 预测的返回值正常吗? ◦ 更新范围有多大? 来自深度网络的标准诊断 3. 有一个连续的基准测试系统。 需要惩罚。 比较你尝试过的所有问题的性能。 ◦ 有时,它对于一个问题有效,但对别的问题就错乱了。 ◦ 容易过拟合某一个问题。 有一套你偶尔运行的基准测试系统。 4. 误以为你的算法有效,但实际上看到的是随机噪音。 例子:7 个任务的 3 个算法图,看起来像 1 个算法,可能在适用于所有问题,但事实证明却是随机种子不同的相同算法罢了。 5. 尝试不同的随机种子!! 多次运行并取平均值。 在多个种子上运行多个任务。 ◦ 否则,算法可能会过拟合。 6. 算法大可不必修改。 大多数技巧实际上是以某种方式规范化特征或改进你的优化过程。 很多技巧也有同样的效果…所以你可以删除其中的一些,简化你的算法(非常关键)。 7. 简化你的算法 泛化能力更佳 8. 实验过程自动化 不要花一整天的时间看你的代码输出结果。 在云服务上进行实验并分析结果。 使用框架跟踪实验和结果: ◦ 大多使用 iPython notebooks。 ◦ 似乎不需要将结果存进数据库。 通用的训练策略 1. 白化(Whiten)和标准化数据(一开始就对所有数据进行处理)。 评论: ◦ 通过计算运行平均值和标准差来计算。然后对所有数据进行 z 变换。处理所有数据(不仅仅是最近的数据)。 ◦ 评论所有看到的数据(不只是最近的数据) ◦ 至少它会随着时间的推移而缩小,它随时间变化的很快。 ◦ 如果你不断改变目标,可能会误导优化器。 ◦ 缩放(用新数据)意味着你的优化器可能不认识这些数据,并且性能将大打折扣。 奖励: ◦ 缩放但不转移数据。 ◦ 影响代理发展的意愿。 ◦ 会改变问题(换句话说,你想要代理生存多久)。 规范目标: ◦ 与奖励相同。 PCA 白化? ◦ 有用 ◦ 首先看看它是否真的有助于神经网络。 ◦ 过度的缩放(-1000,1000)或(-0.001,0.001)肯定会使学习缓慢。 2. 表示折扣因子的参数。 确定你的信用分配。 例如:如果因子是 0.99,那么你就会忘记 100 步之前发生了什么... 这意味着你目光短浅。 ◦ 最好去关注它如何应用于实时数据。 ◦ 为了更好的感受,在强化学习中我们通常将时间离散化。 ◦ 这 100 步是实际时间的 3 秒吗? ◦ 那段时间里会发生什么? 如果 TD 方法用于估计值函数 fx 的策略梯度,则 gamma 可以接近 1(如 0.999) ◦ 算法变得非常稳定。 3. 这个问题可以在离散化的层次上真正解决。 例如:在游戏中,如果你正在做跳帧。 ◦ 作为一个人,你是否能控制它? ◦ 看看随机探索的样子 ◦ 离散化决定你的布朗运动走多远。 ◦ 如果连续做许多动作,那么算法就倾向于进一步探索。 ◦ 用一种有效方式来将你的时间离散化。 4. 密切关注每段训练返回值。 不只是看看最大值和最小值。 ◦ 最好的回馈是你的策略可以得到很好的磨合。 ◦ 你的策略总是按预期来的吗?? 看 episode 长度(有时比它的奖励更有用)。 ◦ 如果在游戏中你每次都输,所以你可能永远赢不了,但是…episode 长度可以告诉你,如果你输的速度较慢。 ◦ 你可能在开始时看到 episode 长度的改进,但不一定是奖励。 策略梯度方法调整 1. 密切关注熵 动作空间的熵 ◦ 更关注状态空间中的熵,但没有很好的计算方法。 如果梯度下降得太快,那么策略就会变得确定而不再探索。 如果梯度不下降,那么策略就不正确,因为它实际上是随机的。 可以修复: ◦ KL 惩罚 ◦ 防止梯度下降过快。 ◦ 为熵加权重。 如何测量熵。 ◦ 对于大多数策略,可以解析地计算熵。 ◦ 如果熵连续,通常是高斯的,所以可以计算微分熵。 2. KL 散度 从 KL 散度看更新的大小。 例子:如果 KL 是 0.1,更新过小。如果是 10 更新又过大。 3. 以方差为基准。 看看价值函数是否真的是一个好的预测器或奖励。 ◦ 如果方差为负可能是过拟合或噪声过大。 ◦ 可能需要调整超参数。 4. 初始化策略 非常重要(比在监督学习还重要)。 最终层输出 0 或极小值以最大化熵 ◦ 在开始时最大限度地随机探索 Q-学习策略 1. 谨慎使用 replay buffer 的内存。 你可能需要一个巨大的缓冲区,因此需要相应地修改代码。 2. 指定一份学习率表。 3. 如果收敛缓慢或有一个缓慢的启动期 耐心等待,DQN 收敛速度极慢。 本文为机器之心编译,转载请联系本公众号获得授权。 本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。 原始发表:2017-09-10,如有侵权请联系 [email protected] 删除 其他 评论 登录后参与评论 推荐阅读 编辑精选文章 换一批 腾讯文档表格卡顿指标探索之路 560 从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解 597 微服务架构:由浅入深带你了解底层注册中心 548 花了1个月学大数据,我想说... 681 商家下载中心设计演进之路|得物技术 326 重构这件“小”事儿 | 得物技术 649 强化学习入门 编程算法强化学习学习方法linux 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 用户2794661 2022/05/30 1.1K0 多智能体强化学习算法【二】【MADDPG、QMIX、MAPPO】 编程算法强化学习 本章介绍OpenAI 2017发表在NIPS 上的一篇文章,《Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments》。主要是将AC算法进行了一系列改进,使其能够适用于传统RL算法无法处理的复杂多智能体场景。 汀丶人工智能 2022/12/21 2.1K0 多智能体强化学习算法【二】【MADDPG、QMIX、MAPPO】 TensorFlow 强化学习:1~5 tensorflow神经网络强化学习函数网络 人工神经网络是一种计算系统,为我们提供了解决诸如图像识别到语音翻译等具有挑战性的机器学习任务的重要工具。 最近的突破,例如 Google DeepMind 的 AlphaGo 击败了最好的围棋玩家,或者卡内基梅隆大学的 Libratus 击败了世界上最好的职业扑克玩家,都证明了算法的进步。 这些算法像人类一样学习狭窄的智能,并达到超人水平的表现。 用通俗易懂的话说,人工神经网络是我们可以在计算机上编程的人脑的松散表示。 确切地说,这是受我们对人脑功能知识的启发而产生的一种方法。 神经网络的一个关键概念是创建输入数据的表示空间,然后在该空间中解决问题。 也就是说,从数据的当前状态开始扭曲数据,以便可以以不同的状态表示数据,从而可以解决有关的问题陈述(例如分类或回归)。 深度学习意味着多个隐藏的表示,即具有许多层的神经网络,可以创建更有效的数据表示。 每一层都会细化从上一层收到的信息。 ApacheCN_飞龙 2023/04/27 6570 深度强化学习智能交通 (I) :深度强化学习概述 编程算法强化学习机器学习深度学习监督学习 随着城市化进程的加快和自动技术的最新发展,交通研究逐渐向智能化方向发展,称为智能交通系统(ITS)。人工智能(AI)试图用最少的人工干预来控制系统。智能交通系统与人工智能的结合为21世纪的交通研究提供了有效的解决方案。ITS 的主要目标是为参与者提供安全、有效和可靠的交通系统。为此,优化交通信号控制(TSC)、自动车辆控制、交通流控制等是研究的重点。 数据科学人工智能 2022/03/31 1.7K0 深度强化学习智能交通 (I) :深度强化学习概述 深度强化学习专栏(三) 编程算法强化学习 【磐创AI导读】:本篇文章是深度强化学习专栏的第三篇,讲了第四节无模型的强化学习方法,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。 磐创AI 2019/09/17 7370 深度强化学习专栏(三) TensorFlow 强化学习:11~15 tensorflow强化学习机器人模型算法 到目前为止,我们已经看到了强化学习在 AlphaGo,自动驾驶,项目组合管理等方面的进步。 研究表明,强化学习可以提供认知特征,例如动物行为。 ApacheCN_飞龙 2023/04/27 3620 【AlphaGo Zero 核心技术-深度强化学习教程笔记07】策略梯度 深度学习强化学习人工智能 【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。Alpha Zero的背后核心技术是深度强化学习,为此,专知有幸邀请到叶强博士根据DeepMind AlphaGo的研究人员David Silver《深度强化学习》视频公开课进行创作的中文学习笔记,在专知发布推荐给大家!(关注专知公众号,获取强化学习pdf资料,详情 WZEARW 2018/04/09 9880 【AlphaGo Zero 核心技术-深度强化学习教程笔记07】策略梯度 文末开奖 | 深度强化学习专栏(七):深度强化学习算法 编程算法强化学习神经网络深度学习https 【磐创AI导读】:本篇文章是深度强化学习专栏的第三篇,讲了第四节无模型的强化学习方法,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。想要获取更多的机器学习、深度学习资源,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。 磐创AI 2019/11/15 9170 文末开奖 | 深度强化学习专栏(七):深度强化学习算法 CS229 课程笔记之十五:强化学习与控制 编程算法强化学习 本章将开始介绍「强化学习」与适应性控制。在监督学习中,对于训练集我们均有明确的标签,算法只需要模仿训练集中的标签来给出预测即可。但对于某些情况,例如序列性的决策过程和控制问题,我们无法构建含有标签的训练集。即无法提供一个明确的监督学习算法来进行模仿。 口仆 2020/08/14 5630 强化学习的两大话题之一,仍有极大探索空间 编程算法强化学习linux 探索 VS 利用,这是强化学习中至关重要的话题。我们希望强化学习中的智能体尽快找到最佳策略。然而,在没有充分探索的情况下就盲目地选择某个策略会带来一定的问题,因为这会导致模型陷入局部最优甚至完全不收敛。目前的强化学习算法朝着回报值最大化的方向优化,而探索仍然更像是一个开放性话题。 AI科技评论 2020/08/28 1.5K0 强化学习的两大话题之一,仍有极大探索空间 【AlphaGo Zero 核心技术-深度强化学习教程笔记06】价值函数的近似表示 深度学习强化学习人工智能 点击上方“专知”关注获取更多AI知识! 【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。Alpha Zero的背后核心技术是深度强化学习,为此,专知有幸邀请到叶强博士根据DeepMind AlphaGo的研究人员David Silver《深度强化学习》视频公开课进行创作的中文学习笔记,在专知发布推荐给大家!(关注 WZEARW 2018/04/09 8330 【AlphaGo Zero 核心技术-深度强化学习教程笔记06】价值函数的近似表示 强化学习(八)价值函数的近似表示与Deep Q-Learning 其他     在强化学习系列的前七篇里,我们主要讨论的都是规模比较小的强化学习问题求解算法。今天开始我们步入深度强化学习。这一篇关注于价值函数的近似表示和Deep Q-Learning算法。 刘建平Pinard 2018/10/11 1.3K0 强化学习(八)价值函数的近似表示与Deep Q-Learning 强化学习读后感 编程算法https网络安全githubgit 此学习笔记基础来源于zhoubolei RL(https://github.com/zhoubolei/introRL),以基本概念,基本定理,问题建模,代码实现,新论文的阅读为逻辑展开写的。学习强化学习的过程,会相对漫长。比如:一个假想的学习过程,可能会包含sutton的 complete draft;一些RL基础课程,David Silver,伯克利RL或周博磊等;经典算法的复现;核心研究部门的学术文章(openAI,DeepMind,...);靠谱博士写的博文;会遇见公式符号,上下标,算法实现细节,问题优化,具体问题建模等问题。这里,只是个开始,代码框架可参考PARL。不太懂wx格式,建议wx对latex支持更友好,不要搞什么其他幺蛾子语法。 BBuf 2021/10/08 7620 论文结果难复现?本文教你完美实现深度强化学习算法DQN 其他 选自arXiv 作者:Melrose Roderick等 机器之心编译 论文的复现一直是很多研究者和开发者关注的重点,近日有研究者详细论述了他们在复现深度 Q 网络所踩过的坑与训练技巧。本论文不仅重点标注了实现过程中的终止条件和优化算法等关键点,同时还讨论了实现的性能改进方案。机器之心简要介绍了该论文,更详细的实现细节请查看原论文。 过去几年来,深度强化学习逐渐流行,因为它在有超大状态空间(state-spaces)的领域上要比先前的方法有更好的表现。DQN 几乎在所有的游戏上超越了之前的强化学习方法,并在 机器之心 2018/05/10 1.5K0 Python 强化学习实用指南:11~14 强化学习函数算法网络优化 在最后三章中,我们学习了各种深度强化学习算法,例如深度 Q 网络(DQN),深度循环 Q 网络(DRQN)和异步优势演员评论家(A3C)网络。 在所有算法中,我们的目标是找到正确的策略,以便我们能够最大化回报。 我们使用 Q 函数来找到最佳策略,因为 Q 函数告诉我们哪个动作是在某种状态下执行的最佳动作。 您认为我们不使用 Q 函数就能直接找到最优策略吗? 是。 我们可以。 在策略梯度方法中,我们无需使用 Q 函数就可以找到最优策略。 ApacheCN_飞龙 2023/04/23 6300 深度强化学习中的对抗攻击和防御 编程算法网络安全安全强化学习 本篇文章分享论文『Attacking and Defending Deep Reinforcement Learning Policies』,深度强化学习中的对抗攻击和防御。 CV君 2022/09/01 8730 深度强化学习中的对抗攻击和防御 深度强化学习资料(视频+PPT+PDF下载) 强化学习机器学习编程算法 机器之心 整理&出品 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有视频的链接:https://www.youtube.com/playlist?list= 昱良 2018/06/25 2.8K0 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料) 强化学习机器学习编程算法 来源:机器之心 本文共4000字,建议阅读10分钟。 本文主要介绍了课程中的强化学习主题,涉及深度强化学习的基本理论与前沿挑战。 CS294 深度强化学习 2017 年秋季课程的所有资源已经放出。该课程为各位读者提供了强化学习的进阶资源,且广泛涉及深度强化学习的基本理论与前沿挑战。本文介绍了该课程主要讨论的强化学习主题,读者可根据兴趣爱好与背景知识选择不同部分的课程。请注意,UC Berkeley 的 CS 294 并未被归类为在线开放课程,所有视频的使用权仅限个人学习。 课程主页:http://rl 数据派THU 2018/06/13 9950 澳门大学讲座教授陈俊龙:从深度强化学习到宽度强化学习 - 结构,算法,机遇及挑战 强化学习编程算法人工智能自动化 AI 科技评论按:2018 年 5 月 31 日-6 月 1 日,中国自动化学会在中国科学院自动化研究所成功举办第 5 期智能自动化学科前沿讲习班,主题为「深度与宽度强化学习」。 AI科技评论 2018/07/27 7880 澳门大学讲座教授陈俊龙:从深度强化学习到宽度强化学习 - 结构,算法,机遇及挑战 [量化]夏普比率3.27,通过DQN算法进行上证指数择时强化学习策略 监督学习强化学习编程算法腾讯云测试服务神经网络 本文完整展示了一个将强化学习用于股票投资的案例,呈现了大量算法细节和实验分析,非常值得收藏深研。 核桃量化 2023/01/18 1.6K0 机器之心 0 LV.0 全球人工智能信息服务 关注 文章 9.1K 获赞 30.1K 专栏 1 作者相关精选 换一批 从框架到经典方法,全面了解分布式深度强化学习DDRL 性能提升、成本降低,这是分布式强化学习算法最新研究进展 这个团队做了OpenAI没Open的技术,开源OpenRLHF让对齐大模型超简单 目录 调试新算法的技巧 调试新任务的技巧 在强化学习中构建问题的技巧 重现论文代码 训练指导手册 通用的训练策略 策略梯度方法调整 Q-学习策略 广告 相关产品与服务 数据库 云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利! 产品介绍 年终盛典 拼团嗨购 领券 社区 技术文章 技术问答 技术沙龙 技术视频 学习中心 技术百科 技术专区 活动 自媒体同步曝光计划 邀请作者入驻 自荐上首页 技术竞赛 资源 技术周刊 社区标签 开发者手册 开发者实验室 关于 社区规范 免责声明 联系我们 友情链接 腾讯云开发者 扫码关注腾讯云开发者 扫码关注腾讯云开发者 领取腾讯云代金券 热门产品 域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播 热门推荐 人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别 更多推荐 数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移 Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569 腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287 6 0 0 推荐

Podcast Editor
Podcast.json
预览
音频