Notes of Reinforcement Learning

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notes of Reinforcement Learning相关的知识,希望对你有一定的参考价值。

参考技术A 概要:什么是RL问题,如何使用Markov Decision Processes的技术和return、value和policy等概念应用于RL的问题解决框架中。

机器学习一般是分为监督学习与无监督学习,然而,还有第三类——强化学习。

RL的不同之处:①There is no supervisor to guide the training;②Don't train with a large pre-collected dataset. 数据是通过与真实环境的互动的反馈得到的;③可在一系列时间步长上迭代地做出决定。

RL解决的问题:常用于解决不同类别的现实世界问题,如控制任务和决策任务,比如,驾驶无人机或自动驾驶车辆;操纵机器人导航环境并执行任务;管理投资组合做出交易决策;玩围棋、国际象棋、电子游戏等。

MDP共有5个部分:①agent:要操作的系统,比如机器人。就是想要使用RL来构建和训练的模型。②environment:与agent产生交互的环境,例如机器人导航的地形、周围的环境,如风、摩擦力等。③state:代表了在任何时候当前的“state of the world”,可以捕捉到机器人相对于其地形的位置,周围物体的位置以及风向和速度。state可作为一个有限或无限的状态集。④action:agent与environment交互时所采取的操作,例如机器人向右、向左、后退等。action也可作为一个有限或无限的动作集。⑤reward:agent因action在environment中获得的positive或negative的reinforcement,这是一种评估某一action好坏的方法。

在每个time-step中,state、action和reward用于描述在这个time-step中发生的事情。因此,MDP的执行被描述为在一系列time-steps中发生的轨迹。如:(s3,a3,r4,a4,r5,s5,a5,r6,s6)。

对于一个定义了结束状态的RL任务,从开始状态到结束状态的完整序列被称为一个episode。所以在一个episode结束时,将重置到一个starting state,然后继续另一个完整的episode,重复上述。每个episode都是互相独立的。

一个RL系统的操作会重复多个episode,一个episode会重复多个time-step。

同时,未定义结束状态的RL任务被称为Continuing Tasks,可永远持续下去,直到停止系统。

给定当前state,agent决定下一个action。事实上,这是agent唯一的工作。给定当前的state以及agent选择的下一个action,environment决定到下一个state的transition和reward。

重点任务是训练agent,通常将environment视为外部的黑盒。这个黑盒可能是环境的模拟器,许多情况下,构建模拟器并不实际,一般直接与真实环境交互。当MDP把环境视为一个大的transition probability matrix 或 function。

这一matrix将一对给定的state和action映射到:

●The next state, with some probability(Transition Probability).

●The reward.

这正是想要解决的RL问题。为此使用三个概念来讨论:

①Return:The Return is the total reward over all time-steps.

相比于individual reward,更加重视cumulative reward,称其为Return,是agent在任务持续期间积累的总奖励。当计算Return时,不是简单地将所有奖励加起来,而是应用一个折扣因子来衡量以后的rewards。这些reward被称为Discounted Rewards。

折扣因子的存在使得reward不会随着时间步长变得非常大而无限增长。同时也使得agent更加关注于即时的reward。基于这个discount,agent在评估reward时将考虑两个因素:即时reward比后续reward更重要;和能达成最高的total returns更好。

②Policy:Policy is the strategy followed to pick an action.

在一个给定的状态下,agent如何决定选择哪个action。agent可使用很多不同的strategy,如:随机选择下一action;选择下一个有最高reward的state;探索新的state已找到更好路径;尽量避免获得负面reward。

agent在给定的state,决定选择哪个action的任何的strategy成为Policy。Policy只是将给定的state映射到要采取的action中。

Policy像是一个巨大的lookup table(查找表格),将一个state映射到一个action。

给定当前的state,agent会在table中查找到该state,以找到应该选择的操作。

在现实世界中,有诸多state和action,因此可以尝使用一个函数来将state映射到action中。

Policy可以是确定性的,也可以是随机性的。确定性的就是agent在给定state下总是选择固定的action。随机性的Policy是指agent根据每个action的一些概率来选择改变action。

在agent可以遵循的所有policy中,需要选择一个最好的,即得到最高return的。因此,agent需要通过Value比较哪个policy来决定更好。

③value:The Value tells you the expected Return by following some Policy。

假设agent处于一特定状态下,且被赋予了一个Policy Π。现在,如果agent从改状态开始,且总是基于该policy选择action,那么它在policy Π下,得到的average long-term Return(平均长期回报)或expected Return(预期回报),被称为该特定state的值。或者,agent也可以从一个特定的state-action pair(状态-特征对)开始。因此有两种Value:

●State-Value:通过基于从该state开始的给定策略Π执行action所得到的expected Return。换言之,state value 函数将一个state映射到它的Value中。

●State-Action Value(又称 Q-Value):通过从给定的state执行给定的action,然后基于给定的policy Π执行action。换言之,State-Action Value 函数将一个State-Action pair 映射到Value中。

①reward时对一个action所获得即时的奖励;②return是一个episode结束前所获得的discounted rewards的总和;③value是许多episode的平均return或预期return。

对于两个的policy,可以通过State-Value或State-Action Value为每一个policy确定其returns。

根据所得的Value Function来比较,更高的意味着其policy更好。最好的policy被称为Optimal Policy。

将问题构建为MDP,通过构建一个agent来解决问题。为agent找到optimal policy,便可以简单地根据policy从任何state中选择action。

RL问题可分为:model-based和model-free。

model-based是在已知环境的内部操作时使用,即,当从某些当前state执行某些action时,环境将输出哪一个state和reward。

model-free是当环境复杂且其内部动态不知道时使用,将环境作为一个黑盒。

RL问题还可分为:prediction和control

prediction问题是给出一个policy作为输入,目标是输出相应的value function。这个function不一定是optimal policy。

control问题是不需要提供输入,其目标是探索policy空间,找到optimal policy。

大多数实际问题是控制问题,因为需要找到最优的策略。(然而笔者要用的prediction的问题哈哈哈哈哈哈)

大多数的现实问题都是model-free,因为环境通常很复杂,无法构建模型。model通过与环境的互动来观察环境。

当agent执行每一步时,都将遵循一条路径。agent的轨迹是算法的“训练数据”。

Bellman Equation 是RL算法的基础,该方程有多种形式,但都是基于相同的基本思想。

Work back from Terminal State

想象从一个state中采取action达到一个terminal state得到的reward。

从该state得到的return和采取该action得到的reward是相同的。注意,reward是通过一个action来获得的,而return是从该state开始获得的cumulative discounted reward(累计折扣奖励,直到episode结束)。

现在考虑到之前的state S6。从S6得到的return是通过采取action达到S7获得的discounted return的奖励,加上将从S7获得的任何discounted return。重要的是,我们不再需要知道在S7之后所采取的各个步骤的细节。

一般而言,从任何状态的return可分为两个部分:①the immediate reward from the action to reach the next state(到达下一state的即时奖励);②the Discounted Return from that next state by following the same policy for all subsequent steps(所有后续步骤遵循相同的policy从下一state获得的折扣return)。这种递归关系成为Bellman Equation。

return是对单一路径的折扣奖励。State-Value是通过取多个路径上的返回值的平均值。因此,State-Value可类似地分解为两个部分:①从下一个action到达下一个state的即时reward;②按照所有后续步骤的policy进行的下一个state的 Discounted Value。

类似地,State-Action Value 可被分为两部分:①该action到达下一个state的即时reward;②所有根据policy在后续所有步骤中的下一个state的 Discounted Value。

通过Bellman Equation可以得到两个关键的结果:①可在episode结束之前递归地算出Return;②有两种方式计算:Return from the current state;Reward from one step plus the Return from the next state。由于测量某个state直到episode结束是非常expensive,因此使用估计值,用两种方法计算这些估计值,通过比较这两个结果来检查估计值的正确性。因为这两种计算的结果可能不相等,那么就可以通过减少存在的误差来改进估计。这两个结果是所有RL的关键。

model-free算法可以是policy-based或者是value-based。

如图示例:

如果Q1*>Q2*,则optimal policy将会在S1中选择action a1。

因此,Π1*=1,Π2*=0。

如果两个Q-value之间存在联系,那么optimal policy可能是随机的。在这种情况下,Optimal policy以等概率选择两个action中的一个。

State-Value-based 用于预测问题

除了上述用于解决控制问题的State-Action Value-based算法外,还有用于预测的State-Value-based算法。换言之:①预测问题是State-Value based;②控制l问题要么是State-Action Value-based,要么是Policy-based。

model-free算法可如下分类:

RL算法不能使用代数方法来解决,需要使用迭代算法。

作者在深入研究算法细节时,发现它相当令人困惑,然鹅,他开始意识到这些算法可归结为它们所采用的几个基本原则。如专注于学习这些算法的原则便会很容易去理解这些算法是如何互相关联的,以及它们的相似之处。后续章节将会看到通用原则如何被应用。

所有的算法,Value-based 和 Policy-based都可以执行四个基本操作。他们首先对想要找到的数据进行任意地估计,然后通过从环境中获取数据来逐步改进这些估计。如下图所示。

第一步是初始化估计。Value-based算法使用估计的Optimal State-Action Value table,而Policy-based算法使用的是估计的Optimal Policy table。

一开始,由于不知道正确的value,因此所有内容初始化为0。

接下来,agent需要从当前state中选择一个需要执行的action。

ageht希望确保自己充分地尝试了所有可用的路径,以便找到更好的路径,并且不会错过最好的选择,How?为了解决这个,我们需要明白Exploration和Exploitation的概念。

Exploration:第一次开始学习的时候,并不知道哪些action是good哪些是bad,因此需要随机尝试不同的action并观察reward的发现过程。

Exploitation:当已经探索了所有可能的action后,选择能够产生最大回报的最佳action。

agent需要在Exploration和Exploitation中找到正确的平衡。Policy-based和Value-based使用不同的方法来实现。

Policy-based的agent的Policy Table已对optimal policy进行了持续的估计,会得到给定state中可以采取的所有action的期望概率。因此,它只是根据估计的optimal policy的概率来选择一个action。一个action发生的可能性越高,被选中的可能性就越大。

Value-based的agent采用ε-Greedy的动态策略。它使用一个探索率ε,随着训练的进展进行调整,并在后续阶段转向更多的exploitation。

最初将ε设置为1,然后,在每一个episode的开始,以一定的速率衰减ε。每当agent在每个state下选择一个action时,他就会选择一个随机的action与概率ε。由于ε在早期阶段较高,因此agent会更倾向于exploration。

同样的,exploitation的概率为1-ε,将更倾向于选择最好的action。

agent会采取所选择的action,并从环境中获得反馈(以reward的形式)。

Policy-based 更新action的可能性:agent说“如果我得到了一个积极的奖励,那么我会更新我的policy-table,以增加刚刚采取的行动的可能性。这样,下次就更有可能采取这个行动了。”

Value-based 根据Bellman Equation更新其value。agent说“我之前的估计值告诉我,这个action会有这么大的value。基于刚刚得到的reward,Bellman Equation告诉我,我的value应该更高,我应该更新我的 value table以减少这个差距。”

agent已经改进了估计值,这就是完成了这四个操作的流程。算法会一直做到该episode结束,然后再重新开始一个新的episode并重复。

改进估计值的不同的方法:该算法的核心是如何改进其估计值。不同的算法使用了不同的技术来做到这一点。这些变化主要与三个因素有关:①Frequency:在更新前所采取的前进步骤的数量;②Depth:将更新传播的向后的步骤数量;③Formula:用于计算更新的估计值。

①Frequency:在更新估计书之前,agent可以采取的前进步骤的数量有三个选项:Episode——简单而言,就是它采取一个action,观察reward,然后采取另一个action,观察这些reward并保存它们,并一直这样做直到episode结束。该算法获取所有这些reward,并使用他们来更新我们的估计。One Step——或者,我们不是等到我们一直到episode结束,我们可以只走一步,观察这些reward,并立刻更新。N Step——以上两种时两种边界项,在这两者之间,我们可以在N步之后进行更新。

②Depth:在采取了一些向前的步骤之后,下一个问题就是算法应该传播其更新估计多深,也有三个选择:Episode——如果agent采取步骤直到episode结束,算法可以更新其过程中采取的每个state-action pair的估计。One Step——也可以指更新当前的state-action pair的估计。N-step——在以上两种的中间,我们可以选择更新N个步骤对。

在采取了一些前馈操作后,算法更新所采取的 state和action的估计。这可能是当前state-action对的每一个单步,N步,或者直到这一episode的开始。

③Updata Formula:

用于更新估计数的公式有很多,Value-based更新使用了一些类似贝尔曼方程的来更新具有“error”的Q值,这个公式用一个称为TD Error的误差值增量地更新Q-value的估计。Policy-based的更新增加或减少了agent采取行动的概率,者给予我们是否获得了良好的reward。

各个model-free算法之间的关系与不同:

概要:对Q Learning进行深入分析,是后续深度学习算法的基础。凭借直觉去了解该算法为什么会收敛到最优值。

Q Learning是之前讨论过的基于查找表的方法有趣的一种,因为它是Deep Q Learning的基础。Q-Learning算法使用State-Action Values,该表格的行为每一个state,列为每一个action。每个单元格表示对应的state-action pair的估计Q-value。

首先将所有的Q-value初始化为零。当agent与环境交互并获得反馈时。算法迭代地改进这些反馈的Q-value直到它们收敛于最优Q-value。使用Bellman Equation来更新它们。

例子: 有一个3×3的网格,玩家从开始方块开始,到达目标方块作为最终目的地,在那里有5分的奖励。有些方块包含Danger,reward分别为0分和-10分。在任何一个正方形中,玩家可以采取的action有:Left,Right,Up,Down。

这一问题包含有9个状态,因为玩家可到达这9方格中的任何一个。它一共有4个动作,所以构造了一个9行4列的Q-table。

首先将所有的Q-value初始化为0。正如所看到的那样,Q-Learning通过学习每个State-Action pair的最优Q-value来找到optimal policy。

Q-Learning 的总体算法流程:首先,agent会随机选择action,当agent与环境互相作用时,它会根据自己获得的reward来学习哪些action更好。它使用这种经验来逐步更新Q-value。

这一流程与prat 3中介绍的很相似。所以我们不会再重复对步骤及逆行介绍。

这是Q-Learning的关键标志,区别在于它如何更新其估计。在第四步中用于更新的方程是基于Bellman Equation,但仔细观察,它使用了我们之前研究过的公式进行了细微的变化。放大这个流程,来详细地检查这一点。

Q-Learning在每个时间步中使用两个不同的action

在算法的步骤#2中,agent使用ε-greedy策略从当前状态(S1)中选择action(a1),这是它传递给环境来执行的action,并且以reward (R1)和下一个state(S2)的形式得到反馈。

现在,对于步骤#4,算法必须使用来自下一个state的Q-value,以便更新当前state和所选择的action的估计Q-value(Q1)。

这就是Q-Learning的技巧之处。下一个state有几个action,agent使用哪个Q-value呢?它采取的是Q-value最高为Q4的action(a4)。注意,它将此action视为仅用于Q1更新的目标action。当它到达下一个时间步骤时,他不一定是从下一个state执行的action。

现在它已经确定了目标Q-value,它使用更新的公式来计算当前的Q-value的新值,使用reward和目标Q-value...

...并且更新当前的Q-value。

换言之,这涉及到两个action:

①Current action:来自环境中实际执行的当前state的、其Q-value将被更新的action。

②Target action:具有来自下一个state的最高Q-value,并且用于更新Current action的Q-value。

这种action的二元性是Q-Learning的独特之处。可以探索和发现所执行action的新路径。然而,当我们更新Q-value的估计值来改进它们时,总是使用最佳的Q-value,即使该操作可能不会被执行。

用于更新current action却可能不被执行的target action,听起来有些困惑,所以进入下一个时间步骤,看看会发生什么。

现在,下一个state已经成为了新的current state。agent再次使用ε-greedy来选择一个action。如果它最终是exploring(尽可能多的尝试action)而不是exploiting(选择最好的action),那么agent执行的action(a2)将与上一个时间步骤中用于Q-value更新的target action(a4)不同。

这被称为“off-policy”学习。因为所执行的action和用于学习的target action不同。

在游戏开始时,agent不知道哪个action比其他的要好。所以首先给出所有的Q-value任意的估计值,将Q-table所有项都设置为0。看看第一个时间步骤中发生的实例,可视化Q-table是如何用实际值填充的。

然后算法选择一个ε-greedy的action,从环境中获得反馈,并使用公式更新Q-value,如下所示。这个新的Q-value反映了所观察到的reward。

通过这种方式,Q-table中的一个单元格已经从零值变成了来自环境的一些真实数据。我们的目标是让Q-value收敛于他们的最优值。那么这些Q-value被一些数字填充,但这是被随即更新的,还是它们逐渐变得准确?

仔细想想,像Q-learning这样的算法收敛于最优值似乎令人难以置信。从任意估计数开始,然后在每个时间步骤中,用其他的估计数更新这些估计数,为什么这最终得到更好的估计数呢?其原因在于,在每一个时间步骤中,估计都将变得更精准一些,因为他们通过真实的观察来更新。更新公式以一定的加权比例结合了三项:①current action的reward;②下一个state-action的最佳估计Q-value;③当前state-action的估计Q-value。

更新公式中的三项中有两项是最初不是很准确的估计,然而,有一项是所收到的reward是具体的数字,这使得agent能够根据环境的实际经验来学习和改进其估计。

The Q-table gets update with real rewards

为了清楚地看到这一点,举例说明。只关注Q-table中的一个单元格(state-action pair),并跟踪对该单元格的更新进程。

观察state S3和action a1(图中的橙色单元格)的Q-value随着时间的推移会发生什么变化。当第一次访问它的时候,这个单元格的Q-value为0。使用更新公式后,会用一个很大程度上基于所观察到的reward(r1)的值来更新这个单元格。

现在观察,当再次访问这个state-action pair时会发生什么。这件次访问可能会发生在同一个episode

Notes: Principles of fMRI 2 (Coursera)

course link: https://class.coursera.org/fmri1-001

? T1 time

WM = 600;

GM = 1000;

CSF = 3000.

 

? Time term

TR: how often we excite the nuclei;

TE: how soon after exciation we begin data collection.

以上是关于Notes of Reinforcement Learning的主要内容,如果未能解决你的问题,请参考以下文章

?????????Applications of Reinforcement Learning in Real World

To discount or not to discount in reinforcement learning: A case study comparing R learning and Q le

论文笔记:Honor of Kings Arena: an Environment forGeneralization in Competitive Reinforcement Learning

Power of Two Choices 负载均衡

Reinforcement Learning by Sutton 第三章习题答案

Notes: Principles of fMRI 2 (Coursera)