![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
强化学习
文章平均质量分 61
王莽v2
做一条有梦想的咸鱼
展开
-
MP/MRP和MDP对比
这里我们看一看,MDP 里面的状态转移跟 MRP 以及 MP 的一个差异。马尔可夫过程的转移是直接就决定。比如当前状态是 s,那么就直接通过这个转移概率决定了下一个状态是什么。但对于 MDP,它的中间多了一层这个动作 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种动作,那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的动作过后,你到未来的状态其实也是一个概率分布。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 .原创 2021-05-05 14:34:47 · 808 阅读 · 0 评论 -
Soft Actor-Critic 算法
https://zhuanlan.zhihu.com/p/70360272原创 2021-04-15 20:52:03 · 569 阅读 · 0 评论 -
综述—多智能体系统深度强化学习:挑战、解决方案和应用的回顾
多智能体系统深度强化学习:挑战、解决方案和应用的回顾摘要介绍背景:强化学习前提贝尔曼方程RL方法深度强化学习:单智能体深度Q网络DQN变体深度强化学习:多智能体挑战与解决方案MADRL应用结论和研究方向参考摘要强化学习算法已经存在了几十年,并被用于解决各种顺序决策问题。然而,这些算法在处理高维环境时却面临着巨大的挑战。深度学习的最新发展使RL方法能够为复杂和有能力的智能体驱动最佳策略,这可以在这些具有挑战性的环境中有效地执行。本文讨论了深度RL的一个重要方面,它涉及到需要多个智能体进行通信和合作以解决复原创 2021-03-24 18:28:54 · 9220 阅读 · 4 评论 -
[论文]鲁棒的对抗性强化学习
[论文]鲁棒的对抗性强化学习摘要1.简介1.1RARL综述2.背景2.1 MDPs中的标准强化学习2.2 两人零和折扣游戏3.鲁棒的对抗式RL3.1 对抗智能体的鲁棒控制3.2 提出方法:RARL结论摘要深度神经网络与快速模拟和改进的计算相结合,导致了最近在强化学习领域的成功。然而,目前大多数基于学习策略的方法不能推广,因为:(1)仿真和现实世界之间的差距太大,策略学习方法不能转移;(b)即使在现实世界中进行政策学习,数据稀缺也会导致从训练到测试场景的泛化失败(例如,由于不同的摩擦或物体质量)。受H∞控原创 2021-02-28 21:51:06 · 2111 阅读 · 0 评论 -
MATLAB强化学习实战(十四) 基于 DDPG 智能体的四足机器人运动控制
基于 DDPG 智能体的四足机器人运动控制四足机器人模型创建环境接口创建 DDPG 智能体指定训练选项训练智能体智能体仿真参考这个例子展示了如何训练四足机器人使用深度确定性策略梯度(DDPG)智能体行走。本例中的机器人使用 SimscapeTM MultibodyTM 进行建模。有关 DDPG 智能体的更多信息,请参见双延迟的深度确定性策略梯度智能体。在 MATLAB 中将必要的参数加载到基本工作空间中。initializeRobotParameters四足机器人模型这个例子的环境是一个四足机原创 2020-11-13 20:22:57 · 8168 阅读 · 15 评论 -
MATLAB强化学习实战(十三) 使用强化学习智能体训练Biped机器人行走
使用强化学习智能体训练Biped机器人行走两足机器人模型创建环境接口选择和创建训练智能体DDPG AgentTD3 Agent指定训练选项和训练智能体仿真训练过的智能体比较智能体性能References这个例子展示了如何使用深度确定性策略梯度(DDPG) agent和双延迟深度确定性策略梯度(TD3) agent训练双足机器人行走,并比较了这些训练过的agent的性能。本例中的机器人采用Simscape多体建模。有关这些智能体的更多信息,请参见深度确定性策略梯度智能体和双延迟深度确定性策略梯度智能体。原创 2020-11-13 16:22:02 · 5978 阅读 · 8 评论 -
MATLAB强化学习实战(十二) 创建自定义强化学习算法的智能体
创建自定义强化学习算法的智能体创建环境定义策略自定义智能体类智能体属性构造函数相关函数可选功能创建自定义智能体训练自定义智能体自定义智能体仿真本示例说明如何为您自己的自定义强化学习算法创建自定义智能体。 这样做使您可以利用Reinforcement Learning Toolbox™软件的以下内置功能。访问所有智能体函数,包括train和sim使用Episode Manager可视化训练进度在Simulink®环境中训练智能体在此示例中,您将自定义REINFORCE训练循环转换为自原创 2020-11-13 14:47:55 · 5413 阅读 · 3 评论 -
MATLAB强化学习实战(十一) 使用自定义训练循环训练强化学习策略
使用自定义训练循环训练强化学习策略环境策略训练设置自定义训练循环仿真自定义训练函数损失函数帮助函数此示例显示如何为强化学习策略定义自定义训练循环。 您可以使用此工作流程通过您自己的自定义训练算法来训练强化学习策略,而不是使用Reinforcement Learning Toolbox™软件中的内置智能体之一。使用此工作流程,您可以训练使用以下任何策略和值函数表示形式的策略。rlStochasticActorRepresentation —随机行动者表示rlDeterministicActor原创 2020-11-12 15:45:50 · 4987 阅读 · 6 评论 -
MATLAB强化学习实战(十) 多智能体的路径跟随控制
多智能体的路径跟随控制总览创建环境此示例显示了如何训练多个智能体以共同执行车辆的路径跟踪控制(PFC)。 PFC的目标是通过控制纵向加速度和制动,使车辆以设定的速度行驶,同时保持与领头车的安全距离,并通过控制前转向角保持车辆沿其车道中心线行驶 。 有关PFC的更多信息,请参见路径跟随控制系统(模型预测控制工具箱)。总览训练DDPG路径跟踪控制智能体中显示了训练强化学习智能体以执行PFC的示例。 在该示例中,训练了单个深度确定性策略梯度(DDPG)智能体,以控制车辆的纵向速度和横向转向。 在此示例中,您原创 2020-11-12 10:36:50 · 7742 阅读 · 30 评论 -
MATLAB强化学习实战(九) 多智能体的区域探索
多智能体的区域探索创建环境创建智能体训练智能体智能体仿真此示例演示了一个多智能体协作竞争任务,其中训练了三个近端策略优化(PPO)智能体来探索网格世界环境中的所有区域。多智能体训练仅在Simulink®环境中支持。 如本示例所示,如果使用MATLAB®System对象定义环境行为,则可以使用MATLAB System(Simulink)块将其合并到Simulink环境中。创建环境本示例中的环境是一个包含障碍物的12x12网格世界,未开发的单元格标记为白色,障碍物标记为黑色。 红色,绿色和蓝色圆圈代原创 2020-11-11 16:39:27 · 5626 阅读 · 11 评论 -
MATLAB强化学习实战(八) 训练多个智能体执行协作任务
训练多个智能体执行协作任务创建环境创建智能体训练智能体智能体仿真本示例说明如何在Simulink®环境上设置多智能体训练。 在该示例中,您训练了两个智能体以协同执行移动对象的任务。在该示例中,环境是包含以圆圈表示的元素的二维无摩擦表面。 目标物体C由半径为2 m的蓝色圆圈表示,机器人A(红色)和B(绿色)由半径分别为1 m的较小圆圈表示。 机器人试图通过碰撞力将物体C移动到半径8 m的圆环之外。 环境中的所有元素都具有质量并遵守牛顿运动定律。 此外,将元件与环境边界之间的接触力建模为弹簧和质量阻尼器系原创 2020-11-11 11:47:19 · 6519 阅读 · 20 评论 -
MATLAB强化学习实战(七) 在Simulink中训练DDPG控制倒立摆系统
在Simulink中训练DDPG控制倒立摆系统倒立摆的Simscape模型创建环境接口创建DDPG智能体训练智能体DDPG智能体仿真此示例显示了如何训练深度确定性策略梯度(DDPG)智能体去控制以Simscape™Multibody™建模的倒立摆系统。倒立摆的Simscape模型此示例的强化学习环境是一根杆,该杆连接到手推车上未操纵的关节上,该关节沿着无摩擦的轨道移动。 训练的目标是使杆立起,而只需花费最小的控制力就不会摔倒。打开模型mdl = 'rlCartPoleSimscapeModel'原创 2020-11-10 20:29:51 · 6926 阅读 · 8 评论 -
MATLAB强化学习实战(六) 使用Deep Network Designer创建智能体并使用图像观察进行训练
使用Deep Network Designer创建智能体并使用图像观察进行训练有图像的摆锤环境创建环境接口使用深度网络设计器构建critic网络创建图像观测路径创建全输入路径和输出路径从Deep Network Designer导出网络训练智能体智能体仿真本示例说明了如何创建深度Q学习网络(DQN)智能体,该智能体可以平衡在MATLAB®中建模的钟摆。 在此示例中,您将使用Deep Network Designer创建DQN智能体。 有关DQN智能体的更多信息,请参阅 Deep Q-Network Age原创 2020-11-09 17:14:14 · 6347 阅读 · 1 评论 -
MATLAB强化学习实战(五) 通过图像观测训练DDPG智能体控制平衡摆
通过图像观测训练DDPG智能体控制平衡摆简单摆锤模型创建环境接口创建DDPG智能体训练智能体DDPG智能体仿真本示例说明了如何训练深度确定性策略梯度(DDPG)智能体,通过MATLAB®建模的图像观察来控制平衡摆锤。有关DDPG智能体的详细信息,请参阅深度确定性策略梯度智能体。简单摆锤模型此示例的强化学习环境是一个简单的无摩擦摆,其最初悬挂在向下的位置。 训练的目标是使摆锤直立,而花费最少的控制力。对于这种环境:平衡摆向上位置为0弧度,向下悬挂位置为pi弧度。agent到环境的扭矩动作信号原创 2020-11-09 14:29:48 · 3081 阅读 · 4 评论 -
MATLAB强化学习实战(四) 训练DDPG智能体控制双积分器系统
训练DDPG智能体控制双积分器系统双积分器的MATLAB环境创建环境接口创建DDPG智能体训练智能体DDPG智能体仿真该示例说明了如何训练深度确定性策略梯度(DDPG)智能体来控制以MATLAB®为模型的二阶动态系统。有关DDPG智能体的详细信息,请参阅深度确定性策略梯度智能体。 有关显示如何在Simulink®中训练DDPG智能体的示例,请参阅训练DDPG智能体平衡摆。双积分器的MATLAB环境此示例的强化学习环境是具有增益的二阶双积分器系统。 训练目标是通过施加力输入来控制介质在二阶系统中的位置原创 2020-11-09 12:08:46 · 4344 阅读 · 5 评论 -
MATLAB强化学习实战(三) 使用并行计算训练DQN智能体进行车道保持辅助(LKA)
使用并行计算训练DQN智能体进行车道保持辅助[LKA]DQN并行训练概述Ego Car 的 Simulink 模型创建环境接口创建DQN智能体训练选项并行计算选项训练智能体DQN智能体仿真此示例显示了如何使用并行训练在Simulink®中训练深度Q学习网络(DQN)智能体以保持车道辅助(LKA)。 有关显示如何在不使用并行训练的情况下训练智能体的示例,请参阅 Train DQN Agent for Lane Keeping Assist。DQN并行训练概述在DQN智能体中,每个工作人员都从其智能体副本原创 2020-11-09 10:44:44 · 7226 阅读 · 8 评论 -
MATLAB强化学习实战(二) 使用并行计算训练倒立摆系统
使用并行计算训练倒立摆系统行动者的并行训练创建Cart-Pole MATLAB环境接口创建AC智能体并行训练选项训练智能体AC智能体仿真参考文献此示例显示了如何通过使用异步并行训练来训练actor-critic(AC)智能体以平衡在MATLAB®中建模的小车系统。 有关显示如何在不使用并行训练的情况下训练智能体的示例,请参阅训练AC智能体以平衡倒立摆系统。行动者的并行训练当您将并行计算与AC智能体一起使用时,每个工作人员都将从其智能体副本和环境中产生经验。 每隔N个步骤,工作人员就会根据经验计算梯度原创 2020-11-08 22:00:46 · 3761 阅读 · 0 评论 -
MATLAB强化学习实战(一) 强化学习智能体训练总览
强化学习智能体训练总览简介训练算法情节管理器保存候选智能体并行计算GPU加速验证训练后的策略环境验证简介创建环境和强化学习智能体后,您可以使用训练功能在环境中训练智能体。 要配置您的训练,请使用rlTrainingOptions函数。 例如,创建训练选项集opt,并在环境env中训练智能体。opt = rlTrainingOptions(... 'MaxEpisodes',1000,... 'MaxStepsPerEpisode',1000,... 'StopTrainingC原创 2020-11-11 11:51:52 · 13534 阅读 · 6 评论 -
MATLAB强化学习工具箱(十四)导入策略和值函数表示
导入策略和值函数表示导入策略和值函数表示导入行动者和评论者在图像观察中的应用导入策略和值函数表示要创建用于强化学习的函数逼近器,您可以使用Deep Learning Toolbox™网络导入功能导入预训练的深度神经网络或深度神经网络层架构。您可以导入:开放式神经网络交换(ONNX™)模型,需要用于ONNX模型格式的深度学习工具箱转换器支持包软件。 有关更多信息,请importONNXLayers。TensorFlow™-Keras网络,需要用于TensorFlow-Keras模型的深度学习工具箱导原创 2020-11-08 17:05:37 · 1900 阅读 · 0 评论 -
MATLAB强化学习工具箱(十三)创建策略和价值函数表示
创建策略和价值函数表示行动者和评论者表示强化学习策略是一种映射,用于根据对环境的观察来选择智能体采取的行动。 在训练期间,智能体会调整其策略表示的参数以最大化预期的累积长期奖励。强化学习智能体使用分别称为行动者和批评者表示的函数近似器来估计策略和价值函数。 行动者代表根据当前观察选择最佳行动的策略。 评论者代表价值函数,该函数估计当前保单的预期长期累积奖励。在创建智能体之前,必须使用深度神经网络,线性基础函数或查找表创建所需的参与者和评论者表示。 您使用的函数逼近器的类型取决于您的应用程序。有关代理原创 2020-11-08 14:26:08 · 4185 阅读 · 2 评论 -
MATLAB强化学习工具箱(十二)强化学习智能体创建总览
强化学习智能体创建总览强化学习介绍内置智能体强化学习介绍强化学习的目标是训练智能体在不确定的环境中完成任务。智能体从环境中接收观察和奖励,并向环境发送操作。奖励是衡量某个动作相对于完成任务目标的成功程度的指标。该智能体包含两个组件:策略和学习算法。该策略是一种映射,它根据对环境的观察来选择操作。通常,策略是带有可调参数的函数逼近器,例如深度神经网络。学习算法根据动作,观察和奖励不断更新策略参数。学习算法的目标是找到使任务期间收到的预期累积长期奖励最大化的最佳策略。智能体根据学习算法维原创 2020-11-06 22:55:28 · 5702 阅读 · 0 评论 -
MATLAB强化学习工具箱(十一)训练DDPG智能体控制飞行机器人
训练DDPG智能体控制飞行器飞行机器人模型创建集成模型动作与观察创建环境接口重置函数创建DDPG智能体训练智能体DDPG智能体仿真本示例说明如何训练深度确定性策略梯度(DDPG)智能体,并为飞行机器人生成轨迹。飞行机器人模型此示例的强化学习环境是飞行机器人,其初始条件围绕半径为15 m的圆环随机化。 机器人的方向也是随机的。 机器人具有安装在主体侧面的两个推进器,用于推动和操纵机器人。 训练的目标是将机器人从初始状态驱动到面向东方的原点。打开模型mdl = 'rlFlyingRobotEnv';原创 2020-11-05 21:50:55 · 10104 阅读 · 11 评论 -
MATLAB强化学习工具箱(十)创建simulink的集成环境模型
创建simulink的集成环境模型createIntegratedEnv语法描述实例Create Environment from a Simulink ModelCreate an Integrated Environment with Specified Port Names输入参数Name-Value Pair Arguments输出参数如果参考模型具有适当的操作输入端口,观察输出端口和标量奖励输出端口,则可以自动创建包含该参考模型和RL Agent块的Simulink模型。此函数返回模型的环境对象原创 2020-11-05 18:07:11 · 6055 阅读 · 4 评论 -
MATLAB强化学习工具箱(九)为强化学习环境创建连续或离散的[action observation]规范
为强化学习环境创建连续或离散的[action observation]规范连续的[action observation]规范语法描述性能对象函数示例 Simulink模型的强化学习环境连续的[action observation]规范rlNumericSpec对象指定用于强化学习环境的连续动作或观察数据规范。语法spec = rlNumericSpec(dimension)spec = rlNumericSpec(dimension,Name,Value)描述spec = rlNumer原创 2020-11-05 15:28:03 · 6609 阅读 · 0 评论 -
MATLAB强化学习工具箱(八)钟摆模型建模并使用DDPG训练
使用DDPG训练摆锤系统打开模型并创建环境接口创建DDPG智能体训练智能体DDPG仿真此示例显示了如何建立钟摆模型并使用DDPG训练。模型加载参考我上一篇使用DQN的博文。打开模型并创建环境接口打开模型mdl = 'rlSimplePendulumModel';open_system(mdl)为钟摆创建一个预定义的环境界面。env = rlPredefinedEnv('SimplePendulumModel-Continuous')界面具有离散的操作空间,智能体可以在其中将三个可能的原创 2020-11-04 21:55:23 · 7976 阅读 · 9 评论 -
MATLAB强化学习工具箱(七)钟摆模型建模并使用DQN训练
使用DQN训练摆锤系统钟摆模型创建环境接口创建DQN智能体训练智能体智能体仿真此示例显示了如何建立钟摆模型并使用深度Q学习网络(DQN)训练。钟摆模型这个例子的强化学习环境是一个简单的无摩擦的钟摆,最初挂在一个向下的位置。训练的目标是使用最小的控制努力使钟摆站直而不跌倒。打开模型mdl = 'rlSimplePendulumModel';open_system(mdl)对于这个模型:平衡摆向上位置为0弧度,向下悬挂位置为π\piπ弧度。从智能体到环境的扭矩作用信号为–2至2 N·m原创 2020-11-04 19:49:16 · 8304 阅读 · 10 评论 -
MATLAB强化学习工具箱(六)从模板创建自定义MATLAB环境
从模板创建自定义MATLAB环境创建模板类环境属性所需功能样本构造函数采样复位函数采样步函数可选函数环境可视化创建自定义环境您可以通过创建和修改模板环境类来定义自定义的强化学习环境。可以使用自定义模板环境来实现更复杂的环境动态。向环境添加自定义可视化。创建用c++、Java或Python等语言定义的第三方库的接口。创建模板类要定义您的自定义环境,首先要创建模板类文件,并指定类的名称。对于本例,将类命名为MyEnvironment。rlCreateEnvTemplate("MyEnviron原创 2020-11-03 20:18:34 · 7910 阅读 · 3 评论 -
MATLAB强化学习工具箱(五)使用自定义函数创建MATLAB环境
使用自定义函数创建MATLAB环境Cart-Pole MATLAB 环境观察和行动规范使用函数名创建环境使用功能句柄创建环境验证自定义函数该示例说明了如何通过在MATLAB®中提供自定义动态函数来创建一个环境。使用rlFunctionEnv功能,您可以从观察规范,动作规范,用户自定义创建MATLAB强化学习环境step和reset功能。然后,您可以在此环境中训练强化学习智能体。必要的step和reset功能已经在这个例子中所定义。使用自定义功能创建环境对于动态性不太复杂的环境,无特殊可视化要求的环境或原创 2020-11-03 18:08:25 · 8255 阅读 · 18 评论 -
MATLAB强化学习工具箱(三)-创建Simulink环境并训练智能体
创建Simulink环境并训练智能体水箱模型创建环境界面创建DDPG智能体训练智能体验证训练的智能体损失函数本示例说明如何在watertank Simulink®模型中转换PI控制器。使用强化学习深度确定性策略梯度(DDPG)智能体。水箱模型此示例的原始模型是水箱模型。目的是控制水箱中的水位。通过进行以下更改来修改原始模型:删除PID控制器。插入RL Agent块。连接观察向量 [∫e dt e h][\int e\, dt\, e \,h][∫edteh],在 hhh是水箱的高原创 2020-10-31 20:31:27 · 14184 阅读 · 38 评论 -
MATLAB强化学习工具箱(四)创建水箱强化学习模型
创建水箱强化学习模型问题描述行动与观测奖励信号终止信号创建环境对象重置函数本示例说明如何创建一个水箱强化学习Simulink®环境,该环境包含一个RL Agent块来代替用于水箱中水位的控制器。要模拟此环境,必须创建一个智能体并在RL智能体块中指定该智能体。问题描述查看我上一节博客的小伙伴,如果直接在matlab使用open_system('rlwatertank')则会报错No system or file called ‘rlwatertank’ found. ‘rlwatertank’原创 2020-10-31 20:30:14 · 11501 阅读 · 9 评论 -
MATLAB强化学习工具箱(二)-在MDP环境中训练Q learning
在MDP环境中训练Q learning创建MDP智能体环境创建Q learning智能体训练Q learning智能体验证Q learning结果此示例显示了如何训练Q学习智能体来解决通用的马尔可夫决策过程(MDP)环境。这里:每个圆圈代表一个状态。在每个状态都有一个决定涨跌的决定。智能体从状态1开始。智能体收到等于图表中每个过渡值的奖励。训练目标是收集最大的累积奖励。创建MDP智能体环境创建具有八个状态和两个动作的(“上”和“下”)的MDP模型MDP = cr原创 2020-10-31 11:12:33 · 5255 阅读 · 4 评论 -
MATLAB强化学习工具箱(一)-在网格环境中使用Q-learning and SARSA
在网格环境中使用Q-learning and SARSA案例分析创建网格世界环境创建Q learning智能体训练Q learning 智能体验证Q learning结果创建和培训SARSA智能体验证SARSA训练案例分析网格世界环境具有以下配置和规则:1.网格世界为5 x 5,并由边界界定,有四个可能的动作(北= 1,南= 2,东= 3,西= 4)。2.智能体从单元格[2,1](第二行,第一列)开始。3.如果智能体到达单元格[5,5]的最终状态(蓝色),则智能体会获得+10的奖励。4.环境包含原创 2020-10-30 23:36:48 · 8424 阅读 · 14 评论 -
[强化学习实战]出租车调度-Q learning & SARSA
出租车调度-Q learning & SARSA案例分析实验环境使用同策时序差分学习调度异策时序差分调度资格迹学习调度结论案例分析本节考虑Gym库里出租车调度问题(Taxi-v2):在一个5×5方格表示的地图上,有4个出租车停靠点。在每个回合开始时,有一个乘客会随机出现在4个出租车停靠点中的一个,并想在任意一个出租车停靠点下车。出租车会随机出现在25个位置的任意一个位置。出租车需要通过移动自己的位置,到达乘客所在的位置,并将乘客接上车,然后移动到乘客想下车的位置,再让乘客下车。出租车只能在地图范原创 2020-10-30 20:31:44 · 6742 阅读 · 0 评论 -
[强化学习实战]马尔可夫决策-悬崖寻路python实现
马尔可夫决策-悬崖寻路python实现案例分析要点概括环境使用求解Bellman期望方程求解Bellman最优方程总结案例分析本节考虑Gym库中的悬崖寻路问题(CliffWalking-v0)。悬崖寻路问题是这样一种回合制问题:在一个4×12的网格中,智能体最开始在左下角的网格,希望移动到右下角的网格。智能体每次可以在上、下、左、右这4个方向中移动一步,每移动一步会惩罚一个单位的奖励。但是,移动有以下限制。·智能体不能移出网格。如果智能体想执行某个动作移出网格,那么就让本步智能体不移动。但是这个操作原创 2020-10-30 13:55:57 · 5912 阅读 · 1 评论 -
[强化学习实战]actor-critic方法(一)—同策方法
actor-critic方法(一)— 同策方法同策actor-critic方法动作价值actor-critic算法优势actor-critic算法带资格迹的actor-critic算法本文介绍带自益的策略梯度算法。这类算法将策略梯度和自益结合了起来:一方面,用一个含参函数近似价值函数,然后利用这个价值函数的近似值来估计回报值;另一方面,利用估计得到的回报值估计策略梯度,进而更新策略参数。这两方面又常常被称为评论者(critic)和执行者(actor)。所以,带自益的策略梯度算法被称为执行者/评论者算法(a原创 2020-10-26 15:05:05 · 3316 阅读 · 0 评论 -
[强化学习实战]策略梯度方法(policy gradient)-python车杆平衡实战
策略梯度方法-python车杆平衡实战案例分析同策策略梯度算法求解最优策略异策策略梯度算法求解最优策略对比结论案例分析本文考虑Gym库里的车杆平衡问题(CartPole-v0)。如下图所示,一个小车(cart)可以在直线滑轨上移动。一个杆(pole)一头连着小车,另一头悬空,可以不完全直立。小车的初始位置和杆的初始角度都是在一定范围内随机选取的。智能体可以控制小车沿着滑轨左移1个单位或者右移1段固定的距离(移动的幅度是固定的,而且不可以不移动)。出现以下情形中的任一情形时,回合结束:·杆的倾斜角度超过原创 2020-10-26 11:38:21 · 4309 阅读 · 0 评论 -
[强化学习实战]DQN算法实战-小车上山(MountainCar-v0)
案例分析如图1所示,一个小车在一段范围内行驶。在任一时刻,在水平方向看,小车位置的范围是[-1.2,0.6],速度的范围是[-0.07,0.07]。在每个时刻,智能体可以对小车施加3种动作中的一种:向左施力、不施力、向右施力。智能体施力和小车的水平位置会共同决定小车下一时刻的速度。当某时刻小车的水平位置大于0.5时,控制目标成功达成,回合结束。控制的目标是让小车以尽可能少的步骤达到目标。一般认为,如果智能体在连续100个回合中的平均步数≤110,就认为问题解决了。在绝大多数情况下,智能体简单向右施力并原创 2020-10-24 11:46:18 · 13495 阅读 · 7 评论 -
[强化学习实战]深度Q学习-DQN算法原理
深度Q学习深度Q学习将深度学习和强化学习相结合,是第一个深度强化学习算法。深度Q学习的核心就是用一个人工神经网络q(s,a;w),s∈S,a∈Aq(s,a;w),s∈\mathcal{S} ,a∈\mathcal{A}q(s,a;w),s∈S,a∈A 来代替动作价值函数。由于神经网络具有强大的表达能力,能够自动寻找特征,所以采用神经网络有潜力比传统人工特征强大得多。最近基于深度Q网络的深度强化学习算法有了重大的进展,在目前学术界有非常大的影响力。·经验回放(experience replay):将经验(原创 2020-10-24 09:30:31 · 5099 阅读 · 0 评论 -
[强化学习实战]函数近似方法-线性近似与函数近似的收敛性
线性近似最常使用的函数近似就是线性近似和人工神经网络。本节介绍线性近似。线性近似是用许多特征向量的线性组合来近似价值函数。特征向量则依赖于输入(即状态或状态动作对)。以动作价值近似为例,我们可以为每个状态动作对定义多个不同的特征x(s,a)=(xj(s,a):j∈J)x(s,a)=(x_j(s,a):j∈\mathcal{J} )x(s,a)=(xj(s,a):j∈J),进而定义近似函数为这些特征的线性组合,即对于状态函数也有类似的近似方法:精确查找表与线性近似的关系对于动作价值而言,可以认为原创 2020-10-23 21:59:42 · 5109 阅读 · 1 评论 -
[强化学习实战]函数近似方法与原理
函数近似方法有模型数值迭代算法、回合更新算法和时序差分更新算法,在每次更新价值函数时都只更新某个状态(或状态动作对)下的价值估计。但是,在有些任务中,状态和动作的数目非常大,甚至可能是无穷大,这时,不可能对所有的状态(或状态动作对)逐一进行更新。函数近似方法用参数化的模型来近似整个状态价值函数(或动作价值函数),并在每次学习时更新整个函数。这样,那些没有被访问过的状态(或状态动作对)的价值估计也能得到更新。本章将介绍函数近似方法的一般理论,包括策略评估和最优策略求解的一般理论。再介绍两种最常见的近似函数:原创 2020-10-23 19:44:08 · 4809 阅读 · 1 评论