Notes of Reinforcement Learning

Author: Ketan Doshi

Reinforcement Learning——Part 1:Intro to Basic Concepts and Terminology

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

Overview of RL

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

三种机器学习方式

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

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

To use RL, structure your problem as a Markov Decision Process(MDP)

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

An MDP iterates over a sequence of time steps

在每个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。

each episode ends in a Terminal State

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

Agent & Environment control the state-action transitions

Given a state, the Agent decides the action. Given an action(and state), the Environment decides the next state.

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

How does the environment transition to the next state?

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

Model Transition Matrix

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

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

●The reward.

How does the Agent pick the action?

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

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

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

Return

折扣因子的存在使得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。

Policy

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

agent take action according to the policy

在现实世界中,有诸多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中。

The State-Value Function maps a State to its Value

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

The State-Action Value Function maps a State-Action pair to its Value

Reward & Return & 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。

Solve the RL Problem by Finding the Optimal Policy

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

structure problem as MDP


Reinforcement Learning——Part 2:Solution Approaches

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

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

model-based:internal operation of the environment is known

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

model-free:environment is a black box

RL问题还可分为:prediction和control

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

prediction vs control problem

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

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

常见的RL算法

well-known RL solution

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

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

Bellman Equation

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

Work back from Terminal State

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

Reward when reaching a termianl state

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

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

一、Bellman Equation for Return

一般而言,从任何状态的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。

二、Bellman Equation for State-Value

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

三、Bellman Equuation for State-Action Value

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

Why is the Bellman Equation useful?

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


Reinforcement Learning Explained Visually (Part 3) :Model-free solutions, step-by-step

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 algorithm(as well as Policy-based)

①Initialize estimates

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

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

②Take an action

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

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


Exploration vs Exploitation

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

Exploration:Discover new paths by randomly picking an action

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

Exploitation:Pick the best action to maximize return

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

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

A policy-based approach to pick the best action

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

A vaue-based approach uses an ε-Greedy

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

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

③ Get feedback from the environment

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

④ Improve estimates

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

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


Putting it all together

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算法之间的关系与不同:

Reinforcement Learning Explained Visually (Part 4): Q Learning, step-by-step

概要:对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-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被一些数字填充,但这是被随即更新的,还是它们逐渐变得准确?

Why do estimates become more accurate over time?(part 1)

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

update formula

更新公式中的三项中有两项是最初不是很准确的估计,然而,有一项是所收到的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,也可能发生在未来的episode。

这一次表中的其他Q-value也被填满了values。当agent遵循各种路径开始访问state-action pair时,那些之前为0的单元格已经被value填充。

把我们对同一个单元格的所有访问布局在一个图片中,以可视化其随着时间的进展。 当我们在越来越多的episode中访问同一个state-action pair时,我们每次都会获得奖励。个体的奖励可能会波动,但随着时间的推移,奖励会趋于期望值。这使得Q-value也会随着时间的推移而收敛。

What the Q-value(or State-Action value) represents?从一个特定的state采取一个特定的action,然后遵循policy直到episode结束,然后返回继续测算。如果做了很多很多episode,那么Q-value就是所得到的平均return。

Why do estimates become more accurate over time?(part2)

我们已经看到了reward是如何在多次迭代中收敛于平均值或期望值的。但是更新公式中的另外两项是估计数而不是实际数据,虽然一开始并不准确,但是随着时间的推移,更新真实的观察结果,从而提高了它们的准确性。

为了了解这一点,来看一下每一个episode在到达终端状态时的最后两个时间步长中的一个例子。我们将看到的是,Terminal Q-value的准确性提高,因为它只更新real reward data and no estimated values。Q-value开始慢慢地回到之前的Q-value,以此类推,逐步提高Q-value返回路径的准确性。

将在episode结束时跟踪终端Q-value(蓝色单元格)和前终端Q-value(绿色单元格)的更新。

假设在第一个episode结束时, 在 (T — 1)ˢᵗ时间步长中,agent选择如下所述的一个action。Before-Terminal Q-value会根据目标action进行更新。

下一个时间步长时第一个episode的最后一步。在 Tᵗʰ的时间步长中,agent选择一个action来到达下一个state,即Terminal state。由于下一个state时Terminal state因此没有目标action,所以更新公式中的max项为0.这就意味着对Terminal Q-value的更新仅仅是基于实际的reward数据,而不依赖于任何估计值。这就使得Terminal Q-value的精确度得到了提高。这便结束了这一个episode。

每当我们在下一个episode中访问Before-Terminal state,也就是Episode 2,在 (T — 1)ˢᵗ的时间步长中,像之前一样根据目标action来更新Befor-Termianl Q-value。

更新公式中的“max”项对应于Terminal Q-value。因此,当更新时,这个就好像Terminal Q-value被向后传输到Befor-Terminal Q-value。

将这三个时间步长放在一张图片中,以可视化随着时间的进展。我们已经看到了Terminal Q-value(蓝色单元格)更新了实际数据,而不是估计。还可以看到Terminal Q-value返回Befor-Terminal Q-value(绿色单元格)。

随着进行越来越多的迭代,更准确的Q-value会慢慢地传输到路径上更远的单元格,随着每个单元格接受到更多更新,该单元格的Q-value会变得越来越准确。并且随着越来越多的episode被执行,Q-table中的values被多次更新。

尽管Q-value越来越准确,但是真正需要的Optimal Values要如何获得?

State-Action Value总是依赖于一个policy。Q-Learning算法隐式地使用ε-greedy来计算Q-value。这一方法鼓励agent尽可能多的探索state和action。它的执行迭代越多,探索的路径也越大,就越有信心agent已经尝试了所有可用的选项来找到更好的Q-value。因此,随着每次更新,Q-value逐渐变得更加准确,越来越接近optimal value。


Reinforcement Learning Explained Visually (Part 5): Deep Q Networks, step-by-step

DQN是当今强化学习中最具创新性的领域。我们逐步介绍这个算法。

Overview of Deep Q Networks

1. Q-table can handle simple problems with few states

Q Learning建立了一个State-Action的Q-table,维度(s,a),其中s是state的数量,a是action的数量。也就是说,Q-table将state和action pair映射到Q-value。

然而,现实世界中,state和action的数量非常大,制作完整的Q-table难以处理。

2. Use a Q-Function for real-word problems

为了解决这一局限性,我们使用Q-function而不是Q-table,它实现了将state-action pair映射到Q-value相同的结果。

3. Neural Nets are the best Function Approximators

由于神经网络在建模函数方面非常出色,因此可以使用一个神经网络来估计这个Q function,称之为Deep Q Network。该函数将一个state映射到可以从该状态中采取的所有action的Q value。

它学习网络的参数(权值),从而可以输出Optimal Q values。Deep Q Network的基本原理与Q-learning相似。它从任意的Q-value估计开始,并使用ε-greedy来探索环境。在其核心上,它使用了相同的双重action的概念,也就是当前的Q-value的当前action和目标Q-value的目标action,通过更新逻辑来改进其Q-value的估计。

DQN Architecture Components

DQN结构有两个神经网络,Q network和Target network,还有个组件称为 Experience Replay。Q network是经过训练来产生Optimal State-Action value。Experience Replay与环境交互,以生成数据来训练Q Network。

Q Network是一个相当标准的神经网络架构,如果state可以通过一组数值变量表示,那么可以像几层的线性网络结构一样简单。或者,若state的数据被表示为图像或文本,可以使用常规的CNN或RNN来架构。

Target Network 与 Q network相同。

High-level DQN Wworkflow

DQN在诸多episode中接收多个时间步骤的训练,它在每个时间步骤中经历一系列的操作:

These operations are performed in each time-step

1. Garther Training Data

放大第一个阶段:

Experience Replay 从当前的state中选择一个ε-greedy的action,在环境中执行它,然后返回一个reward和下一个state。

它将这个观察结果作为训练数据的样本。

2.接下来,放大下一阶段。

2.1. Q Network predicts Q-value

所有之前的Experience Replay的观察结果被保存为训练数据。现在从训练数据中随机抽取一批样本,这样他就包含了之前的和较新的数据样本的混合。然后将这批训练数据输入到两个网络中。Q network从每个数据样本中获取当前的state和action,并且预测该特定的action的 Q value。这是“Predicted Q Value”。

2.2.Target Network predicts Target Q-value

Taget Network 从每个数据样本中获取下一个state,并从该state中可以获取的所有action中预测最佳的Q value。这就是“Target Q Value”。

3. Compute Loss and Train Q Network

来自数据样本的“Predict Q Value”、“Taregt Q Value”和观察到的reward用于计算Train Q Network的损失。Target Network未经过训练。

如果我们从顺序操作中传递了一批数据,会发生这种情况吗?假设一个机器人学习在工厂车间导航的场景。在某个时间点,它正试图在工厂的一个特定角落找到自己的路径。接下来几个行动的所有action都将局限于工厂的那部分。如果网络试图从这批action中学习,它将更新权重,但它不会了解到关于工厂的其它部分的情况。若过一段时间,机器人移动到另一个位置,他所有的行动,以及网络的学习将只集中在那个新的位置。然后,他可能会撤销它从原来的位置学到的东西。

也就是说,顺序action彼此之间高度相关,而不是像网络所希望的那样被随机打乱,这就导致了一个灾难性的遗忘问题。这就是为什么引入Experience Replay的原因。agent从一开始就采取的所有action和观察都被存储了。然后从这个内存中随机选择一批样本。这确保了批处理被“打乱”,并包含来之前的和较新的样本数据的足够多样性,以及允许网络学习权重,从而推广到它需要处理的所有场景。

Why do we need a second neural network(Target Network)?

这个第二个网络并没有得到训练,这令人更疑惑。

首先,可以构建一个具有单一的Q Network。在这种情况下,我们通过Q Network进行两次传递,首先输出预测的Q value,然后输出Target Q value。但是这可能会造成一个潜在的问题,Q Network的权值在每个时间步长中都得到更新,从而提高了Predicted Q value。但是,由于网络以及其权重是相同的,便也改变了预测的Target Q value。它们并不保持稳定,但在每次更新后可能会产生波动。这就像是在追逐一个移动的目标。

通过使用第二个没有得到训练的网络,可以确保Target Q value在短时间内保持稳定。但这些Target Q values毕竟也是预测的,希望这些value能够改进,所以在预先配置的时间步骤之后,从Q Network学习到的权值复制给Target Network。

研究发现,使用Target Network可以获得更稳定的训练。

DQN Operation in depth

接下来了解DQN的详细操作。

首先,初始化网络:在环境中执行一些action,以引导重放数据。

用随机权值初始化Q Network,并将他们复制到Target Network。

然后,Experience Replay:从第一个时间步长开始,Experience Replay开始训练数据生成阶段,并使用Q Network来选择一个ε-greedy的action。Q Network与环境交互时充当代理,生成一个训练样本,在本阶段没有进行DQN的训练。Q Network预测了从当前state中可以采取的所有action的Q value。根据这些Q value来选一个ε-greedy的action。

样本数据(Current state, action,reward, next state )被保存。Experience Replay执行ε-greedy的action,并获得下一个state喝reward。

它将结果保存在replay data中。每一个这样的结果都是一个样本观察,稍后用作训练数据。

然后,select random training batch:现在开始训练DQN。从replay data中选择一批随机样本作为两个网络的输入。

使用样本数据中的current state作为输入来预测其所有action的Q value:为了简化解释,让我们从该批中跟踪单个样本。Q Network预测了从该状态中可以采取的所有action的Q value。

选择Predicted Q value:从输出的Q value中选择一个实例action的Q value。这是Predicted Q value。

使用样本数据中的next state作为Target netword的输入:从样本数据中获得next state输入到Target network中。Target network可以从预测next state中可采取的所有action的Q value,并且选择这些Q value的最大值。

获得Target Q Value:Target Q Value时Target Network的输出加上样本的reward。

然后。compute Loss:使用Target Q value和Predicted Q value之间的差值来计算均方误差损失。

3. ①Back-propagate Loss to Q-Network

利用梯度下降法反向传播loss并更新Q Network的权值。Target network没有经过训练并保持固定,因此没有计算损失,也没有进行反向传播。这就完成了这个时间步长的处理。

3.②No Loss for Target Network

Target Network没有经过训练,因此没有计算损失,也没有进行反向传播。

4.Repeat for next time-step

处理过程重复到下一个时间步骤。Q Network的权值已更新,但是Target Network的权重没有更新。这使得Q Network可以学习预测更加精准的Q value,而且目标Q value在一段时间内保持固定,因此不再是追逐一个移动的目标。

After T time-steps,copy Q Network weights to Target Network

在T个时间步长之后,将 Q network 的权值复制到 Target network。这使得 Target network得到了改进的权值,从而也可以预测更精准的 Q value。处理继续像以前一样。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,841评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,415评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,904评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,051评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,055评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,255评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,729评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,377评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,517评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,420评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,467评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,144评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,735评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,812评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,029评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,528评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,126评论 2 341

推荐阅读更多精彩内容