强化学习
文章平均质量分 85
johnjim0816
stay hungry, stay foolish
展开
-
Q-learning算法实战
强化学习算法的模式都比较固定,一般包括sample(即训练时采样动作),predict(测试时预测动作),update(算法更新)以及保存模型和加载模型等几个方法,其中对于每种算法samle和update的方式是不相同,而其他方法就大同小异。self . lr = cfg . lr # 学习率 self . gamma = cfg . gamma。......原创 2022-08-03 13:58:27 · 1881 阅读 · 0 评论 -
PPO算法实战
原理简介PPO是一种off-policy算法,具有较好的性能,其前身是TRPO算法,也是policy gradient算法的一种,它是现在 OpenAI 默认的强化学习算法,具体原理可参考PPO算法讲解。PPO算法主要有两个变种,一个是结合KL penalty的,一个是用了clip方法,本文实现的是后者即PPO-clip。伪代码要实现必先了解伪代码,伪代码如下:这是谷歌找到的一张比较适合的图,本人比较懒就没有修改,上面的k就是第k个episode,第六步是用随机梯度下降的方法优化,这里的损失函数(原创 2021-03-23 15:57:42 · 16400 阅读 · 19 评论 -
Double DQN算法实战
食用本篇之前,需要有DQN算法的基础,参考DQN算法实战。原理简介Double-DQN是2016年提出的算法,灵感源自2010年的Double-Qlearning,可参考论文Deep Reinforcement Learning with Double Q-learning。跟Nature DQN一样,Double-DQN也用了两个网络,一个当前网络(对应用QQQ表示),一个目标网络(对应一般用Q′Q'Q′表示,为方便区分,以下用QtarQ_{tar}Qtar代替)。我们先回忆一下,对于非终止状态,原创 2020-12-22 15:29:01 · 2229 阅读 · 2 评论 -
DQN算法实战
知识预习本文不赘述DQN的原理,可先看Q-learning以及DQN其他相关文章,参考比如datawhale李宏毅笔记-Q学习。实战的意思就是撸出代码来,在简单了解原理的基础上,根据论文分析Human-level control through deep reinforcement learningPlaying Atari with Deep Reinforcement Learning...原创 2020-11-28 10:08:57 · 3902 阅读 · 1 评论 -
Policy Gradient算法实战
Policy-based方法是强化学习中与Value-based(比如Q-learning)相对的方法,主要是对一个回合(episode)的策略进行梯度下降,相关基础参考Datawhale-Policy Gradient。其中REINFORCE是一个最基本的Policy Gradient方法,主要解决策略梯度无法直接计算的问题,参考REINFORCE和Reparameterization Trick,其为代码如下:程序源码参考github,下面简要解释一下。首先可以看REINFORCE和Repara原创 2020-11-27 18:09:45 · 706 阅读 · 0 评论 -
REINFORCE和Reparameterization Trick
在机器学习中,经常需要对为随机优化计算loss function的梯度,有时这些loss function会写成期望的形式。比如在变分推断中,需要计算ELBO loss(包含期望的项)的导数(derivative)。另外就是强化学习的Policy Gradient算法中的目标函数(也就是loss function)就是算期望的reward。但是一般是不能直接计算期望的梯度的,而REINFORCE和Reparameterization就是两种常见的trick,用来计算这些期望函数的梯度,注意这两个trick原创 2020-11-27 16:26:50 · 2962 阅读 · 3 评论 -
社会困境问题(social dilemma)
社会困境问题实际上是囚徒困境(Prisoner’s Dilemma)的一般化,先回顾囚徒困境问题:警方逮捕甲、乙两名嫌疑犯,但没有足够证据指控二人有罪。于是警方分开囚禁嫌疑犯,分别和二人见面,并向双方提供以下相同的选择:若一人认罪并作证检控对方(一方“背叛”),而对方保持沉默,此人将即时获释,沉默者将判监10年。若二人都保持沉默(互相“合作”),则二人同样判监半年。若二人都互相检举(互相“背叛”),则二人同样判监5年。表格描述如下:乙沉默(合作)乙认罪(背叛)甲沉默(合原创 2020-10-13 17:11:51 · 2156 阅读 · 0 评论 -
解读gym中的action_space和observation_space
做强化学习的相关任务时通常需要获取action和observation的数目,但是单智能体和多智能体环境下的action_space等其实是不同的。先看单智能体环境,print(env.action_space)print(env.observation_space)打印相关的space,输出如下:Discrete(19)Box(115,)其中Discrete(19)是action_space,19代表有19个action,它其实是一个类,并且继承一个Space类,所以不可能用n_acti原创 2020-05-15 18:12:05 · 24441 阅读 · 9 评论 -
深度强化学习第1课|强化学习入门
文章目录Introduction to Reinforcement Learning by David Silver0 写在前面1 推荐书籍2 入门简介2.1 机器学习2.1 RL的特点2.3 实例3 rewards3.1 奖励假设3.2 举例4 Sequential Decision Making(序列决策制定)4.1 两个基本问题4.1.1 强化学习4.1.2 planning5 agent...原创 2020-03-04 12:26:03 · 879 阅读 · 0 评论 -
深度强化学习第2课|马尔可夫决策过程
文章目录0 写在前面1 简介2 马尔可夫属性3 State Transition Matrix4 MP5 示例:Student Markov Chain6 Markov Reward Process7 Return8 为什么需要衰减?9 MRP的值函数10 贝尔曼方程11 贝尔曼方程的数学表示12 MDP13 Policy14 MDP的值函数15 最优值函数16 最优策略17 寻找最优策略18 贝...原创 2020-03-03 15:01:55 · 2333 阅读 · 0 评论