EasyRL 强化学习笔记1、2章节(强化学习概述,MDP )
⽬录
主要参考资料:,写的超级仔细!我这⾥只是摘抄了其中的内容,强烈建议看原⽂档!
女人尿急
第⼀章 强化学习概述
Reinforcement Learning
和监督学习对⽐:
1. 输⼊是序列数据,并不满⾜独⽴同分布。
2. agent需要不断试错 trial-and-error exploration。
3. 没有label标签告诉模型哪个action是正确的,只有reward,并且是延迟的。
4. 监督学习的数据是⼈⼯标注的,相当于有了⼀个上限。但RL有更⼤的潜⼒,有可超越⼈类、
trajectory 与episode
1. trajectory:agent和环境交互,得到的⼀堆观测数据。即状态和动作的⼀个序列。
2. ⼀场游戏:episode(回合)或trial(试验)
Sequential Decision Making
1. 在⼀个强化学习环境⾥⾯,agent 的⽬的就是选取⼀系列的动作来极⼤化它的奖励,所以这些采取的动作必须有长期影响。但在这个过程⾥⾯,它的奖励其实是被延迟了,就是说你现在采取的某⼀步决策可能要等到时间很久过后才知道这⼀步到底产⽣了什么样的影响。
state 和obrvation ;MDP 与POMDP 1. 状态(state) s 是对世界的完整描述,不会隐藏世界的信息。观测(obrvation) o 是对状态的部分描述,可能会遗漏⼀些信息。 2. 当 agent 的状态跟环境的状态等价的时候,我们就说这个环境是 full obrvability ,就是全部可以观测。换句话说,当 agent 能够观察到环境的所有状态时,我们称这个环境是完全可观测的(fully obrved)。在这种情况下⾯,强化学习通常被建模成⼀个 Markov decision process (MDP)的问题: 。(观测=环境状态=agent状态)3. 当agent只能看到部分的观测,称为部分可观测的(partially obrved)。在这种情况下⾯,强化学习通常被建模成⼀个 POMDP 的问题。(如棋牌游戏,只能看到牌⾯上的牌)4. 部分可观测马尔可夫决策过程(Partially Obrvable Markov Decision Process, POMDP)是⼀个马尔可夫决策过程的泛化。POMDP 依然具有马尔可夫性质,但是假设智能体⽆法感知环境的状态 s,只能知道部分观测值 o。⽐
如在⾃动驾驶中,智能体只能感知传感器采集的有限的环境信息。通常⽤七元组表⽰Action Spaces
τ=(s ,a ,s ,a ,...)
喝不完的红酒妙用0011H =t O ,R ,A ,...,A ,O ,R 111t −1t t S =t f (H )
t O =t S =t e S t a
(S ,A ,T ,R ,Ω,O ,γ)
1. 离散动作空间(discrete action spaces):agent的数量是有限的。如:⾛迷宫机器⼈只能⾛东南西北四个⽅向。
2. 连续动作空间(continuous action spaces) :在连续空间中,动作是实值的向量。如:机器⼈可以360°移动。Major Components of an RL Agent 策略函数(policy function),agent 会⽤这个函数来选取下⼀步的动作。
价值函数(value function),我们⽤价值函数来对当前状态进⾏估价,它就是说你进⼊现在这个状态,可以对你后⾯的收益带来多⼤的影响。当这个价值函数⼤的时候,说明你进⼊这个状态越有利。
模型(model),模型表⽰了 agent 对这个环境的状态进⾏了理解,它决定了这个世界是如何进⾏的。Policy 输⼊为状态,输出为采取的action。分为stochastic policy(随机性策略)和deterministic policy(确定性策略)。stochastic policy(随机性策略):输出的是动作的概率,然后对概率分布进⾏采样获取action。deterministic policy(确定性策略):直接取概率最⼤的动作。
通常情况下,强化学习⼀般使⽤随机性策略。① 在学习时可以通过引⼊⼀定随机性来更好地探索环境;② 随机性策略的动作具有多样性。采⽤确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对⼿预测。
Value Function
价值函数是未来奖励的⼀个预测,⽤来评估状态的好坏。
1. 价值函数表⽰,在我们已知某⼀个策略函数时,可以得到多少奖励。
鸟叫声怎么形容, for all 2. Q函数(未来可以获得多少奖励取决于当前的状态和当前的⾏为):
这个 Q 函数是强化学习算法⾥⾯要学习的⼀个函数。因为当我们得到这个 Q 函数后,进⼊某⼀种状态,它最优的⾏为就可以通过这个 Q 函数来得到。
Model
模型决定了下⼀个状态会是什么样的,就是说下⼀步的状态取决于你当前的状态以及你当前采取的⾏为。它由两个部分组成:
1. 概率:转移状态之间是怎么转移的
2. 奖励函数:当采取了某个⾏为,可以获得多⼤的奖励
Policy-bad 与 Value-bad
v (s)≐πE G ∣S =s =π[t t ]E γR ∣S =s π[∑k=0∞k t+k+1
t ]s ∈S q (s,a)≐πE G ∣S =s,A =a =π[t t t ]E γR ∣S =s,A =a π[∑k=0∞k t+k+1t t ]
P =ss ′a P S =s ∣S =s,A =a [t+1′t t ]
R =s a
E R ∣S =s,A =a [t+1t t ]
1. 基于策略的(policy-bad)RL:每⼀个状态得到⼀个最佳的⾏为(action)。
2. 基于价值的(value-bad)RL:每⼀个状态对应的value。
Types of RL Agents
value-bad & policy-bad
1.基于价值的 agent(value-bad agent)。
这⼀类 agent 显式地学习的是价值函数,
隐式地学习了它的策略。策略是从我们学到的价值函数⾥⾯推算出来的。
2.基于策略的 agent(policy-bad agent)。
这⼀类 agent 直接去学习 policy,就是说你直接给它⼀个状态,它就会输出这个动作的概率。
在基于策略的 agent ⾥⾯并没有去学习它的价值函数。
3.⼆者结合:Actor-Critic agent。这⼀类 agent 把它的策略函数和价值函数都学习了,然后通过两者的交互得到⼀个最佳的⾏为。
Q: 基于策略迭代和基于价值迭代的强化学习⽅法有什么区别?
1. 在基于策略迭代的强化学习⽅法中,智能体会制定⼀套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进⾏操
作。强化学习算法直接对策略进⾏优化,使制定的策略能够获得最⼤的奖励。
2. ⽽在基于价值迭代的强化学习⽅法中,智能体不需要制定显式的策略,它维护⼀个价值表格或价值函数,并通过这个价值表格或价值函
数来选取价值最⼤的动作。基于价值迭代的⽅法只能应⽤在不连续的、离散的环境下(如围棋或某些游戏领域),对于⾏为集合规模庞⼤、动作连续的场景(如机器⼈控制领域),其很难学习到较好的结果(此时基于策略迭代的⽅法能够根据设定的策略来选择连续的动作)。
3. 基于价值迭代的强化学习算法有 Q-learning、 Sarsa 等,⽽基于策略迭代的强化学习算法有策略梯度算法等。此外, Actor-Critic 算
法同时使⽤策略和价值评估来做出决策,其中,智能体会根据策略做出动作,⽽价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。
model-bad & model-free 1. model-bad (有模型) RL agent,它通过学习这个状态的转移来采取动作。2. model-free (免模型) RL agent,它没有去直接估计这个状态的转移,也没有得到环境的具体转
移变量。它通过学习价值函数和策略函
数进⾏决策。Model-free 的模型⾥⾯没有⼀个环境转移的模型。
具体来说,当智能体知道状态转移函数 和奖励函数 后,它就能知道在某⼀状态下执⾏某⼀动作后能带来的奖励和环境的下⼀状态,这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可。这种学习⽅法称为有模型学习。然⽽在实际应⽤中,智能体并不是那么容易就能知晓 MDP 中的所有元素的。通常情况下,状态转移函数和奖励函数很难估计,甚⾄连环境中的状态都可能是未知的,这时就需要采⽤model-free学习。免模型学习没有对真实环境进⾏建模,智能体只能在真实环境中通过⼀定的策略来执⾏动作,等待奖励和状态迁移,然后根据这些反馈信息来更新⾏为策略,这样反复迭代直到学习到最优策略。总结:
有模型学习是指根据环境中的经验,构建⼀个虚拟世界,同时在真实环境和虚拟世界中学习。① 具有想象能⼒:在免模型学习中,智能体只能⼀步⼀步地采取策略,等待真实环境的反馈;⽽model-bad可以在虚拟世界中预测出所有将要发⽣的事,并采取对⾃⼰最有利的策略。
免模型学习是指不对环境进⾏建模,直接与真实环境进⾏交互来学习到最优策略。① 通常属于数据驱动型⽅法,需要⼤量的采样来估计状态、动作及奖励函数,从⽽优化动作策略。② 泛化性要优于有模型学习,原因是有模型学习算需要对真实环境进⾏建模,并且虚拟世界与真实环境之间可能还有差异,
这限制了有模型学习算法的泛化性。(DQN,DDPG,A3C,PPO)⾃⼰的理解:model-free:相当于在线学习,能获取⽤户真实反馈。model-bad:可以看作是建⽴了environment simulator。不过并不局限于此,关键是对环境转移概率建模。例⼦:① model-free ,⽐如Q-learning的思想,我只能估计在状态S的预估值V(S)是多少,但不知道我给了⼀个动作a后,环境会怎么变动。我们给⼀个动作a后,我们要等,要等!环境给出⼀个真实的S’后,我们才能估计下⼀步V(S’)。②model-bad ,建模了环境,特指:我们想象,在环境S下,当我们做出动作a后,它会(以多⼤概率)转移到状态S1,S2, S3,我们在S1,2,3处都有
V(S1),V(S2),V(S3)。于是这可以帮助我们更好的决策要不要做动作a。
⽬前,⼤部分深度强化学习⽅法都采⽤了model-free学习,这是因为:
1. 免模型学习更为简单直观且有丰富的开源资料,像 DQN、AlphaGo 系列等都采⽤免模型学习;
2. 在⽬前的强化学习研究中,⼤部分情况下环境都是静态的、可描述的,智能体的状态是离散的、可观察的(如 Atari 游戏平台),这
种相对简单确定的问题并不需要评估状态转移函数和奖励函数,直接采⽤免模型学习,使⽤⼤量的样本进⾏训练就能获得较好的效果。
P (s ∣s ,a )t +1t t R (s ,a )t t
奥林加不过IRS中,通常使⽤的是model-bad⽅法,模拟出⽤户、⽣成⽤户的,都能叫model-bad。主要是因为线上模拟太耗时了,也没有合适的数据集。
Exploration and Exploitation
探索是说我们怎么去探索这个环境,通过尝试不同的⾏为来得到⼀个最佳的策略,得到最⼤奖励的策略。
利⽤是说我们不去尝试新的东西,就采取已知的可以得到很⼤奖励的⾏为。
⽐如外出吃饭,exploitation就是选择之前吃过的感觉还不错的店;exploration就是选择⼀家新的没有吃过的餐厅。
透视图片>演出活动策划K-armed Bandit
单步强化学习模型:K-臂赌博机(K-armed bandit),也称多臂赌博机(Multi-armed bandit)
总结:
深度强化学习(Deep Reinforcement Learning):不需要⼿⼯设计特征,仅需要输⼊State让系统直接输出Action的⼀个end-to-end training的强化学习⽅法。通常使⽤神经⽹络来拟合 value function 或者 policy network。
强化学习的通俗理解?
答:environment 跟 reward function 不是我们可以控制的,environment 跟 reward function 是在开始学习之前,就已经事先给定的。我们唯⼀能做的事情是调整 actor ⾥⾯的 policy,使得 actor 可以得到最⼤的 reward。Actor ⾥⾯会有⼀个 policy, 这个policy 决定了actor 的⾏为。Policy 就是给⼀个外界的输⼊,然后它会输出 actor 现在应该要执⾏的⾏为。
肠炎宁片说明书
⾼冷的⾯试官: 根据你上⾯介绍的内容,你认为强化学习的使⽤场景有哪些呢?
答: 七个字的话就是多序列决策问题。或者说是对应的模型未知,需要通过学习逐渐逼近真实模型的问题并且当前的动作会影响环境的状态,即服从马尔可夫性的问题。同时应满⾜所有状态是可重复到达的(满⾜可学习型的)。
Model-free: 不需要知道状态之间的转移概率(transition probability);Model-bad: 需要知道状态之间的转移概率
第⼆章 MDP师范生实习自我鉴定
在马尔可夫决策过程中,它的环境是全部可以观测的(fully obrvable)。但是很多时候环境⾥⾯有些量是不可观测的,但是这个部分观测的问题也可以转换成⼀个 MDP 的问题。
Markov Process
Markov Property