强化学习第一章概述

it2023-05-11  73

强化学习(Reinforcement Learing )

关键词关键词智能体agent环境environment独立同分布independently identically distribution(iid)延迟奖励delayed Reward试错trial-and-error exploration探索exploration开发exploitation奖励信号reward signal深度强化学习Deeplearning reinforcement LearingHOG方向梯度直方图DPMDeformable Parts Model目标检测模型序列决策Sequential Decision Making全部可以观测full observability完全可观测fully observed部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes, POMDP)随机性策略stochastic policy()确定性策略deterministic policy(折现系数discount factor马尔科夫决策过程Markov Decision ProcessK-臂赌博机K-armed bandit多臂赌博机Multi-armed bandit)仅探索法(exploration-only)仅利用)法(exploitation-only探索-利用窘境Exploration-Exploitation dilemma)

强化学习讨论问题

一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励

强化学习应用案例

强化学习的特征

有trial-and-error exploation,需要通过探索环境获取对这个环境的理解强化学习agent会从环境里面获得延迟的奖励在强化学习训练过程中,时间非常重要,而在机器学习中,观测数据有非常强关联,会使训练变得不稳定 agent的行为会影响它随后得到的数据agent 的行为会影响它随后得到的数据。(在强化学习里面一个非常重要的问题是怎么让agent行为一直稳定的提高)

强化学习的意义

强化学习得到的模型可以取得可以取得超人类的结果,监督学习获取的这些监督数据大多是人标定的,那么我们就确定了这个算法的upper bound 上限,而强化学习,在环境里面探索,具有无限的可能性,拥有超越人类的可能性,如ALphago。

深度强化学习

强化学习是有一定的历史的,只是最近大家把强化学习跟深度学习结合起来,就形成了深度强化学习(Deep Reinforcemet Learning)。这里做一个类比,把它类比于这个传统的计算机视觉以及深度计算机视觉。

传统的计算机视觉由两个过程组成。你给一张图,我们先要提取它的特征,用一些设计好的 feature,比如说 HOG、DPM。提取这些 feature 后,我们再单独训练一个分类器。这个分类器可以是 SVM、Boosting,然后就可以辨别这张图片是狗还是猫。

2012 年过后,我们有了卷积神经网络,大家就把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类。它可以实现这种端到端的一个训练,它里面的参数可以在每一个阶段都得到极大的优化,这样就得到了一个非常重要的突破。

RL实例

DeepMind 研发的一个走路的 agent机械臂抓取OpenAI 做的一个机械臂翻魔方一个穿衣服的 agent ,就是训练这个 agent 穿衣服

序列决策过程

奖励

奖励是由环境给的一个反馈信号,这个信号指定了这个 agent 在某一步采取了某个策略是否得到奖励。强化学习的目的就是为了极大化 agent 可以获得的奖励,agent 在这个环境里面存在的目的就是为了极大它的期望积累的奖励。

决策

在跟环境的交互过程中,agent 会获得很多观测。在每一个观测会采取一个动作,它也会得到一个奖励。所以历史是观测、行为、奖励的序列: Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数

状态与观测

状态(state) 是对世界的完整描述,不会隐藏世界的信息。观测(observation) 是对状态的部分描述,可能会遗漏一些信息。在 agent 的内部也有一个函数来更新这个状态。当 agent 的状态跟环境的状态等价的时候,我们就说这个环境是 full observability,就是全部可以观测。换句话说,当 agent 能够观察到环境的所有状态时,我们称这个环境是完全可观测的(fully observed)当 agent 只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed)。在这种情况下面,强化学习通常被建模成一个 POMDP 的问题。注:**部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes, POMDP)**是一个马尔可夫决策过程的泛化。POMDP 依然具有马尔可夫性质,但是假设智能体无法感知环境的状态 ss,只能知道部分观测值 oo。

Action Spaces

不同的环境允许不同种类的动作。 在给定的环境中,有效动作的集合经常被称为动作空间(action space)。

像 Atari 和 Go 这样的环境有离散动作空间(discrete action spaces),在这个动作空间里,agent 的动作数量是有限的。在其他环境,比如在物理世界中控制一个 agent,在这个环境中就有连续动作空间(continuous action spaces) 。在连续空间中,动作是实值的向量。

Agent

agent的组成部分:

首先 agent 有一个 policy function,agent 会用这个函数来选取下一步的动作。
Policy

一种是 stochastic policy(随机性策略),当你输入一个状态 s的时候,输出是一个概率。这个概率就是你所有行为的一个概率,然后你可以进一步对这个概率分布进行采样,得到真实的你采取的行为。比如说这个概率可能是有 70% 的概率往左,30% 的概率往右,那么你通过采样就可以得到一个 action。

一种是 deterministic policy(确定性策略),就是说你这里有可能只是采取它的极大化,采取最有可能的动作。你现在这个概率就是事先决定好的。

强化学习一般使用随机性策略。随机性策略有很多优点:

在学习时可以通过引入一定随机性来更好地探索环境;

随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。

然后它也可能生成一个价值函数(value function)。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。

价值函数里面有一个 discount factor,我们希望尽可能在短的时间里面得到尽可能多的奖励。如果我们说十天过后,我给你 100 块钱,跟我现在给你 100 块钱,你肯定更希望我现在就给你 100 块钱,因为你可以把这 100 块钱存在银行里面,你就会有一些利息。所以我们就通过把这个 discount factor 放到价值函数的定义里面,价值函数的定义其实是一个期望。这里有一个期望 ,这里有个小角标是 π 函数,这个 π 函数就是说在我们已知某一个 policy function 的时候,到底可以得到多少的奖励。

Q 函数。Q 函数里面包含两个变量:状态和动作。所以你未来可以获得多少的奖励,它的这个期望取决于你当前的状态和当前的行为。这个 Q 函数是强化学习算法里面要学习的一个函数。因为当我们得到这个 Q 函数后,进入某一种状态,它最优的行为就可以通过这个 Q 函数来得到。

另外一个组成成分是模型(model)。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。

第三个组成部分是模型,模型决定了下一个状态会是什么样的,就是说下一步的状态取决于你当前的状态以及你当前采取的行为。它由两个部分组成,

- 一个是 probability,它这个转移状态之间是怎么转移的。 - 另外是这个奖励函数,当你在当前状态采取了某一个行为,可以得到多大的奖励。

当我们有了这三个成分过后,就形成了一个 Markov Decision Process。这个决策过程可视化了状态之间的转移以及采取的行为。

分类

根据强化学习 agent 的不同,我们可以把 agent 进行归类。

基于价值函数的 agent。这一类 agent 显式地学习的是价值函数,隐式地学习了它的策略。因为这个策略是从我们学到的价值函数里面推算出来的。基于策略的 agent,它直接去学习 policy,就是说你直接给它一个 state,它就会输出这个动作的概率。在这个 policy-based agent 里面并没有去学习它的价值函数。把 value-based 和 policy-based 结合起来就有了 Actor-Critic agent。这一类 agent 就把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。Q: 基于策略迭代和基于价值迭代的强化学习方法有什么区别?

A: 对于一个状态转移概率已知的马尔可夫决策过程,我们可以使用动态规划算法来求解;从决策方式来看,强化学习又可以划分为基于策略迭代的方法和基于价值迭代的方法。决策方式是智能体在给定状态下从动作集合中选择一个动作的依据,它是静态的,不随状态变化而变化。

在基于策略迭代的强化学习方法中,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。

而在基于价值迭代的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于行为集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。

基于价值迭代的强化学习算法有 Q-learning、 Sarsa 等,而基于策略迭代的强化学习算法有策略梯度算法等。此外, Actor-Critic 算法同时使用策略和价值评估来做出决策,其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。

另外,我们是可以通过 agent 到底有没有学习这个环境模型来分类。

第一种是 model-based(有模型) RL agent,它通过学习这个状态的转移来采取措施。 另外一种是 model-free(免模型) RL agent,它没有去直接估计这个状态的转移,也没有得到环境的具体转移变量。它通过学习 value function 和 policy function 进行决策。这种 model-free 的模型里面没有一个环境转移的一个模型。

我们可以用马尔可夫决策过程来定义强化学习任务,并表示为四元组 <S,A,P,R><S,A,P,R>,即状态集合、动作集合、状态转移函数和奖励函数。如果这四元组中所有元素均已知,且状态集合和动作集合在有限步数内是有限集,则机器可以对真实环境进行建模,构建一个虚拟世界来模拟真实环境的状态和交互反应。

具体来说,当智能体知道状态转移函数 和奖励函数后,它就能知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态,这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可。这种学习方法称为有模型学习。

有模型强化学习和免模型强化学习有什么区别?

A: 针对是否需要对真实环境建模,强化学习可以分为有模型学习和免模型学习。

有模型学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;

免模型学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。

总的来说,有模型学习相比于免模型学习仅仅多出一个步骤,即**对真实环境进行建模。**因此,一些有模型的强化学习方法,也可以在免模型的强化学习方法中使用。在实际应用中,如果不清楚该用有模型强化学习还是免模型强化学习,可以先思考一下,在智能体执行动作前,是否能对下一步的状态和奖励进行预测,如果可以,就能够对环境进行建模,从而采用有模型学习。

免模型学习通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。

免模型学习的泛化性要优于有模型学习,原因是有模型学习算需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型学习算法的泛化性。

有模型的强化学习方法可以对环境建模,使得该类方法具有独特魅力,即“想象能力”。在免模型学习中,智能体只能一步一步地采取策略,等待真实环境的反馈;而有模型学习可以在虚拟世界中预测出所有将要发生的事,并采取对自己最有利的策略。 目前,大部分深度强化学习方法都采用了免模型学习


强化学习的基本结构是什么?
1.本质上是Agent和Environment间的交互。 2.具体地,当Agent在Environment中得到当前时刻的State,Agent会基于此状态输出一个Action。 3.然后这个Action会加入到Environment中去并输出下一个State和当前的这个Action得到的Reward。 4.Agent在Environment里面存在的目的就是为了极大它的期望积累的Reward。
强化学习相对于监督学习为什么训练会更加困难?(强化学习的特征)
1.强化学习处理的多是序列数据,其很难像监督学习的样本一样满足IID(独立同分布)条件。 2.强化学习有奖励的延迟(Delay Reward),即在Agent的action作用在Environment中时,Environment对于Agent的State的奖励的延迟(Delayed Reward),使得反馈不及时。 3.相比于监督学习有正确的label,可以通过其修正自己的预测,强化学习相当于一个“试错”的过程,其完全根据Environment的“反馈”更新对自己最有利的Action。
强化学习中Agent的Action会影响它随后得到的反馈。近几年强化学习发展迅速的原因?
算力(GPU、TPU)的提升,我们可以更快地做更多的 trial-and-error 的尝试来使得Agent在Environment里面获得很多信息,取得更大的Reward。 我们有了深度强化学习这样一个端到端的训练方法,可以把特征提取和价值估计或者决策一起优化,这样就可以得到一个更强的决策网络。
强化学习的通俗理解
environment 跟 reward function 不是我们可以控制的,environment 跟 reward function 是在开始学习之前,就已经事先给定的。 我们唯一能做的事情是调整 actor 里面的 policy,使得 actor 可以得到最大的 reward。 Actor 里面会有一个 policy, 这个 policy 决定了actor 的行为。Policy 就是给一个外界的输入,然后它会输出 actor 现在应该要执行的行为。
最新回复(0)