Deep Reinforcement Learning


1. 基础数学知识

1.1 Random Variable

随机变量是一个未知的量,随机变量的值取决于一个随机事件的结果。通常用大写字母 基本概念 - 图3 代表随机变量。

  • Random variable: unknown; its values depends on outcomes of a random event.
  • Uppercase letter 基本概念 - 图4 for random variable.

比如拿抛硬币举例:正面向上记为0, 反面向上记为1。抛硬币是一个随机事件,其结果记为一个随机变量 基本概念 - 图5。随机变量基本概念 - 图6 有两种取值:0 或者 1。在事件发生之前,无法知道 基本概念 - 图7 的取值,但是随机事件的概率是知道的:正面向上事件发生的概率为0.5,反面向上事件发生的概率也为0.5。
image.png
用小写字母 基本概念 - 图9 表示随机变量的观测值。用大小写来区分大小写与其观测值。
Lowercase Letter 基本概念 - 图10 for an observed value.

当随机事件结束,会观察到硬币的哪一面朝上,该观测值就记为 基本概念 - 图11。比如:我们抛4次硬币,其观测值为:
基本概念 - 图12
这些观测值 基本概念 - 图13 只是一个数,没有随机性。

1.2 Probability Density Function(PDF)

PDF provides a relative likelihood that the value of the random variable would equal that sample.
PDF提供随机变量的值等于该样本值的可能性。

高斯分布也叫正太分布,是一个连续的分布函数,随机变量的取值可以是任何一个实数,其概率密度函数:
基本概念 - 图14
其中,基本概念 - 图15 是均值,基本概念 - 图16 是标准差。
image.png
横轴为随机变量 基本概念 - 图18 的取值,纵轴是概率密,曲线为高斯密度函数基本概念 - 图19

如果是离散的概率分布,只能取值基本概念 - 图20,概率密度函数为:
基本概念 - 图21
image.png
假设随机变量基本概念 - 图23的定义域为基本概念 - 图24

  • 对于基本概念 - 图25是连续的概率分布,可以对基本概念 - 图26做定积分,
    • 基本概念 - 图27
  • 对于基本概念 - 图28是离散的概率分布,可以对基本概念 - 图29做求和:
    • 基本概念 - 图30

      1.3 Expectation

      对于连续的概率分布,基本概念 - 图31 的期望是:
      基本概念 - 图32
      对于离散的概率分布,基本概念 - 图33的期望是
      基本概念 - 图34

      1.4 Random Sampling

      箱子中10个球,2个红球,5个绿球,3个蓝球。打散之后,随机拿出一球,会是什么颜色?
      There are 10 balls in the bin: 2 are red, 5 are green, and 3 are blue. Randomly sample a ball. What will be the color?

在摸到一球之前,颜色是随机的,这就是该问题的随机变量 基本概念 - 图35,其有三种不同的取值 红、绿、 蓝 。摸出球来一看,球是红色的,这时候随机变量基本概念 - 图36 就有了观测值 基本概念 - 图37

上述流程就是一次随机抽样:在箱子中随机拿出一个球,并且观测到其颜色。

箱子中有很多球,也不知道具体有多少个球,但是取出红色球的概率为0.2,取出绿色球的概率为0.5, 求出蓝色球的概率为0.3,问随机取出一个球是什么颜色?
Sample red ball w.p. 0.2, green ball w.p. 0.5, and blue ball w.p. 0.3. Randomly sample a ball. What will be the color?
image.png
使用numpy模拟随机抽样

2. Terminologies(术语)

2.1 state(状态)and action(动作)

拿超级玛丽游戏举例。
image.png
可以把当前帧作为 state ,玩家根据当前帧的状态 state 对马里奥做出相应的动作 action 。马里奥可以做三种不同的动作: upleftright 。马里奥被叫做 agent 智能体。动作 action 是由谁做的,谁就是 agent

2.2 policy(策略)

image.png
policy :玩家对于当前画面,需要让马里奥做出什么动作。根据观测到的当前状态 **state** ,然后做出决策,然后控制 agent 运动。
**
policy 基本概念 - 图41函数 是一个概率密度函数,基本概念 - 图42,给定状态 state ,做出动作 action 基本概念 - 图43 的概率密度。

对于上述图中的当前帧的画面, agent 可以做出三种不同的 action 中的一种。把当前帧 state 输入进 policy 函数基本概念 - 图44中,该函数会告诉我:给定当前 state 后,向左的概率为0.2;向右的概率为0.1;向上的概率为0.7。
基本概念 - 图45
基本概念 - 图46
基本概念 - 图47
如果让 policy 自己做出选择,就会随机抽样进行选取,三种动作都有可能发生,但是向上跳的动作发生的概率会更大。强化学习的目的就是学习得到 policy 基本概念 - 图48函数。

该例子中的 agentaction 是随机的,是根据 policy 输出的概率做动作 action 。当然也有确定的 policy ,这样的话动作是确定的。如果是个人博弈,最好动作是随机抽样得到的,如果动作是确定的,就有规律可循,别人就有办法根据这个规律赢。

2.3 Reward(奖励)

image.png
agent 做出动作 action ,游戏会给 agent 一个奖励 reward ,这个奖励通常需要我们自己来定义。 reward 定义的好坏非常影响强化学习的结果。强化学习的目标就是获得的总奖励最多。

2.4 state transition(状态转移)

image.png

在当前状态 state 下, agent 会做出一个 action ,游戏就会给定一个新的状态 state 。比如:马里奥跳一下,画面就不一样了,就有了新的当前帧 state

状态转移既可以是确定的,也可以是随机的,但是通常设置为随机的,状态转移的随机性是从 environment 来的。 environment 在这里就指的是游戏程序,游戏程序决定了下一个状态是什么。

如果根据当前 stateagent 做出了 upaction ,这是确定的,但是敌人 Goomba 可能往左走,也可能往右走,方向随机这就造成了下一个状态的随机性。状态转移方程用 基本概念 - 图51 表示,该函数是条件概率密度函数。在给定当前 state ,以及 action 基本概念 - 图52 ,状态 基本概念 - 图53 的发生的概率是多少。

该画面中的状态转移的概率不同,向左走的概率为0.8,向右走的概率为0.2。这个状态转移函数只有environment知道,玩家是不知道的。

2.5 agent environment interaction

image.png
agent 是马里奥, environment 是程序本身。状态 state 基本概念 - 图55environment 决定的。在超级玛丽中,可以把当前帧看做是 state 基本概念 - 图56Agent 接收到一个 state 基本概念 - 图57 后要做出一个动作 Action 基本概念 - 图58agent 做出动作之后, environment 会更新状态为 基本概念 - 图59,同时 environment 还会给 Agent 一个奖励 reward 基本概念 - 图60

3. Randomness in Reinforcement Learning

强化学习中的两个随机性。
image.png
第一个随机性来源于 agentactionaction 是根据 policy 基本概念 - 图62 函数随机抽样的到的。policy 函数控制 agent 。给定当前状态 sagent 的状态A是根据 policy 基本概念 - 图63 函数输出的概率来随机抽样得到的。可以做任何动作,但是做不同动作的概率是不同的。
image.png
第二个随机性来源于状态转移 **state transitions** 。假设 agent 做出了动作A, environment 就要生成下一个状态基本概念 - 图65基本概念 - 图66具有随机性, environment 用状态转移函数 基本概念 - 图67计算得出概率,然后用概率随机抽样得到下一个状态基本概念 - 图68。比如下一个状态也有两种可能,根据状态转移函数 基本概念 - 图69 的计算,两种可能的概率分别为0.8,0.2。这两个都可能成为下一个状态,系统会随机抽样得到下一个状态。

4. Play the game using AI

image.png
如何打赢游戏呢?
我们通过强化学习得到 policy 基本概念 - 图71 函数,AI就是使用Policy函数来控制agent,
观测到游戏当前状态state,AI程序用Policy函数来计算每个action的概率,然后随机抽样得到一个action a_1

环境又会观测到下一个状态s_2,并且给agent一个奖励。AI继续拿新的状态作为输入,继续个policy函数计算概率,随机抽样得到action a_2,一直循环下去,只到游戏结束。

我们得到了游戏的trajectory轨迹。由state action reward组成

3. Rewards and Returns

Definition:Return (aka cumulative future reward)
定义:回报(又名:累积未来奖励)。我们把基本概念 - 图72时刻的 Return 记做基本概念 - 图73,其值为将 基本概念 - 图74 时刻开始的奖励全部加起来,一直加到游戏结束。
基本概念 - 图75

问题:基本概念 - 图76基本概念 - 图77 同等重要吗?
Question: Are 基本概念 - 图78 and 基本概念 - 图79 equally important?

  • Which of the followings do you prefer?
    • I give you $100 right now. ☆[BINGO!] √
    • I will give you $100 one year later.

因为未来不确定性很大,所以现在奖励的重要性比较高。

  • Future reward is less valuable than present reward.
  • 基本概念 - 图80 should be given less weight than 基本概念 - 图81.

由于未来的奖励没有现在的奖励重要,所以强化学习中普遍使用折扣回报 discounted return
Definition: Discounted return (aka cumulative discounted future reward).

  • 基本概念 - 图82 : discount rate(tuning hyper-parameter); 基本概念 - 图83
  • 基本概念 - 图84

我们来看一下 return 基本概念 - 图85的随机性。
image.png
假如游戏结束,所有的奖励都观测到了,那么奖励都是数值是观测值,用小写字母表示,但是如果在 基本概念 - 图87 时刻,游戏没有结束,这些奖励还全都是随机变量,没有全部观测到,就用大写字母基本概念 - 图88 表示奖励。
基本概念 - 图89
return 基本概念 - 图90 依赖于奖励基本概念 - 图91 ,所以 基本概念 - 图92 也为随机变量,用大写字母表示。随机性有两个来源:

  1. action 基本概念 - 图93policy 基本概念 - 图94 函数用当前状态 state 作为输入,输出一个概率分布, action 基本概念 - 图95 就是从这个概率分布中随机抽样得到的。
  2. New state :给定当前 stateaction 基本概念 - 图96,状态转移函数 基本概念 - 图97 输出一个概率分布, environment 从这个概率分布中随机抽样得到下一个新的状态 基本概念 - 图98

对于任意未来时刻 基本概念 - 图99 ,奖励基本概念 - 图100 会取决于 基本概念 - 图101。在游戏中,根据当前状态 state ,马里奥做出动作 actionenvironment 就会给 agent 一个奖励 reward :吃到金币得到+1的正奖励,向右走碰到怪物,就会得到-10000的负奖励。

return 基本概念 - 图102基本概念 - 图103 奖励的加权求和。每个奖励又都和状态 state 和 动作 action 相关,那么 基本概念 - 图104 就会跟从 基本概念 - 图105 时刻开始,未来所有动作 action 和状态 state 有关。因此,给定基本概念 - 图106, return 基本概念 - 图107依赖于如下的随机变量:基本概念 - 图108

4. Value Functions

4.1 Action-Value Funcion 基本概念 - 图109

image.png
定义 Discounted Return 基本概念 - 图111:未来奖励的总和。越往后的奖励重要程度越低,所以要加上权重。 agent 的目标就是让 基本概念 - 图112 越大越好。基本概念 - 图113是随机变量,其依赖于之后所有的动作 action 和状态 state

由于 基本概念 - 图114 是随机变量,在 基本概念 - 图115 时刻我并不知道 基本概念 - 图116 的具体值。那该怎么样评估当前的形式呢?对 基本概念 - 图117 求期望。将随机性用积分挤掉。得到的就是实数。

举例:抛硬币之前你不知道结果如何,但是正反面各有一半的概率,如果正面记做1,反面记做0,那么期望就是0.5

同理,对 基本概念 - 图118 求期望,就可以得到一个实数基本概念 - 图119。期望是如何求取的呢?

基本概念 - 图120 当做对未来所有动作 action 基本概念 - 图121 和所有状态 state 基本概念 - 图122 的函数。未来的状态和动作都有随机性。动作 action 基本概念 - 图123 的概率密度函数是 policy 基本概念 - 图124 函数。状态 state 基本概念 - 图125 的概率密度函数是状态转移函数 基本概念 - 图126。期望就是对未来的状态 state 基本概念 - 图127 和 动作 action 基本概念 - 图128 求的,这些随机变量可以用积分去掉,剩下基本概念 - 图129基本概念 - 图130。其余的随机变量都被积分掉了。

基本概念 - 图131被称为:动作价值函数 Action-value function 。其与当前状态 state 基本概念 - 图132 和 动作 action 基本概念 - 图133 有关。基本概念 - 图134基本概念 - 图135是观测值而不是随机变量,所以积分没有积掉这两部分。还与 policy 基本概念 - 图136 函数有关,因为积分的时候会用到 policy 基本概念 - 图137 函数。

基本概念 - 图138是一个实数,该数值可以衡量在 policy 基本概念 - 图139 函数下,在当前状态 state 做当前动作 action 是好是坏。已知 policy 基本概念 - 图140 函数,基本概念 - 图141就会给当前状态下所有动作打分,就知道哪个动作好。
image.png
用不同的 policy 基本概念 - 图143 函数就会有不同的基本概念 - 图144,如何将基本概念 - 图145中的 基本概念 - 图146 去掉呢? 对基本概念 - 图147关于基本概念 - 图148函数取最大值,使用最好的policy 基本概念 - 图149 函数:让 基本概念 - 图150 最大化的的 policy 基本概念 - 图151 函数。

这样基本概念 - 图152只与当前状态 state 基本概念 - 图153和动作 action 基本概念 - 图154 有关,直观意义为:给定当前状态下,动作基本概念 - 图155的评分。

4.2 State-Value Function 基本概念 - 图156

image.png
基本概念 - 图158action-value function 基本概念 - 图159的期望。把 action A 当做随机变量,对 A 求取期望,将 A 消掉,基本概念 - 图160基本概念 - 图161 和 状态 state 有关。

基本概念 - 图162可以告诉我们当前局势状态好不好。比如:我们根据 policy 函数基本概念 - 图163 下围棋,基本概念 - 图164就可以判断一下当前局势:是我快赢了还是不想上下。

这期望是关于随机变量 A 求的, A 的概率密度函数是 基本概念 - 图165,根据期望的定义,可以写成连加或者积分的形式:如果动作是离散的,那么期望可以变成连加的形式;如果动作是连续的,那么期望可以变成积分形式。

4.3 Understanding the Value Functions

image.png
主要有两种 value-functions

  • Action-value function基本概念 - 图167policy 基本概念 - 图168函数、当前状态 state 、当前动作 action 有关,是对基本概念 - 图169的条件期望。基本概念 - 图170是随机变量,等于未来所有奖励的加权求和。
    • 基本概念 - 图171表示:如果使用 policy 函数 π, agent 处于状态基本概念 - 图172时,做出动作基本概念 - 图173是否明智,给动作基本概念 - 图174打分。
  • State-value function :将基本概念 - 图175中的变量A用积分去掉,这样变量只剩下状态基本概念 - 图176
    • 基本概念 - 图177 是固定的,可以评价当前状况是好是坏。那么状态基本概念 - 图178越好,基本概念 - 图179的数值越大
    • 还能评价 基本概念 - 图180 函数的好坏,基本概念 - 图181越好,基本概念 - 图182的平均值越大

      5. How does AI control the agent?

      image.png
  1. 学习 policy 函数 基本概念 - 图184Policy-Based Learning
    1. 基本概念 - 图185 函数控制 agent 做动作,没观测到一个状态基本概念 - 图186,就将 基本概念 - 图187 作为policy 函数 基本概念 - 图188 的输入,π函数输出每个动作的概率,对这些概率进行随机抽样得到动作基本概念 - 图189
  2. 学习最优动作价值函数:Value-Based Learning
    1. 假如有了基本概念 - 图190函数, agent 就可以根据其做动作。其意义是:如果处于状态 state 基本概念 - 图191,做动作基本概念 - 图192 是好是坏。
    2. 每观测到一个状态基本概念 - 图193,将其作为基本概念 - 图194函数的输入,让基本概念 - 图195对每个动作做一个评价,选择基本概念 - 图196最大的值所对应的动作。基本概念 - 图197值是对未来奖励总和的期望值,基本概念 - 图198值大的动作会获得更多的奖励。
    3. 有了基本概念 - 图199函数,选择使基本概念 - 图200函数最大的动作基本概念 - 图201 作为下一个动作基本概念 - 图202

      6. Summary

      image.png
      agent 是动作 action 的执行者, agent 可以跟 environment 交互, environment 就是游戏程序本身, agent 可以做出 actionenvironment 会更新状态 state ,并且给 agent 一个奖励 reward

观测到当前状态 state 基本概念 - 图204policy 基本概念 - 图205函数会输出概率分布,计算每个动作的概率,然后随机抽样得到一个 agent 所做动作。
state transition 状态转移函数我们玩家是不知道的,只有 environment 是知道的, environment 根据状态转移函数 基本概念 - 图206 来随机抽样选择下一个状态。

Return 基本概念 - 图207是对未来所有奖励的加权求和,需要 Return 基本概念 - 图208越大越好,基本概念 - 图209是随机变量,随机性来自未来所有的动作和状态,由于其随机性,我们在 基本概念 - 图210 时刻并不知道基本概念 - 图211的具体值,只有 agent 玩完游戏,才能被全部观测到,那么想要在当前时刻就对 Return 进行预估,应该如何做?
基本概念 - 图212 求期望,将随机性去掉。

action-value function基本概念 - 图213除了当前状态基本概念 - 图214和动作基本概念 - 图215,其余动作、状态等随机变量都被期望消除,基本概念 - 图216基本概念 - 图217 都有关,如果使用 policy 函数基本概念 - 图218基本概念 - 图219可以告诉我们在当前状态下,做出 action 动作是好是坏。

基本概念 - 图220是对基本概念 - 图221求最大化,把π函数的影响去掉。

state-value function :状态价值函数。在求一次对A求期望,将A去掉,基本概念 - 图222只与状态基本概念 - 图223基本概念 - 图224 有关。基本概念 - 图225 可以评价基本概念 - 图226 函数和状态的好坏

强化学习就是学会怎样控制 agent ,让 agent 基于当前状态基本概念 - 图227,做出相应动作基本概念 - 图228,争取能在未来得到更多的奖励。
image.png
强化学习具体学习的是π函数,或者Q*函数,

  • π函数已知,就可以把状态作为输入,算出每个动作的概率,然后对其随机抽样,得到动作a
  • Q已知,就可以评估当前状态下每个动作的好坏,从而选出Q 值最高的动作。