强化学习
文章平均质量分 79
难受啊!马飞...
机器学习已经变成实验科学了
展开
-
深度强化学习算法的样本效率(sample efficiency)到底是什么?
定义6(样本效率)。在深度强化学习任务中, 样本效率即利用有限的交互次数,通过合理的策略与环境交互进行采样,并利用采样数据进行训练,以获取策略优化的指标。评估算法的样本效率,既可以在使用相同交互次数的前提下衡量动作策略的训练效果,也可以在到达相同训练效果的前提下衡量达到此效果所需的交互采样次数。由于在强化学习算法中,智能体以当前策略与环境交互进行采样,并利用已得到的样本数据对策略进行优化,探索过程与训练过程相互促进,所以可以通过增强对环境的探索能力和提高对数据的利用能力两个方向提高样本效率。转载 2023-03-14 17:45:13 · 5236 阅读 · 1 评论 -
对Dueling DQN理论的深度分析。
优势函数A(s,a)用于度量在状态s下执行动作a的合理性,它直接给出动作a的性能与所有可能的动作的性能的均值的差值。如果该差值(优势)大于0,说明动作a优于平均,是个合理的选择;如果差值(优势)小于0,说明动作 a 次于平均,不是好的选择。度量状态s下的动作a的性能最合适的形式就是动作值函数(即Q函数)Qπ(s,a);而度量状态s所有可能动作的性能的均值的最合适形式是状态值函数(即V函数) Vπ(s,a) 。原创 2022-12-13 19:25:33 · 3873 阅读 · 1 评论 -
深度强化学习算法调参
主要是一些深度强化学习算法的调参技巧原创 2022-12-07 21:40:51 · 4538 阅读 · 0 评论 -
内在好奇心模型(Intrinsic Curiosity Module,ICM)-论文Curiosity-driven Exploration by Self-supervised Prediction
关于好奇心奖励函数(ICM)的一篇博客,主要是自己对这篇论文的理解原创 2022-10-18 22:44:09 · 1478 阅读 · 0 评论 -
多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述
大概摘要了多任务强化学习和多智能体强化学习的一些方法原创 2022-10-13 16:01:27 · 2511 阅读 · 0 评论 -
多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)
关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系原创 2022-09-16 11:20:02 · 3512 阅读 · 1 评论 -
初探强化学习(16)DQN算法的调参技巧
关于是否适用done参数作为更新Q值的讨论。这个方法我感觉对于多数雅达利游戏来讲时没用的,因为大多数情况下done都是false,处理成数字就是0.具体方法参考这个链接,作者在倒立摆上实验的,说实话,这个游戏真的不具有代表性。管局具体的调参几千,大家主要关注:学习率,gamme,replay buffer容量,等参数。很多炼丹专家通过控制变量的方法来分析这些超参数对算法新性能的影响。例如这个 DQN调整超参体会。作者详细分析了每个参数的作用。这个讨论了DQN损失函数越训练越差的问题。DQN原创 2022-05-26 21:15:04 · 4256 阅读 · 0 评论 -
强化学习代码问题(1)安装gym,TypeError: render() missing 1 required positional argument: ‘mode‘
遇到这种问题的主要原因是安装gym的版本太老旧了。一般来讲,我们会直接使用下面的方法安装pip install gym这个时候安装的可能不是最新版本的。我一开始默认安装的就是0.75版本的。后来我更新到新的版本就解决问题了,。这个时候,我们只需要指定版本就可以了pip install gym==0.9.1...原创 2022-05-25 19:12:27 · 1986 阅读 · 0 评论 -
初探强化学习(15)强化学习的gym学习环境名称
最近投稿IEEE Transactions on Cybernetics,审稿人要求我补充算法在雅达利游戏中的实验,来说明算法的一般性。没办法啊,实验吧。找了好久,找到了所有游戏环境的名称列表:EnvSpec(Acrobot-v1),EnvSpec(AirRaid-ram-v0),EnvSpec(AirRaid-ram-v4),EnvSpec(AirRaid-ramDeterministic-v0),EnvSpec(AirRaid-ramDeterministic-v4),EnvSpec(Air原创 2022-05-23 11:17:29 · 606 阅读 · 0 评论 -
初探强化学习(14)DQN类算法的值高估问题的笔记
关于DQN算法的一些细节,可以查看这个博客,讲的很细节。主要参考博客https://zhuanlan.zhihu.com/p/443807831https://itpcb.com/a/162740#:~:text=%E5%87%BA%E7%8E%B0%E4%BB%B7%E5%80%BC%E9%AB%98%E4%BC%B0%E7%9A%84%E6%A0%B9,%E7%9A%84%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E3%80%82原创 2022-05-18 19:54:18 · 786 阅读 · 1 评论 -
Pytorch(Python)中的itertools.count()函数
在看深度强化学习DQN代码时,遇到这段代码,搞了好久都没看明白。完整代码参考这个博客。for t in count(): #count()用法: itertools.count(start=0, step=1) #start:序列的开始(默认为0) #step:连续数字之间的差(默认为1) reward = 0 #设置初始化奖励为0 m_reward = 0#求和奖励 # 每m帧完成一次action原创 2022-05-09 18:27:03 · 4276 阅读 · 1 评论 -
初探强化学习(13)DQN的Pytorch代码解析,逐行解析,每一行都不漏
首先上完整的代码。这个代码是大连理工的一个小姐姐提供的。小姐姐毕竟是小姐姐,心细如丝,把理论讲的很清楚。但是代码我没怎么听懂。小姐姐在B站的视频可以给大家提供一下。不过就小姐姐这个名字,其实我是怀疑她是抠脚大汉,女装大佬。不说了,先上完整的代码吧1. 完整的代码import gymimport mathimport randomimport numpy as npimport matplotlib.pyplot as pltfrom collections import namedtupl原创 2022-03-28 19:00:59 · 7707 阅读 · 3 评论 -
强化学习论文精读书(1)Deep Dyna-Q: Integrating Planning for Task-Completion Dialogue Policy Learning
1. 前情提要虽然这个算法号称的是Deep Dyna-Q网络。但是其实其核心思想用的是DQN网络。特别是在更新策略函数Q(s,a;θQ)Q(s,a;θ_Q)Q(s,a;θQ)时,使用的就是DQN的训练思想。每C步更新一次策略函数Q(s,a;θQ)Q(s,a;θ_Q)Q(s,a;θQ)的参数θQθ_QθQ。如第2行和第42行,θQ’=θQθ_{Q’ }= θ_QθQ’=θQ。其中θ_Q是DQN种的预测网络,θQ’θ_{Q’ }θQ’是DQN中的target 网络。与DQN不同的是,DDQ有一个原创 2022-03-27 18:13:40 · 782 阅读 · 0 评论 -
初探强化学习(12)各种类型强化学习算法的流程图,用于对比分析
1. Q-learning建立一个Q Table来保存状态s和将会采取的所有动作aaa,Q(s,a)Q(s,a)Q(s,a)。在每个回合中,先随机初始化第一个状态,再对回合中的每一步都先从Q Table中使用ϵ−贪婪基于当前状态 sss (如果Q表没有该状态就创建s−as-as−a的行,且初始为全0)选择动作 aaa,执行aaa,然后得到新的状态s’s’s’和当前奖励r,同时更新表中Q(s,a)Q(s,a)Q(s,a)的值,继续循环到终点。整个算法就是一直不断更新 Q table 里的值,再根据更新值来原创 2022-03-27 13:30:13 · 3820 阅读 · 0 评论 -
初探强化学习(11)Dyna类型的强化学习
为什么研究Dyna类型的强化学习呢?主要是因为这个类型的强化学习是融合了model-based和model free两个类型的强化学习。Dyna由于不可能精确和完美的拟合真正环境,纯基于模型的强化学习效果往往很差。那有没有什么办法可以在一定程度上避免这一点呢?那就把基于模型 + 不基于模型的强化学习结合起来吧!也就是Dyna算法框架了。它既在模型中学习,也在交互中学习。即Dyna框架在每个迭代轮中,会先和环境交互,并更新价值函数、策略函数,接着进行n次模型的模拟预测,同样更新价值函数、策略函数。这原创 2022-03-25 23:40:40 · 1872 阅读 · 0 评论 -
初探强化学习(10)强化学习中的一些术语(non-stationray,sample efficiency,planning和Learnin,Reward,off-policy和on-policy )
1. 关于stationray参考博客。Stationary or not根据环境是否稳定、可以将强化学习问题分为stationary、non-stationary。1.1 stationary如果状态转移和奖励函数是确定的,即选择动作aaa后执行它的结果是确定的,那么这个环境就是stationary。这一般对应于medel-based RL。也就是已经训练了环境模型。1.2 non-stationary如果状态转移或奖励函数是不确定的,即选择动作aaa后执行它的结果是不确定的,那么这个环境原创 2022-03-23 22:11:07 · 2837 阅读 · 0 评论 -
初探强化学习(9)DQN详解-Deep Q Network保姆级别的分析(从Qlearning讲到DQN)
1. Q-learning1.1 Q-learning概述Q-Learning 是 Deep Q Learning 的基础。Q 学习算法使用状态动作值(也称为 Q 值)的 Q 表。这个 Q 表对每个状态有一行,对每个动作有一个列。每个单元格包含相应状态-动作对的估计 Q 值。我们首先将所有 Q 值初始化为零。当agent与环境交互并获得反馈时,算法会迭代地改进这些 Q 值,直到它们收敛到最优 Q 值。它使用贝尔曼方程更新它们。1.2 我们如何构建一个 Q 表?我们以一个简单的游戏为例。考虑一个原创 2022-03-22 16:45:38 · 5187 阅读 · 1 评论 -
初探强化学习(8)强化学习的几个基础方法(动态规划,蒙特卡洛方法,时间差分方法TD)
这个博客主要记录强化学习的三个基础的方法。分别是:动态规划,蒙特卡洛方法,时间差分方法TD使用者三个方法需要强化学满足不同的条件:比如动态规划方法要求必须知道和环境模型,也就是各状态之间的转移概率。也就是说使用动态规划的方法就说明该方法是基于模型的强化学习。我们在该博客中分别介绍了三种方法对应的求解状态估值和进行策略优化的异同。1. 宏观的总结动态规划是一种基于模型的强化学习方法采用的方法;很简单,动态规划方法需要知道具体的环境模型才能使用。蒙特卡罗是一种一条路走得到黑的试错型的无模型方法。原创 2022-03-21 21:11:41 · 1033 阅读 · 0 评论 -
初探强化学习(7)基于模型的强化学习的应用综述
本文是直接翻译一篇文章的,我先把原文地址放在这里。原文名字为:Survey of Model-Based Reinforcement Learning: Applications on Robotics这是一个2017年的论文1. Introduction强化学习(Regulation Learning,RL)是人工智能领域的一个重要方面,有着从金融到机器人等众多应用,并提出了大量的方法。机器人技术对于RL来说是一个非常具有挑战性的应用,因为它涉及机械系统与其环境之间的交互。这种相互作用会对机械系统原创 2022-03-20 15:49:56 · 6510 阅读 · 0 评论 -
初探强化学习(6)到底TMD什么是model-based和model-free(基于模型的强化学习和基于模型的强化学习 TMD的到底是什么)
0 如何定义无模型和有模型在实际应用中,根据agent是否通过与环境交互获得的数据来预定义环境动态模型,将RL分为模型化强化学习和无模型强化学,具体如图1所示。1 有模型的中的模型model到底指的是什么?----基于模型的强化学习指先在与环境交互的数据中创建环境动态模型,然后基于该模型学习最优策略。它一般包含状态转移预测和奖励预测两个独立模型。如果两个模型可以准确描述真正的环境动态模型,那么当输入一个状态和动作时就不需要与环境进行实时交互,可以直接基于模型预测得到新的状态和动作奖励,从而极大地提高原创 2022-03-16 23:10:11 · 3118 阅读 · 2 评论 -
初探强化学习(5)DDPG算法。包含逐行分析Pytorch代码和算法分析
主要从这个博客搬来的https://zhuanlan.zhihu.com/p/111257402还有这个博客讲的很清楚https://blog.csdn.net/weixin_43316082/article/details/89467208?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.queryctrv2&spm=1001.2101.3001.4242.2&utm_rel原创 2022-02-28 15:44:24 · 6731 阅读 · 13 评论 -
初探强化学习(4)LQR算法(linear quadratic regulator)即线性二次型调节器
这个博客是从下面这个链接搬来的https://zhuanlan.zhihu.com/p/72605138转载 2022-02-25 11:21:41 · 728 阅读 · 0 评论 -
初探强化学习(3)轨迹优化
这篇文章是从这个博客转载来的https://www.jianshu.com/p/1d23bcc1a620算法思路拟合局部的是时变线性动态模型,而不是学习一个全局模型。在全局动态模型复杂非线性并且不连续的情况下, 很难被成功学习(采集到的样本不足以充分反映系统动态分布)。该算法是model-based和model-free的混合方法,比model-free方法需求更少的样本,又能很好的解决model-based方法难以成功学习复杂不连续全局动态模型的问题。KL-Divergence 约束优化.转载 2022-02-24 22:36:42 · 530 阅读 · 0 评论 -
初探强化学习(2)rollout算法
这个文章是从这个网页搬来的:https://zhuanlan.zhihu.com/p/61062275说实话,之所以会看这个只是,主要是因为被这篇论文End-to-end training of deep visuomotor policies中的一句话给迷惑了很久。一句话带过,大概是大佬完全把这个知识当成基础知识了,所以完全不给解释和参考文献。于是这段我一直是不明白,只知道是在采样,具体怎么采样,也不明白。于是搜到了这篇文章。开始这节之前,我们先说说什么是rollout?本来想翻译一下这个词转载 2022-02-24 19:00:34 · 3610 阅读 · 0 评论 -
初探强化学习(1)蒙特卡洛采样
文本从这个网页搬来的:https://zhuanlan.zhihu.com/p/3381036921. 蒙特卡洛的概念蒙特卡洛原来是一个赌场的名称,用它作为名字大概是因为蒙特卡洛方法是一种随机模拟的方法,这很像赌博场里面的扔骰子的过程。最早的蒙特卡洛方法都是为了求解一些不太好求解的求和或者积分问题例如下图是一个经典的用蒙特卡洛求圆周率的问题,用计算机在一个正方形之中随机的生成点,计数有多少点落在1/4圆之中,这些点的数目除以总的点数目即圆的面积,根据圆面积公式即可求得圆周率。蒙特卡洛算法的另一个应转载 2022-02-24 18:54:22 · 624 阅读 · 0 评论