强化学习

强化学习介绍

冷暖自知 提交于 2020-02-04 12:45:20
强化学习算法类型 策略梯度:可直接区别以上的目标 基于值:估计最优策略(不明确哪个是最优的策略情况下估计)的值函数和Q函数 Actor-critic(演员-评论家):使用当前策略去估计值函数和Q函数来改进策略 基于模型:估计转换模型,接着      1.让该模型去规划不明确的策略      2.让该模型去改进策略      3.其他 比较: 有监督学习:几乎都是使用梯度下降 强化学习:通常不使用梯度下降 特定算法示例: • 值函数方法   • Q-learning, DQN   • Temporal difference learning   • Fitted value iteration • 策略梯度方法   • REINFORCE   • Natural policy gradient   • Trust region policy optimization • Actor-critic方法   • Asynchronous advantage actor-critic (A3C)   • Soft actor-critic (SAC) • Model-based方法   • Dyna   • Guided policy search 应用举例: 例1: 用Q函数玩Atari games 论文参考: • Playing Atari with deep

我的强化学习极简笔记

余生长醉 提交于 2020-02-02 03:27:31
强化学习极简笔记 文章目录 强化学习极简笔记 动态规划 模型 迁移 策略 值函数 Bellman 方程 算法 Markov 决策 --- 不确定动态规划 模型 迁移 策略 奖励 状态值函数 状态行为值函数 Bellman 方程 基模型 策略迭代算法 强化学习 基于值函数 (模型未知) 时间差分TD Sarsa( λ \lambda λ ) QLearning 值函数逼近 Sarsa 算法 关键字: 模型 迁移 奖励 策略 值函数 状态值函数 状态-动作值函数 Bellman 方程 TD 算法 Sara算法 Q学习 同/异策略 动态规划 强化学习是基于动态规划的。 模型 函数模型 ( S , A , f , π , r , γ ) (S, A,f, \pi, r, \gamma) ( S , A , f , π , r , γ ) S S S :状态集合 A A A : 动作集合 f : S × A → S f:S\times A\to S f : S × A → S 状态转移函数 π \pi π : 策略 r : S × A → R r:S\times A\to\R r : S × A → R 动作奖励 γ \gamma γ : 折扣因子 当 f , π , r f,\pi,r f , π , r 为转移概率时,是非确定模型 图论模型(没有动作集) ( G = ( V , E )

DL--常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)

廉价感情. 提交于 2020-01-29 06:39:47
原文链接: http://blog.csdn.net/jinzhuojun/article/details/78508203 前段时间Nature上发表的升级版Alpha Go - AlphaGo Zero再一次成为热点话题。作为其核心技术之一的Deep reinforcement learning(深度增强学习,或深度强化学习)也再一次引发关注。Alpha Zero最有意义的地方之一是它去除了从人类经验(棋谱)中学习的过程,而是完全通过“左右互博”式的学习击败了自己的“前辈”。这也很能体现强化学习的特点,就是在弱监督信息下通过”Trial and error”来自我学习。 这两年DRL随着深度学习的大热也是火得不行。于是各种新的强化学习研究平台如雨后春芛冒出来,而且趋势也是从简单的toy场景慢慢扩展到3D迷宫,第一人称射击游戏,即时策略类游戏和复杂机器人控制场景等。之前曾写文介绍了一些流行的强化学习实验环境( 常用强化学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2) )。本文是第二弹。 ps: 真羡慕现在研究强化学习的孩子,各种五花八门的实验环境,算法参考实现也可以随便挑。。。 在第一篇中介绍过的本文就不重复累述了,这里把本文涉及的项目大致分为两类: 1. 实验场景类 : 像OpenAI Gym

【李宏毅深度强化学习笔记】6、Actor-Critic、A2C、A3C、Pathwise Derivative Policy Gradient

时光怂恿深爱的人放手 提交于 2020-01-28 17:28:19
【李宏毅深度强化学习笔记】1、深度强化学习算法 策略梯度方法(Policy Gradient) https://blog.csdn.net/ACL_lihan/article/details/104020259 【李宏毅深度强化学习笔记】2、深度强化学习 Proximal Policy Optimization (PPO) 算法 https://blog.csdn.net/ACL_lihan/article/details/103989581 【李宏毅深度强化学习笔记】3、深度强化学习算法 Q-learning(Basic Idea) https://blog.csdn.net/ACL_lihan/article/details/104041905 【李宏毅深度强化学习笔记】4、Q-learning更高阶的算法 https://blog.csdn.net/ACL_lihan/article/details/104056542 【李宏毅深度强化学习笔记】5、Q-learning用于连续动作 (NAF算法) https://blog.csdn.net/ACL_lihan/article/details/104076938 【李宏毅深度强化学习笔记】6、Actor-Critic、A2C、A3C、Pathwise Derivative Policy Gradient(本文) https:/

李宏毅强化学习笔记【5.Imitation Learning】

回眸只為那壹抹淺笑 提交于 2020-01-28 12:48:27
如果没有reward,怎么办 和环境互动,但不能得到reward,只能看着expert的demonstration学习。 判断开车撞人扣多少分很难,收集人开车的例子,人对话的例子是比较简单的。 不知道怎么定reward,但可以收集范例。 1.Behavior Cloning expert做什么,机器就做什么一样的事情。 收集expert的state和action,然后学习一个network,输入state就输出action。 问题: 如果只收集expert的资料,state可能会被限制住。因为范例中有些state没有出现过。(比如人没出现过快撞墙的情况) 解决:收集expert在极端情况下的action。 方法:让actor π操作,问expert在该情况下该怎么办,但是π并不管expert的操作。然后把expert说的data拿去训练。 但是这样会完全学习expert的动作,不管有没有用。 主要问题:机器会完全学习expert的动作,但是它可能选择了一个错误的行为去学习。所以到底什么需要学习,什么不需要学习,是很重要的。 问题:mismatch:action会影响下一个state。很难让训练的π和expert完全一样,最后结果可能会差很多。 2.Inverse Reinforcement Learning 一般的情形↓,通过reward找到最优的actor 通过expert

强化学习-Vanilla Policy Gradient(VPG)

荒凉一梦 提交于 2020-01-26 14:28:45
文章目录 Background Quick Facts Key Equations Exploration vs. Exploitation Pseudocode Documentation Referances Background 策略梯度背后的关键思想是提高导致更高回报的操作的概率,并降低导致低回报的操作的概率,直到获得最佳策略。 Quick Facts VPG 是一个on-policy算法 VPG 能用于连续或者离散动作空间的环境 结合MPI可以有并行运算的VPG Key Equations 令 π θ π_θ π θ ​ 表示参数为 θ 的策略, J ( π θ ) J(π_θ) J ( π θ ​ ) 表示策略的有限步长无折扣收益的期望。 J ( π θ ) J(π_θ) J ( π θ ​ ) 的梯度为: ∇ θ J ( π θ ) = E τ ∼ π θ [ ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) A π θ ( s t , a t ) ] \nabla_{\theta} J(\pi_{\theta}) = \underset{\tau \sim \pi_{\theta}}E[{ \sum_{t=0}^{T} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) A^{\pi_{\theta}}(s

【强化学习RL】model-free的prediction和control — MC, TD(λ), SARSA, Q-learning等

余生颓废 提交于 2020-01-26 13:30:20
本系列强化学习内容来源自对David Silver课程的学习 课程链接 http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html   本文介绍了在 model-free 情况下(即不知道回报Rs和状态转移矩阵Pss'),如何进行 prediction ,即预测当前policy的state-value function v(s)从而得知此policy的好坏,和进行 control ,即找出最优policy(即求出q*(s, a),这样π*(a|s)就可以立刻知道了)。   在prediction部分中,介绍了Monto Carlo(MC),TD(0),TD(λ)三种抽样(sample)估计方法,这里λ的现实意义是随机sample一个state,考虑其之后多少个state的价值。当 λ=0即TD(0) 时,只考虑下一个状态; λ=1 时几乎等同MC ,考虑T-1个后续状态即到整个episode序列结束; λ∈(0,1)时为TD(λ) ,可以表示考虑后续非这两个极端状态的中间部分,即考虑后面n∈(1, T-1)个状态。同时,prediction过程又分为 online update 和 offline update 两部分,即使用当前π获得下一个状态的回报v(s')和优化policy π是否同时进行。   在control部分中

基于强化学习的倒立摆控制策略Matlab实现(附代码) 二刷

微笑、不失礼 提交于 2020-01-25 15:44:44
我的 微信公众号名称 :深度学习与先进智能决策 微信公众号ID :MultiAgent1024 公众号介绍 :主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!   本文将之前的一篇 基于强化学习的倒立摆控制策略Matlab实现 文章再次进行了扩充。 问题描述   大多数先进控制技术都需要对过程及其环境有较深的了解,一般用拉普拉斯变换或动态微分方程来描述过程动态特性。然而在过程控制领域,许多系统过于复杂,或者其内在规律难以了解,因此很难得到过程的定量知识,也即无法建立起精确的数学模型,但是我们能够获得这些系统的一些输入输出数据。   在被控对象的模型未知,只有数据可用的情况下,设计一个控制器,依据系统的输入输出数据进行自我学习调节,最终实现对控制对象的控制。为了使得设计的自我学习控制算法具有一般性,控制对象需是复杂的、不稳定的、非线性系统。 摘要   针对模型未知只有数据可用的复杂非线性偏微分系统,本文设计了一种基于强化学习的数据驱动学习算法,从与控制对象的交互中学习优化策略。首先建立倒立摆的数学模型,但是只是利用其产生输入输出数据。基于输入输出数据,在未知倒立摆数学模型情况下,实现对倒立摆的控制。 1.引言   作为人工智能的核心,机器学习的根本目的是使计算机能够具备模拟甚至实现人类学习活动的能力

DDPG-强化学习算法

给你一囗甜甜゛ 提交于 2020-01-22 16:55:29
文章目录 Background Quick Facts Key Equations DDPG的Q-learning部分 DDPG的策略学习部分 Exploration vs. Exploitation(探索vs.利用) Documentation References Why These Papers? Background DDPG是一种同时学习Q-函数和策略的算法。它使用off-policy的数据以及bellman方程去学习Q函数,然后用Q函数去学习策略。 这种方法与Q-learning联系密切,源于那么一种思路:如果你知道最优的动作值函数 Q ∗ ( s , a ) Q^*(s,a) Q ∗ ( s , a ) , 则当给定状态,最优动作 a ∗ ( s ) a^*(s) a ∗ ( s ) 可以通过解决一下问题而找出: a ∗ ( s ) = arg ⁡ max ⁡ a Q ∗ ( s , a ) . a^*(s) = \arg \max_a Q^*(s,a). a ∗ ( s ) = ar g a max ​ Q ∗ ( s , a ) . DDPG将学习 Q ∗ ( s , a ) Q^*(s,a) Q ∗ ( s , a ) 的近似与学习 a ∗ ( s ) a^*(s) a ∗ ( s ) 的近似进行交织,并且这样做的方式特别适合于具有连续动作空间的环境。但是

强化学习:双Q学习算法

巧了我就是萌 提交于 2020-01-21 04:50:03
双Q学习算法 vs Q学习算法 问题提出 如图所示,这个MDP有两个非终止节点A和B,每幕都从A开始并选择向左或者向右。选择向右会立刻转移到终止状态并得到值为0的回报,选择向左则会到达节点B且得到值为0的回报。B状态下有很多种可能的动作,每种动作选择后都会从一个均值为-0.1、方差为1.0的正太分布中得到一个回报,然后到达终止状态。 我们的目的是分别用Q学习和双Q学习算法实现这个MDP过程,并设置参数记录在多次循环后该MDP过程在每幕中选择向左的概率,以比较两种算法的最大化偏差,进而比较两种算法的优劣。 问题解决 状态A有两个动作:left:0、 right:1 状态B设置有4个动作:0, 1, 2, 3;选择任何一个动作都会到达终止状态。 状态C(终止状态)一个动作:0;用来更新Q(s,a),此状态下终止MDP,不会选择动作。 Q(s,a)代表Q学习算法的状态-动作值函数;Q1(s,a)和Q2(s,a)代表双Q学习的状态-动作值函数。两者的初始化同上一篇博客的问题解决里的内容类似,不赘述。 其它参数:alpha:0.1,gamma: 1,epsilon: 0.1 算法 给出双Q学习的算法,Q学习算法上一篇博客已给出。 程序 由于程序较长,只给出与双Q学习算法有关的程序代码。注释写的也蛮清晰的。 ''' 函数功能:双Q学习算法动作选择策略 输入:state、epsilon 输出