强化学习
文章平均质量分 86
jsfantasy
虚心、实腹、弱志、强骨
展开
-
强化学习15——Proximal Policy Optimization (PPO)算法详细推导
在Policy Gradient推导和REINFORCE算法两篇文章介绍了PG算法的推导和实现,本篇要介绍的算法是Proximal Policy Optimization (PPO),中文叫近短策略优化算法。PPO由于其非常的好的性能与易于实现等特性,已被作为OpenAI公司的首选算法,可见这个算法的优秀性能,具体可以查看OpenAI-PPO一、Policy Gradient 的不足采样效率低下:PG采用MC采样方式,每次基于当前的策略对环境采样一个episode数据,然后基于这些数据更新策略,这个过原创 2022-01-27 17:34:20 · 15464 阅读 · 4 评论 -
强化学习 14 —— TD3 算法详解与 tensorflow 2.0 实现
上篇文章 强化学习 13 —— DDPG算法详解 中介绍了DDPG算法,本篇介绍TD3算法。TD3的全称为 Twin Delayed Deep Deterministic Policy Gradient(双延迟深度确定性策略)。可以看出,TD3就是DDPG算法的升级版,所以如果了解了DDPG,那么TD3算法自然不在话下。一、算法介绍TD3算法主要对DDPG做了三点改进,将会在下面 一一讲解,两者的代码也很相似,本篇只展示改进的部分,所以如果对DDPG算法不太熟悉,强烈建议参考上一篇博客 强化学习 13—原创 2020-08-22 17:15:17 · 9563 阅读 · 4 评论 -
强化学习13 —— Deep Deterministic Policy Gradient(DDPG)算法原理与 tensorflow 2.0 实现
上篇文章介绍了强化学习——Actor-Critic算法详解加实战 介绍了Actor-Critic,本篇文章将介绍 DDPG 算法,DDPG 全称是 Deep Deterministic Policy Gradient(深度确定性策略梯度算法) 其中 PG 就是我们前面介绍了 Policy Gradient,在强化学习10——Policy Gradient 推导 已经讨论过,那什么是确定性策略梯度呢?一、确定性策略与确定性策略对应的是随机性策略,就是神经网络输出的是动作的分布,在确定每一步动作时,我们需要原创 2020-08-22 17:05:31 · 7287 阅读 · 25 评论 -
强化学习 12 —— Actor-Critic 算法介绍与 Tensorflow 2.0 实现
一、Actor-Critic 介绍1、引入 Actor-Critic我们还是从上篇强化学习——REINFORCE Algorithm推导出的目标函数的梯度说起:∇θJ(θ)=Eπθ[∑t=0T−1Gt⋅∇θ log πθ(at∣st)]\nabla_\theta J(\theta) = E_{\pi_\theta} \left[\sum_{t=0}^{T-1}G_t\cdot \nabla_\theta\;log\;\pi_\theta(a_t|s_t) \right]∇θJ(θ)=Eπθ原创 2020-08-22 16:39:04 · 4422 阅读 · 9 评论 -
强化学习 11 —— REINFORCE 算法推导与 tensorflow2.0 代码实现
在上篇文章强化学习——Policy Gradient 公式推导我们推导出了 Policy Gradient:∇θJ(θ)≈1m∑i=1mR(τi) ∑t=0T−1∇θ log πθ(ati∣sti)\nabla_\theta J(\theta) \approx \frac{1}{m}\sum_{i=1}^mR(\tau_i)\;\sum_{t=0}^{T-1}\nabla_\theta\;log\;\pi_\theta(a_t^i|s_t^i)∇θJ(θ)≈m1i=1∑mR(τi)t=0原创 2020-08-16 10:30:38 · 5404 阅读 · 6 评论 -
强化学习 10 —— Policy Gradient详细推导
前面几篇文章价值函数近似、DQN算法、DQN改进算法DDQN和Dueling DQN我们学习了 DQN 算法以及其改进算法 DDQN 和 Dueling DQN 。他们都是对价值函数进行了近似表示,也就是 学习价值函数,然后从价值函数中提取策略,我们把这种方式叫做 Value Based。一、Value Based 的不足回顾我们的学习路径,我们从动态规划到蒙地卡罗,到TD到Qleaning再到DQN,一路为计算Q值和V值绞尽脑汁。但大家有没有发现,我们可能走上一个固定的思维,就是我们的学习,一定要算Q原创 2020-08-16 10:26:35 · 4371 阅读 · 2 评论 -
强化学习 9 —— DQN 改进算法 DDQN、Dueling DQN 详解与tensorflow 2.0实现
上篇文章强化学习——详解 DQN 算法我们介绍了 DQN 算法,但是 DQN 还存在一些问题,本篇文章介绍针对 DQN 的问题的改进算法一、Double DQN 算法1、算法介绍DQN的问题有:目标 Q 值(Q Target )计算是否准确?全部通过 max Qmax\;QmaxQ 来计算有没有问题?很显然,是有问题的,这是因为Q-Learning 本身固有的缺陷—过估计过估计是指估计得值函数比真实值函数要大,其根源主要在于Q-Learning中的最大化操作,对于 TD Target:r+γ原创 2020-08-10 15:02:22 · 7430 阅读 · 4 评论 -
强化学习 8 —— DQN 代码 Tensorflow 2.0 实现
在上一篇文章强化学习——DQN介绍 中我们详细介绍了DQN 的来源,以及对于强化学习难以收敛的问题DQN算法提出的两个处理方法:经验回放和固定目标值。这篇文章我们就用代码来实现 DQN 算法一、环境介绍1、Gym 介绍本算法以及以后文章要介绍的算法都会使用 由 OpenAIOpenAIOpenAI 推出的GymGymGym仿真环境, GymGymGym 是一个研究和开发强化学习相关算法的仿真平台,了许多问题和环境(或游戏)的接口,而用户无需过多了解游戏的内部实现,通过简单地调用就可以用来测试和仿真,并原创 2020-08-10 14:57:49 · 11025 阅读 · 12 评论 -
强化学习 7—— 一文读懂 Deep Q-Learning(DQN)算法
上篇文章强化学习——状态价值函数逼近介绍了价值函数逼近(Value Function Approximation,VFA)的理论,本篇文章介绍大名鼎鼎的DQN算法。DQN算法是 DeepMind 团队在2015年提出的算法,对于强化学习训练苦难问题,其开创性的提出了两个解决办法,在atari游戏上都有不俗的表现。论文发表在了 Nature 上,此后的一些DQN相关算法都是在其基础上改进,可以说是打开了深度强化学习的大门,意义重大。论文地址:Mnih, Volodymyr; et al. (2015). H原创 2020-08-10 14:42:10 · 31118 阅读 · 3 评论 -
强化学习 6 ——价值函数逼近 (VFA)
上篇文章强化学习——时序差分 (TD) 控制算法 Sarsa 和 Q-Learning我们主要介绍了 Sarsa 和 Q-Learning 两种时序差分控制算法,在这两种算法内部都要维护一张 Q 表格,对于小型的强化学习问题是非常灵活高效的。但是在状态和可选动作非常多的问题中,这张Q表格就变得异常巨大,甚至超出内存,而且查找效率极其低下,从而限制了时序差分的应用场景。近些年来,随着神经网络的兴起,基于深度学习的强化学习称为了主流,也就是深度强化学习(DRL)。一、函数逼近介绍我们知道限制 Sarsa 和原创 2020-08-10 14:09:39 · 3507 阅读 · 0 评论 -
强化学习 5 —— SARSA and Q-Learning 算法代码实现
强化学习 5 —— SARSA and Q-Learning上篇文章 强化学习——时序差分 (TD) — SARSA and Q-Learning 我们介绍了时序差分TD算法解决强化学习的评估和控制问题,TD对比MC有很多优势,比如TD有更低方差,可以学习不完整的序列。所以我们可以在策略控制循环中使用TD来代替MC。优于TD算法的诸多优点,因此现在主流的强化学习求解方法都是基于TD的。这篇文章会使用就用代码实现 SARSA 和 Q-Learning 这两种算法。一、算法介绍关于SARSA 和 Q-Le原创 2020-08-09 19:30:27 · 3292 阅读 · 1 评论 -
强化学习 4 —— 时序差分法(TD)的解决无模型的预测与控制(SARSA and Q-Learning)
强化学习 4 —— Model Free TD在上篇文章强化学习 3 ——蒙特卡洛 (MC) 采样法的预测与控制中我们讨论了 Model Free 情况下的策略评估问题,主要介绍了蒙特卡洛(MC)采样法的预测与控制问题,这次我们介绍另外一种方法——时序差分法(TD)一、时序差分采样法(TD)对于MC采样法,如果我们没有完整的状态序列,那么就无法使用蒙特卡罗法求解了。当获取不到完整状态序列时, 可以使用时序差分法(Temporal-Difference, TD)。1、TD 简介对于蒙特卡洛采样法计算原创 2020-08-09 17:55:41 · 4971 阅读 · 2 评论 -
强化学习 3 —— 使用 蒙特卡洛(MC)解决无模型问题
强化学习 3—— Model-free MC一、问题引入回顾上篇强化学习 2 —— 用动态规划求解 MDP我们使用策略迭代和价值迭代来求解MDP问题1、策略迭代过程:1、评估价值 (Evaluate)vi(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)⋅vi−1(s′))v_{i}(s) = \sum_{a\in A} \pi(a|s) \left( {\color{red}R(s, a)} + \gamma \sum_{s' \in S} {\color{red}原创 2020-08-09 17:30:05 · 3134 阅读 · 2 评论 -
强化学习 2 —— 用动态规划解决 MDP 问题 (Policy Iteration and Value Iteration)
强化学习 2—— 用动态规划求解 MDP在上一篇文章 强化学习 1 —— 一文读懂马尔科夫决策过程 MDP 介绍了马尔科夫过程,本篇接着来介绍如何使用动态规划方法来求解。动态规划的关键点有两个:一是问题的最优解可以由若干小问题的最优解构成,即通过寻找子问题的最优解来得到问题的最优解。二是可以找到子问题状态之间的递推关系,通过较小的子问题状态递推出较大的子问题的状态。在上一篇中我们提到的状态价值的贝尔曼方程:vπ(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)⋅vπ(原创 2020-08-09 17:16:05 · 5344 阅读 · 2 评论 -
强化学习 1 —— 一文读懂马尔科夫决策过程(MDP)
强化学习 — 马尔科夫决策过程(MDP)一、马尔科夫过程(Markov Process)马尔科夫性某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性P(St+1∣St)=p(St+1∣S1,S2,⋯ ,St)P(S_{t+1}|S_t) = p(S_{t+1}|S_1, S_2, \cdots , S_t)P(St+1∣St)=p(St+1∣S1,S2,⋯,St)马尔科夫过程又叫做马尔科夫链(Markov原创 2020-06-06 16:17:43 · 24909 阅读 · 11 评论