1. 强化学习的应用场景

1.1. 四个成熟场景

在入门强化学习之前,我们先来具体的看看,目前强化学习可以做一些什么事情。

如下面四张图,分别是强化学习应用于:

  1. 王者荣耀绝悟挑战;
  2. 训练机械臂投篮;
  3. Alpha Go与柯洁下围棋;
  4. 个性化序列推荐系统。
    在这里插入图片描述

强化学习是机器学习的一个分支,它会训练一个智能体用来探索周围环境,在图一的王者荣耀中,这个智能体是英雄,例如阿轲、公孙离;在图二的投篮中,这个智能体是机械臂;在图三中,这个智能体是下围棋的Alpha Go;在图四的推荐系统中,这个智能体是推荐算法;

在这里插入图片描述

智能体在一开始是很笨的,在与周围环境的不断交互中才会逐渐变得“聪明”起来。例如在上面的图中,智能体首先是用很笨拙的方法去跨越障碍,在多次失败之后,才学会了如何跳的更高去越过障碍物。

1.2. 几个强化学习仿真环境

1.2.1. Gridworld

这里介绍三个Gridworld环境:

  1. Gym MiniGrid
    最基础的GridWorld就是走迷宫,例如下图红色的智能体走到绿色的位置就算是找到了迷宫出口,除此之外还有其他的有意思的迷宫配置,可以玩一玩。
    在这里插入图片描述

  2. Multi Drones Monitoring
    Multi Drones Monitoring是Multi-agent Reinforcement Learning中的一个小模块,提供了多个基于智能体的grid world小环境
    在这里插入图片描述

  3. MAgent
    这是一个用于研究环境中大量智能体的竞争和协作问题的GridWorld环境
    在这里插入图片描述

1.2.2. Neural MMOs

Neural MMOs 是由OpenAI开源的一个大型的复杂MA游戏场景,在这张大地图中,由于资源有限,agent要学着合作/竞争活下去
在这里插入图片描述

1.2.3. Lab

Lab是一个由DeepMind开源的强化学习环境,是一张雷神之锤III竞技场(Quake III Arena)的地图,由两个队伍,每队由两个智能体组成,在室内和户外两个场景下以第一人称视角竞争玩夺旗的游戏。
在这里插入图片描述

2. 强化学习的基础知识和常用术语

2.1. 常用术语表

英文中文解释
RL强化学习即 Reinforcement Learning 的首字母缩写
Agent智能体强化学习算法,或强化学习算法的作用目标
Environment环境Agent的作用空间,可以认为除Agent外的一切皆为环境。
Action行为也称动作、策略、决策。指的是Agent的输出,作用于环境
State / Observation状态Observation指的是被Agent观测到的部分环境的状态,State指的是整个环境的状态。一般情况下,未特定说明的“状态”、“State”均指“Observation”,也就是被Agent观测到的部分环境的状态。表示为: S S S
Reward反馈量化后的反馈也称奖励。反馈指的是Action作用于Environment后,对环境中的某一个特定的变量产生的影响。表示为: R R R
Episode回合也称试验(Trial)。是指一次完整的强化学习训练
Trajectory轨迹是指在一个 episode 中产生的 Observation-Action 序列。表示为:
τ = ( s 0 , a 0 , s 1 , a 1 , . . . , s n , a n ) \tau=(s_0,a_0,s_1,a_1,...,s_n,a_n) τ=(s0,a0,s1,a1,...,sn,an)
Value Function价值函数是指某一个 π \pi π可以得到的反馈的期望。表示为: v π v_\pi vπ
Policy Function策略函数策略(Policy)用于根据 Observation 确定具体的 Action。表示为: π \pi π
Stochastic Policy随机性策略随机性策略会得到多个Action以及它们的概率,对所有Action根据概率抽选,最终确定一个输出Action
Deterministic Policy确定性策略确定性策略会得到多个Action以及它们的概率,但只输出概率最高的那个Action
Exploration探索是指Agent会尝试新的Action来得到可能存在的更优策略,即得到Reward更大的策略。
Exploitation利用是指Agent不再尝试新的Action,只采取已知的可以得到最高Reward的策略。
Trade-Off权衡Agent在初始的时候需要偏向于Exploration来得到合适的策略,在学习的过程中高Reward的策略被逐渐学习出来,这时候就需要偏向于Exploitation,更多的利用已知的策略,而不是把时间浪费在找新策略上。
Planning规划Planning是指Agent可以获得整个环境的详细信息。此时 Agent 能够计算出一个完美的模型,只需要知道当前的状态,就能够寻找到最优解。
Learning学习Learning是指 Agent 无法获得完整的环境信息,只能通过不断地与环境交互,逐渐改进其策略。
Discount Factor折扣因子折扣因子是用于保证马尔科夫决策过程即时性的一个参数。表示为:
γ \gamma γ
Bellman Equation贝尔曼方程贝尔曼等式是一种计算价值函数(Q和V)的工具,它描述了当前状态与未来状态的迭代关系
MAB多臂赌博机Multi-Armed Bandit,一个基础的强化学习场景
MDP马尔科夫决策过程Markov Decision Process,一个基础的强化学习场景,是带有 Action 和 Reward 的状态转移过程
Q / Action-Value FunctionQ 函数 / 动作值函数表示 Agent 在某个 State 采取某个 Action 时得到的累计 Reward 期望值
V / State-Value functionV 函数 / 状态值函数表示 Agent 在某个 State 时具有的累计 Reward 期望值
Value Iteration价值迭代利用 V 函数求取最优策略的方法
Policy Iteration策略迭代利用 Q 函数求取最优策略的方法
Model-Free RL无模型的强化学习Model-Free RL 直接让 Agent 在环境中做出 Action,通过不断试错来找到针对特定环境的最佳策略 π \pi π
Model-Based RL基于模型的强化学习Model-Based RL通过对环境进行理解,建立一个环境模型,Agent可以在模型中对下一步的状态和反馈做出预测,找出最佳策略,再在现实环境中做出动作
Policy-Based RL基于概率的强化学习Policy-Based RL中Agent在某一状态时的所有可能Action都有一定概率被选中,只是不同Action有不同的概率。最终会得到一个随机性策略
Value-Based RL基于价值的强化学习Value-Based RL中会对Agent在某一状态时的所有可能Action,按对应得到的Reward进行排序,并选用Reward最高的Action。最终会得到一个确定性策略
Monte-Carlo RL回合更新的强化学习MC 方法每次都需要采样一条完整的轨迹 τ \tau τ 之后才能对 π \pi π v π v_\pi vπ 进行更新
Temporal-Difference RL单步更新的强化学习TD 可以在每完成一步(得到一个Observation,采取一个Action并得到反馈值)之后就对策略或价值函数进行更新
On-Policy RL同轨强化学习On-Policy RL需要Agent直接与环境交互,即学习过程中所用到的数据与样本,都是Agent从环境中观测到的。
Off-Policy RL离轨强化学习Off-Policy RL不需要Agent直接与环境交互,即可以通过别的方法获取数据进行学习,不需要Agent直接通过观测环境获得。

2.2. 强化学习的目的

强化学习中包含了两个实体和三个关系,可以用下图表示:
在这里插入图片描述
在强化学习过程中,智能体(Agent)环境(Environment) 一直在交互。智能体(Agent)环境(Environment) 中获取到 环境的状态(State/Observation),并根据它做出一个 行为(Action),这个 行为(Action) 会导致 智能体(Agent) 所处的 环境的状态(Observation) 发生变化,并且 智能体(Agent) 会从 环境(Environment) 的变化中得到一定的 反馈(Reward),该 反馈(Reward) 用于 智能体(Agent) 判断自己刚才的 行为(Action) 是否合理。

显而易见,Agent 采取的 Action 能获得越高的 Reward,说明Agent越成功。强化学习的目的就是让一个智能体(Agent) 在一个复杂不确定的环境(Environment)里面去极大化它能获得的反馈(Reward)。

2.3. 两个基本模型

2.3.1. 多臂赌博机

多臂赌博机(Multi-Armed Bandit, MAB)问题可以说是强化学习的开端,最原始的强化学习算法就是从多臂赌博机问题引出来的。目前为止,主流的Bandit算法主要有两类:(1)贪心算法,例如: ϵ − greedy \epsilon-\text{greedy} ϵgreedy;(2)置信算法,例如:UCB(Upper Confidence Bound)。

下面我们就来讲讲什么是多臂赌博机问题:

赌博机又称老虎机,它是一种通过摇动摇臂(Arms)来获得回报(Reward)的机器,每个赌博机只有一条摇臂,多个赌博机放在一起就是多臂赌博机。如下图所示是一个3臂赌博机:
在这里插入图片描述

上面的三个赌博机摇出金币的概率分布各不相同,也就是说它们的期望 Reward 不同。我们希望构造一个 Agent,自动去找出摇动哪一个赌博机的摇臂可以获得最高的 Reward。

我们把摇动三个赌博机的 Action 分别命名为 a = [1, 2, 3],每次摇动摇臂(pull arm)后都会获得一个回报 r,则值函数 q(a),即多次摇动摇臂后动作 a 的所得到的回报 r 的均值可以表示为: q ( a ) = E [ R t ∣ A t = a ] q(a)=\mathbb{E}[R_t | A_t=a] q(a)=E[RtAt=a]
q ( s , a ) = q ( a ) = E [ R t ∣ A t = a ] q(s,a)=q(a)=\mathbb{E}[R_t | A_t=a] q(s,a)=q(a)=E[RtAt=a]

注意在多臂赌博机问题中,由于每次摇动摇臂后Agent的State是不变的(Agent看到的还是那三个赌博机),因此动作值函数 q(s,a) 可以简写为 q(a)

在获取了每个摇臂的 q(a) 之后,就可以利用Bandit算法来选择动作了,这里我们介绍两种 Bandit 算法(策略):

  1. ϵ − \epsilon- ϵ贪心策略
    ϵ − \epsilon- ϵ贪心策略设定一个概率值 ϵ \epsilon ϵ 用于指定探索的程度,并规定下一个时间步要执行的动作有 1 − ϵ 1-\epsilon 1ϵ 的概率选用能使 q q q 值最大的动作 a a a,有 ϵ \epsilon ϵ 的概率选择其他动作: a = { arg max ⁡ a q ( a 2 ) , P(0.9) o t h e r w i s e , P(0.1) a=\begin{cases} \argmax_a q(a_2), \text{P(0.9)}\\ otherwise, \text{P(0.1)}\\ \end{cases} a=aargmaxq(a2),P(0.9)otherwise,P(0.1)
  2. UCB1策略
    UCB1策略计算了 q ( s , a ) q(s,a) q(s,a)的置信区间上界,即 q ( s , a ) q(s,a) q(s,a)的最大期望值,然后取能使 q ( s , a ) q(s,a) q(s,a)最大的动作: a = arg max ⁡ a ( q ( s , a ) + c ln ⁡ n n a ) a=\argmax_a\biggl(q(s,a)+c\sqrt{\frac{\ln n}{n_a}}\biggr) a=aargmax(q(s,a)+cnalnn )其中 q ( s , a ) q(s,a) q(s,a) 是指动作 a a a q q q值, c c c是一个可调参数用于指定探索的程度, n n n是指所有动作的执行次数, n a n_a na是指动作 a a a的执行次数

此时有了 q(a) ,也有了利用 q(a) 来选择 a 的策略,Agent就可以利用Bandit策略来根据 q(a) 选择摇动哪个摇臂 a ,从而获得最大的 r 了。

下面我们来模拟一个episode,在这个episode中我们利用了 ϵ \epsilon ϵ 为 0.1 的 ϵ − \epsilon- ϵ贪心策略:

1 − ϵ = 0.9 1-\epsilon=0.9 1ϵ=0.9

  1. 摇动3个摇臂各一次,得到 [ a 1 , a 2 , a 3 ] [a_1,a_2,a_3] [a1,a2,a3] 的 Reward [ 2 , 4 , 6 ] [2,4,6] [2,4,6]
    q ( a 1 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_1)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a1)=E[R0=2A1=a1]=2 q ( a 2 ) = E [ R 1 = 4 ∣ A 2 = a 2 ] = 4 q(a_2)=\mathbb{E}[R_1=4|A_2=a_2]=4 q(a2)=E[R1=4A2=a2]=4 q ( a 3 ) = E [ R 2 = 6 ∣ A 3 = a 3 ] = 6 q(a_3)=\mathbb{E}[R_2=6|A_3=a_3]=6 q(a3)=E[R2=6A3=a3]=6
  2. 根据 ϵ − \epsilon- ϵ贪心策略,有0.9的概率选择可以获得最大q值的动作,0.1的概率选择其他动作,假设此时选择可以获得最大q值的动作 q ( a 3 ) = 6 q(a_3)=6 q(a3)=6,则有当前的最优动作为: a = arg max ⁡ a q ( a 3 ) = a 3 a=\argmax_a q(a_3)=a_3 a=aargmaxq(a3)=a3摇动 a 3 a_3 a3得到 Reward 0 0 0 更新 q ( a 3 ) q(a_3) q(a3) q ( a 1 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_1)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a1)=E[R0=2A1=a1]=2 q ( a 2 ) = E [ R 1 = 4 ∣ A 2 = a 2 ] = 4 q(a_2)=\mathbb{E}[R_1=4|A_2=a_2]=4 q(a2)=E[R1=4A2=a2]=4 q ( a 3 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 3 ] = 6 + 0 2 = 3 q(a_3)=\mathbb{E}[R_2=6,0|A_4=a_3]=\frac{6+0}{2}=3 q(a3)=E[R2=6,0A4=a3]=26+0=3
  3. 根据 ϵ − \epsilon- ϵ贪心策略,有0.9的概率选择可以获得最大q值的动作,0.1的概率选择其他动作,假设此时选择可以获得最大q值的动作 q ( a 2 ) = 4 q(a_2)=4 q(a2)=4,则有当前的最优动作为: a = arg max ⁡ a q ( a 0 ) = a 2 a=\argmax_a q(a_0)=a_2 a=aargmaxq(a0)=a2摇动 a 2 a_2 a2得到 Reward 10 10 10 更新 q ( a 2 ) q(a_2) q(a2) q ( a 1 ) = E [ R 0 = 2 ∣ A 1 = a 1 ] = 2 q(a_1)=\mathbb{E}[R_0=2|A_1=a_1]=2 q(a1)=E[R0=2A1=a1]=2 q ( a 2 ) = E [ R 1 = 4 , 10 ∣ A 5 = a 2 ] = 4 + 10 2 = 7 q(a_2)=\mathbb{E}[R_1=4,10|A_5=a_2]=\frac{4+10}{2}=7 q(a2)=E[R1=4,10A5=a2]=24+10=7 q ( a 3 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 3 ] = 6 + 0 2 = 3 q(a_3)=\mathbb{E}[R_2=6, 0|A_4=a_3]=\frac{6+0}{2}=3 q(a3)=E[R2=6,0A4=a3]=26+0=3
  4. 根据 ϵ − \epsilon- ϵ贪心策略,有0.9的概率选择可以获得最大q值的动作,0.1的概率选择其他动作,假设此时选择其他动作 q ( a 1 ) = 2 q(a_1)=2 q(a1)=2,则有当前的动作为: a = arg max ⁡ a q ( a 1 ) = a 0 a=\argmax_a q(a_1)=a_0 a=aargmaxq(a1)=a0摇动 a 1 a_1 a1得到 Reward 2 2 2 更新 q ( a 1 ) q(a_1) q(a1) q ( a 1 ) = E [ R 0 = 2 , 2 ∣ A 6 = a 1 ] = 2 + 2 2 = 2 q(a_1)=\mathbb{E}[R_0=2,2|A_6=a_1]=\frac{2+2}{2}=2 q(a1)=E[R0=2,2A6=a1]=22+2=2 q ( a 2 ) = E [ R 1 = 4 , 10 ∣ A 5 = a 2 ] = 4 + 10 2 = 7 q(a_2)=\mathbb{E}[R_1=4,10|A_5=a_2]=\frac{4+10}{2}=7 q(a2)=E[R1=4,10A5=a2]=24+10=7 q ( a 3 ) = E [ R 2 = 6 , 0 ∣ A 4 = a 3 ] = 0 + 6 2 = 3 q(a_3)=\mathbb{E}[R_2=6, 0|A_4=a_3]=\frac{0+6}{2}=3 q(a3)=E[R2=6,0A4=a3]=20+6=3
  5. 类似的,重复步骤2-4,Agent 就可以估算出三个摇臂的期望q值
  6. 学习结束后,Agent 只需摇动期望最高的一个摇臂即可得到最高的Reward。

到此,多臂赌博机问题就找到了求解方法,也就是最原始的强化学习。

2.3.2. 马尔科夫决策过程

马尔科夫决策过程(Markov Decision Process,MDP)是强化学习的基础,相比于多臂赌博机问题,马尔科夫决策过程多了状态转移及其决策过程。

我们先来认识一下状态、状态转移以及决策三个概念:

  1. 状态
    实际上状态并没有一个标准的定义,它可以是任何有助于马尔科夫链做决策的量。
  2. 状态转移
    是指 Agent 可以从一个状态变化到另一个状态的性质。形象地说,把自己看着 Agent ,我们从早上醒来,看到的状态是在卧室,刷牙时眼睛里看到的状态是在卫生间,出门后是在路上,到办公室后是在办公室。Agent的状态无时无刻不在改变。
  3. 决策
    所谓决策,就是Agent根据未来可能转移到的状态的好坏(通过Reward衡量),来决定是否要转移到某个状态。

下面就是一个马尔科夫决策过程示意图:
在这里插入图片描述

在上图中,我们可以找出多条轨迹,用来描述Agent的行为,例如: τ 1 = S 1 → a = a 1 , r = r 1 S 2 → a = a 2 , r = r 2 S 3 → a = a 3 , r = r 3 S 4 τ 2 = S 1 → a = a 4 , r = r 4 S 3 → a = a 3 , r = r 3 S 4 \begin{aligned} \tau_1 & = S_1 \xrightarrow{a=a_1,r=r_1}S_2\xrightarrow{a=a_2,r=r_2}S_3\xrightarrow{a=a_3,r=r_3}S_4 \\ \tau_2 & = S_1 \xrightarrow{a=a_4,r=r_4}S_3\xrightarrow{a=a_3,r=r_3}S_4 \\ \end{aligned} τ1τ2=S1a=a1,r=r1 S2a=a2,r=r2 S3a=a3,r=r3 S4=S1a=a4,r=r4 S3a=a3,r=r3 S4 τ 2 \tau_2 τ2没有进入过状态 S 2 S_2 S2,可能是因为Agent认为要迟到了,从 S 1 S_1 S1转移状态到 S 2 S_2 S2的Reward太低,所以直接转移状态到了 S 3 S_3 S3

马尔科夫决策过程的量化计算中有一个重要参数称为折扣因子(Discount Factor) γ \gamma γ,之所以要引入这样一个参数,有着以下三个理由:

  • 有些马尔可夫过程是带环的,没有起始,折扣因子可以避免无穷的反馈;
  • 折扣因子可以使马尔科夫过程模拟真实的人类行为,使马尔科夫过程更加倾向于选择近期的高Reward状态;
  • 折扣因子是可以调整的,例如当折扣因子设为0时,就相当于只关注了下一步反馈。当折扣因子设为1时,就相当于对未来并没有折扣,未来的每一步获得的Reward都是一样的。

在有了Agent所处的状态 S S S、折扣因子 γ \gamma γ、状态转移时的回报 R R R之后,我们就可以用贝尔曼方程来定义马尔科夫决策过程的折扣累计回报期望值了:

  1. 基于状态值函数 V π ( s ) V_\pi(s) Vπ(s)的定义
    在策略 π \pi π 下,状态s的值函数定义为从状态 S S S 出发,并采用策略 π \pi π 的折扣积累回报的期望 V π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] \begin{aligned}V_\pi(s) &=\mathbb{E}_\pi[G_t|S_t=s] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s] \\ \end{aligned} Vπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s]
  2. 基于行为值函数 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)的定义
    在策略 π \pi π 下,在状态s采取动作a的行为值函数定义为从状态 S S S 出发,并采用策略 π \pi π 的折扣积累回报的期望 Q π ( s , a ) = E π [ G ∣ S = s , A = a ] = E π [ ∑ k = 0 ∞ γ k R k + 1 ∣ S = s , A = a ] \begin{aligned}Q_\pi(s,a) &=\mathbb{E}_\pi[G|S=s,A=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{k+1}|S=s,A=a] \\ \end{aligned} Qπ(s,a)=Eπ[GS=s,A=a]=Eπ[k=0γkRk+1S=s,A=a]

假设有如下的马尔科夫决策过程:
在这里插入图片描述
假设Agent正处于状态 S 1 S_1 S1,目标任务是Agent到达 S 4 S_4 S4然后回到 S 1 S_1 S1。则在 S 1 S_1 S1时会有如下两条轨迹可以完成该任务:
τ 1 = S 1 → a = a 1 , r = 2 S 2 → a = a 2 , r = 4 S 3 → a = a 3 , r = 9 S 4 → a = a 5 , r = 3 S 3 → a = a 6 , r = 7 S 1 \tau_1 = S_1\xrightarrow{a=a_1,r=2}S_2\xrightarrow{a=a_2,r=4}S_3\xrightarrow{a=a_3,r=9}S_4\xrightarrow{a=a_5,r=3}S_3\xrightarrow{a=a_6,r=7}S_1 τ1=S1a=a1,r=2 S2a=a2,r=4 S3a=a3,r=9 S4a=a5,r=3 S3a=a6,r=7 S1 τ 2 = S 1 → a = a 4 , r = 6 S 3 → a = a 3 , r = 9 S 4 → a = a 5 , r = 3 S 3 → a = a 6 , r = 7 S 1 \tau_2 = S_1\xrightarrow{a=a_4,r=6}S_3\xrightarrow{a=a_3,r=9}S_4\xrightarrow{a=a_5,r=3}S_3\xrightarrow{a=a_6,r=7}S_1 τ2=S1a=a4,r=6 S3a=a3,r=9 S4a=a5,r=3 S3a=a6,r=7 S1设折扣因子的值为0.2,则这两条轨迹的折扣累计回报期望为: Q π ( s , a ) τ 1 = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = 1 5 ( 0. 2 0 × 2 + 0. 2 1 × 4 + 0. 2 2 × 9 + 0. 2 3 × 3 + 0. 2 4 × 7 ) = 0.63904 \begin{aligned}Q_\pi(s,a)_{\tau_1} &=\mathbb{E}_\pi[G_t|S_t=s,A_t=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] \\ &=\frac{1}{5}(0.2^0\times 2 + 0.2^1\times4+0.2^2\times9+0.2^3\times3+0.2^4\times7)\\ &=0.63904 \\ \end{aligned} Qπ(s,a)τ1=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]=51(0.20×2+0.21×4+0.22×9+0.23×3+0.24×7)=0.63904 Q π ( s , a ) τ 2 = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = 1 4 ( 0. 2 0 × 6 + 0. 2 1 × 9 + 0. 2 2 × 3 + 0. 2 3 × 7 ) = 1.994 \begin{aligned}Q_\pi(s,a)_{\tau_2} &=\mathbb{E}_\pi[G_t|S_t=s,A_t=a] \\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] \\ &=\frac{1}{4}(0.2^0\times 6 + 0.2^1\times9+0.2^2\times3+0.2^3\times7)\\ &=1.994 \\ \end{aligned} Qπ(s,a)τ2=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]=41(0.20×6+0.21×9+0.22×3+0.23×7)=1.994

显然,当 Agent 处于状态 S 1 S_1 S1 时,应当采取动作 a 4 a_4 a4才能获取更高的 Reward。

3. 经典强化学习算法和深度强化学习

3.1. 经典强化学习算法

所谓经典强化学习算法,指的是表格型的强化学习算法,这种算法适用于的状态空间离散有限的马尔科夫决策过程。有限代表有终止状态,这样 q ( s , a ) q_(s,a) q(s,a)或者 v ( s ) v_(s) v(s)的值均可以存储在一张表格中,这就是表格型方法的名称由来。

例如一张Q表格,用来存储 q ( s , a ) q(s,a) q(s,a)
在这里插入图片描述
上表中Q函数的值表示当Agent在某个State时选择了某个Action,后续总共能得到多少Reward。根据这个表格,Agent就可以知道在当前的State下选择哪个Action可以得到更大的Q值。

例如在Agent处于状态 s 4 s_4 s4时,选择动作 a 4 a_4 a4就会有最大的Q值: Q ( s t = s 4 , a t = a 4 ) = 23.5 Q(s_t=s_4,a_t=a_4)=23.5 Q(st=s4,at=a4)=23.5

常见的表格型强化学习方法有:

  1. 动态规划 Dynamic Programing
    动态规划 DP 是一种model-based的强化学习方法,它使用价值函数来结构化地组织对最优策略的搜索,由贝尔曼最优化方程计算最优价值函数,从而得到最优策略。DP又分为包括策略迭代、价值迭代两种方法
  2. 蒙特卡洛 Monte Carlo
    蒙特卡洛 MC 是一种model-free的强化学习方法,它从马尔可夫决策过程采样样本的经验回报中学习价值函数。
  3. 时序差分 Temporal-Difference
    时序差分 TD 是一种model-free的强化学习方法,它结合了MC与DP算法,采用自举法(更新基于已存在的估计)更新。TD中两个著名的方法是Saras(同轨时序差分控制)Q-Learning(离轨时序差分控制)

推荐阅读:强化学习 - 基于表格型的求解方法

3.2. 深度强化学习

深度强化学习方法就是利用神经网络提取输入特征 或 用神经网络拟合值函数 Q ( s , a ) Q(s,a) Q(s,a) V ( s ) V(s) V(s),它适用于状态空间连续或状态数无穷多的马尔科夫决策过程。

之所以提出深度强化学习方法,是因为:

  1. 神经网络具有很强的特征提取能力
    这样的能力使得强化学习算法可以直接从真实世界接收输入,例如看游戏屏幕、看棋盘。
  2. 神经网络具有很强的泛化能力
    神经网络可以通过拟合离散数据泛化得到连续的空间,例如下图:在这里插入图片描述
    神经网络可以只根据这三个 q ( s , a ) q(s,a) q(s,a)值取泛化得到连续空间上的无穷多 q ( s , a ) q(s,a) q(s,a)值。

常见的深度强化学习算法有:

  1. Policy Gradient
    包括:PG (Policy Gradient)
    TRPO (Trust Region Policy Optimization)
    PPO (Proximal Policy Optimization)
    DPPO (Distributed Proximal Policy Optimization)
  2. Deep Q Network
    包括:DQN (Deep Q Network)
    Dueling DQN (Dueling Deep Q Network)
    Double DQN (Double Deep Q Network)
  3. Actor-Critic
    包括:AC (Actor-Critic)
    A3C (Asynchronous Advantage Actor-Critic)
    DDPG (Deep Deterministic Policy Gradient)
    TD3 (Twin Delayed Deep Deterministic policy gradient algorithm)
    SAC (Soft Actor-Critic)

4. 强化学习的学习资料

视频:

书籍:

论文:

这一节推荐了很多相关资料,之所以要看这么多,不是因为强化学习本身很复杂,是因为不同人有不同理解,从不同角度对强化学习进行全方位的学习,才能有更深入和正确的理解。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐