Reinforcement Learning:A Survey
作者:Leslie Pack Kaelbling, Michael L. Littman, Andrew W. Moore
(整理转自https://zhuanlan.zhihu.com/p/72296706)
目录
摘要
这篇文章从计算机科学的角度对强化学习这一领域进行了研究,并且尽量写的让熟悉机器学习的相关研究者能够较为容易的读懂。我们研究了强化学习这一领域历史上的基础,也广泛总结了当今研究的主流选择。强化学习是关于智能体(agent)通过与动态环境进行不断交互,从而在“尝试-错误”过程中学习正确行为的问题。这篇文章与心理学上的研究有一定的关系,但更值得注意的是,这里的强化与心理学上的强化是很不一样的。这篇文章主要讨论强化学习,包括探索与利用的权衡、通过马尔科夫决策理论(Markove decision theory)建立该领域的基础、通过延迟奖励进行学习、构建经验模型加速学习、标准化与结构化、处理隐藏状态等。文章结尾对几个已经实现了的强化学习系统的的综述以及目前可用的模型进行了评估。
1 引言
强化学习最早可以追溯到早期控制论以及统计、心理学、神经科学、计算机科学等学科的一些研究。在最近的五到十年中,强化学习在机器学习和人工智能研究者中得到了大量的关注,它描绘了一种在不进行具体指导的情况下通过对智能体进行奖励与惩罚而完成任务的编程方式。但是完成这一想法有着巨大的计算困难。
这篇文章从计算机科学的角度对强化学习的研究历史和当前研究状况进行了综述。我们以较大的视角对强化学习这一领域进行了回顾,并对特定几个方法进行了详细的描述。当然,无法涉及该领域中所有出现过的重要方法,在有限的篇幅中难以做到。
强化学习是智能体通过与动态的环境进行“尝试-错误”式的交互而学习自己应该具有什么样的行为的问题。这里的描述与心理学有点相似,但是“强化”这一概念是很不一样的。强化学习中的“强化”应当理解为一类问题,而不是一系列的技巧。
主要存在两种解决强化学习问题的策略。第一种是搜索行为空间来找到在环境中表现最好的行为序列。这种方法在一般的算法和程序以及一些新的研究中都有用到(Schmidhuber,1996)。第二种是使用统计学和动态规划的方法建立不同环境状态(states)下采取不同动作(actions)的效用(utility)。这篇文章几乎只涉及第二种方法,因为这种方法利用了强化学习的特殊结构,而且是一般的最优化方法难以达到的。现在不清楚哪一类方法在什么样的场景下更有效。
这一节剩下部分主要建立符号说明并描述基本的强化学习模型。第二节介绍探索与利用之间的权衡以及解决最基本的我们想要最大化当前奖励的问题。第三节考虑更一般的问题,对于一些重要的奖励,可以在延迟到动作执行之后。第四节考虑经典的延迟奖励下强化学习的无模型算法:适应性启发评论者(adaptive heuristic critic)、 T D ( λ ) TD(\lambda) TD(λ)、 Q Q Q-learning。第五节介绍一些对智能体在环境中采取的动作总量计算比较敏感的算法。第六节介绍了泛化对于强化学习的促进作用,而泛化可以认为在机器学习历史的转折点。第七节考虑智能体无法感知环境的所有状态的时的一些问题。第八节介绍强化学习的比较成功的一些应用。最后,第九节总结和预测了强化学习中一些没有解决的重要问题以及强化学习的未来。
1.1 强化学习模型
在标准的强化学习模型中,智能体(agent)总是通过感知和执行动作与环境进行交互。智能体接收输入信号 i i i和当前的环境状态 s s s 。智能体采取动作 a a a,产生输出。动作会影响环境,状态的转移值会通过一个标量 r r r传递给智能体。智能替代的行为 B B B ,应当选择那些可以增加长期回报总和的动作。智能体可以通过长时间系统的尝试与校正,其中采用的算法就是这篇文章接下来要介绍的几部分内容。
形式化的模型包含以下要素:
(1)由状态构成的离散集合,
S
S
S;
(2)由智能体动作后构成的离散集合,
A
A
A;
(3)反馈信号,通常是{0,1}或者实数。
上图中包含了输入函数
I
I
I ,它决定了智能体如何观察环境状态。我们假设这个函数可以使智能体确切的知道所处的环境状态(第七节部分除外)。
Environment: You are in state 65. You have 4 possible actions.
Agent: I’ll take action 2.
Environment: You recevied a reinforcement of 7 units. You are now in state 15. You have 2 possible actions.
Agent: I’ll take action 1.
Environment: You recevied a reinforcement of -4 units. You are now in state 65. You have 4 possible actions.
Agent: I’ll take action 2.
Environment: You recevied a reinforcement of 5 units. You are now in state 44. You have 5 possible actions.
…
…
智能体的任务就是找到一个策略 π \pi π ,将状态映射为动作(输入状态,输出动作的这样一种函数),并且最大化长期的奖励回报。一般我们认为环境是不确定的,因此在不同场景下的相同状态采取相同的动作可能会得到不同的奖励值。但是,我们认为环境是平稳的,也就是说状态转移或者接收反馈信号的概率不会随着时间发生变化。
强化学习与监督学习在很多方面有着不同的地方。最重要的一点就是没有“输入-输出”这样的成对数据。取而代之的是,智能体采取某个动作后,会立马得到一个奖励,而且并不知道哪个动作从长远角度来说可以获得更多的奖励总和。因此智能体很有必要汇聚系统所有的状态、动作、转移概率、奖励进而取得最优的表现。另一个区别于监督学习的的重要方面是,在线学习效果很重要,因为强化学习中评估和学习经常是交替进行的。
强化学习的一些方面与人工智能(AI)中的搜索和规划问题比较相近。AI算法通过图和状态产生一条满足要求的轨迹。规划问题的方法与之类似,但是规划问题中的约束(原文为construct,应为constriction更为合理)比图更为复杂,通常是一些逻辑表达而不是一些基本的符号。相比强化学习模型,上述AI算法不是那么通用,因为它们需要事先定义好的转移概率模型和确定的期望假设。另一方面,强化学习认为整个状态空间是可以穷举并在内存中存储的——这使得它不会受到传统的一些方法束缚。
1.2 最优行为模型
介绍三个行为模型:
(1)有限时域模型(finite-horizon)
E
(
∑
e
=
0
h
r
t
)
E ( \sum\limits _ { e = 0 } ^ { h } r _ { t } )
E(e=0∑hrt)
有限时域模型是最容易想到的,这里的
r
t
r_t
rt代表
t
t
t时刻开始,未来能够得到的额奖励总和。这个模型使用的第一种情况是非平稳环境,环境会随着时间变化。第一步会采取一个
h
h
h-step最优的动作。也就是说,你有
h
h
h步可以走,你第一步应该采取使得
h
h
h步奖励总和最大的动作。第二步采取
(
h
−
1
)
(h-1)
(h−1)-step最优的动作。后面以此类推。第二种情况是智能体进行滚动控制,这时候智能体总是在做
h
h
h-step最优动作。智能体总是根据相同的策略采取动作,但是
h
h
h的值限制了智能体在选择动作的时候能够“看”的多远。由于在很多情况下我们并不能事先知道智能体的生命周期,有限时域模型不一定适用。
【笔者OS:现实场景会比这个模型更复杂】
(2)无限时域折扣模型(infinite-horizon discount)
E ( ∑ t = 0 ∞ γ t r t ) E(\sum\limits_{t=0}^{\infty} \gamma^t r_t ) E(t=0∑∞γtrt)
这里的 γ ( 0 ≤ γ ≤ 1 ) \gamma(0 \le \gamma \le 1) γ(0≤γ≤1)表示折扣因子,可以看做是兴趣率,这样保证了和是有界的。
(3)平均回报模型(average-reward model)
lim
h
→
∞
E
(
1
h
∑
t
=
0
r
t
)
\lim\limits _ { h \rightarrow \infty } E ( \frac { 1 } { h } \sum\limits _ { t = 0 } r_t)
h→∞limE(h1t=0∑rt)
这个模型可以看做是无限时域模型的极限情况。这个模型的问题是,无法区分早获得奖励与晚获得奖励的不同顺序之间的差别。在初始阶段获得的奖励会对agent的整个学习过程产生剧巨大影响。
现在通过上面这个图来对比说明上面提到的三个模型。图中圆圈代表状态,箭头代表状态转移。除了第一个状态以外,所有状态都只有一个可选动作。所有动作的奖励,除了标出来的,都是0。
- 在有限时域模型情况下,如果 h h h=5,三个选择对应的奖励期望分别是+6、0、0,因此要选择第一个动作。
- 在无限时域折扣模型中,设定折扣因子
γ
=
0.9
\gamma=0.9
γ=0.9,此时选个动作对应的奖励期望分别为+16.2、+59.0、+58.5。此时应当选择动作2。
1)动作1: E ( ∑ t = 2 ∞ 0. 9 t ⋅ 2 ) = 0. 9 2 ⋅ 2 + 0. 9 3 ⋅ 2 + ⋯ = 16.2 E (\sum\limits _ { t = 2 } ^ { \infty } 0.9 ^ { t } \cdot 2 ) = 0.9 ^ { 2 } \cdot 2 + 0 . 9 ^ { 3 } \cdot 2 + \cdots = 16.2 E(t=2∑∞0.9t⋅2)=0.92⋅2+0.93⋅2+⋯=16.2
2)动作2: E ( ∑ t = 5 ∞ 0. 9 t ⋅ 10 ) = 0. 9 5 ⋅ 10 + 0. 9 6 ⋅ 10 + ⋯ = 59.0 E (\sum\limits _ { t = 5 } ^ { \infty } 0.9 ^ { t } \cdot 10 ) = 0.9 ^ { 5 } \cdot 10 + 0 . 9 ^ { 6 } \cdot 10 + \cdots = 59.0 E(t=5∑∞0.9t⋅10)=0.95⋅10+0.96⋅10+⋯=59.0
3)动作3: E ( ∑ t = 6 ∞ 0. 9 t ⋅ 11 ) = 0. 9 6 ⋅ 11 + 0. 9 7 ⋅ 11 + ⋯ = 58.5 E (\sum\limits _ { t = 6 } ^ { \infty } 0.9 ^ { t } \cdot 11 ) = 0.9 ^ { 6 } \cdot 11 + 0 . 9 ^ { 7 } \cdot 11 + \cdots = 58.5 E(t=6∑∞0.9t⋅11)=0.96⋅11+0.97⋅11+⋯=58.5 - 如果是第三种模型,那么和很明显应该选动作3,因为它的期望奖励是11,其他两个动作分别是10和5。
【笔者OS:无限时域折扣模型体现了当前状态的回报比未来状态更能影响当前状态的选择】
1.3 学习性能的评估
介绍两种:
(1) 最终最优收敛
很多算法都可以被证明是可以渐近收敛于最优行为的(Watkins & Dayan, 1992)。虽然这一点值得欣慰,但是在实际中没什么用。人们更喜欢迅速达到99%最优的agent,而不是缓慢但最终保证100%最优的agent。
(3) 收敛速度
收敛一般来说都是相对的,收敛速度准确来说应该称为收敛于近似最优的速度。这样一来,收敛速度又取决于什么样的近似是足够的。特定时间后agent的表现水平是与这一思想相关的评估方法。
收敛速度作为评价标准的另一个缺点是,算法为了尽快达到收敛在学习中可能会采取原本不必要的大的惩罚。而不那么激进的算法可能会用更长的时间达到最优,但是会的更高的奖励总和。
【笔者:收敛速度和奖励总和该如何平衡?】
(3) regret
(Berry & Fristedt, 1985)
1.4 强化学习和自适应控制
自适应控制是通过经验来提升决策序列的一类算法。自适应控制相对来说比较成熟,考虑的状态和动作都是向量,系统动态特性是光滑的(线性或者局部线性)。自适应控制中一个常用的损失函数是偏离期望状态和动作向量的平方项惩罚函数。最重要的一点是,尽管系统的动态模型事先是不知道的,但是必须通过数据估计出来,且动态模型的结构是固定的。这些假设使得自适应控制可以使用深奥优雅且强有力的数学进行分析,因此有许多稳定可用并且已经广泛部署了的自适应控制系统。
【笔者:模拟动态仿真方法可以提高系统/网络的感知能力,实现自适应调整】
2 探索与利用:单一状态情况
强化学习区别于监督学习的一个重要方面是强化学习需要对环境进行探索(exploration)。
先举个简单的例子: k k k-拉杆的赌博机。这个问题在统计和应用数学文献里面也有大量的研究。一个赌博机有 k k k条拉杆。agent有 h h h次拉下拉杆的机会,每一条拉杆被拉下,赌博机会根据概率参数 π \pi π给出回报1或者0。agent需要如何制定策略才能获得最大的回报?
这个问题展示了探索与利用的基本平衡问题。agent可能会认为某个拉杆有高回报的可能性较大,他应该一直拉那个杆子吗?或者选择另外一个信息较少且似乎结果会更差的杆子?这个问题取决于游戏的持续时间。时间越长,原来认为的成熟的方案越可能是次优的,因而越应该进行探索。Berry和Fristedt在1985年出版的书里面较为深入的讨论了上面的问题。
2.1节介绍单一状态的赌博机问题的三种解决方案,尽管它们可以扩展为奖励值的问题,但是并没有直接用于通常的多状态延迟强化的情况。2.2节介绍三个没有被形式化证明但经被广泛使用了的方法。
2.1 被形式化证明了的方法
2.1.1 动态规划
如果agent接下来要执行 h h h步动作,在知道先验的联合概率分布 π \pi π的条件下,它可以通过基本的贝叶斯推理(Bayesian reasoning)来得到最优策略。在赌博机问题中,动作和奖励的集合可以写作 { n 1 , w 1 , n 2 , w 2 , . . . , n k , w k } \{n_1,w_1,n_2,w_2,...,n_k,w_k\} {n1,w1,n2,w2,...,nk,wk},其中 n i n_i ni表示拉第 i i i个拉 n n n 次,获得的奖励为 w i w_i wi。用 V ∗ { n 1 , w 1 , n 2 , w 2 , . . . , n k , w k } V^*\{n_1,w_1,n_2,w_2,...,n_k,w_k\} V∗{n1,w1,n2,w2,...,nk,wk}表示剩余 h h h次拉杆行为时,我们使用最优策略可以获得的收益。
如果
∑
i
n
i
=
h
\sum\limits_{i} n_i=h
i∑ni=h,此时没有剩余的拉杆动作了,
V
∗
{
n
1
,
w
1
,
n
2
,
w
2
,
.
.
.
,
n
k
,
w
k
}
=
0
V^*\{n_1,w_1,n_2,w_2,...,n_k,w_k\}=0
V∗{n1,w1,n2,w2,...,nk,wk}=0。用这样就可以通过递归的方式定义动态规划。如果我们知道剩余
t
t
t步的时候的最优值
V
∗
V^*
V∗,那么我们就可以知道剩余
t
+
1
t+1
t+1时的最优值:
V
∗
{
n
1
,
w
1
,
n
2
,
w
2
,
.
.
.
,
n
k
,
w
k
}
=
m
a
x
i
E
[
采
取
动
作
i
,
剩
余
的
都
采
用
最
优
动
作
能
获
得
的
收
益
]
=
m
a
x
i
(
ρ
i
V
∗
(
n
1
,
w
i
,
n
i
+
1
,
w
i
+
1
,
.
.
.
,
n
k
,
w
k
)
+
(
1
−
ρ
i
)
(
n
1
,
w
i
,
n
i
+
1
,
w
i
,
.
.
.
,
n
k
,
w
k
)
)
V^*\{n_1,w_1,n_2,w_2,...,n_k,w_k\}\\ =max_{i} E[采取动作i,剩余的都采用最优动作能获得的收益]\\ =max_{i}( \rho_i V^* (n_1,w_i,n_i +1,w_i +1,...,n_k,w_k) + \\ (1- \rho_{i})(n_1,w_i,n_i +1,w_i,...,n_k,w_k))
V∗{n1,w1,n2,w2,...,nk,wk}=maxiE[采取动作i,剩余的都采用最优动作能获得的收益]=maxi(ρiV∗(n1,wi,ni+1,wi+1,...,nk,wk)+(1−ρi)(n1,wi,ni+1,wi,...,nk,wk))
这里的
ρ
i
\rho_i
ρi表示主观设定的后验概率,在给定
n
i
n_i
ni,
w
i
w_i
wi和
ρ
i
\rho_i
ρi的条件下。
ρ
i
\rho_i
ρi服从Beta分布,
ρ
i
=
w
i
+
1
n
i
+
2
\rho_{ i } = \frac { w_i + 1 } { n_i + 2 }
ρi=ni+2wi+1
2.1.2 Gittins分配指数
2.1.3 自动机学习
【笔者OS:想起了本科接触过的元胞自动机…】
2.2 Ad-Hoc方法
获得最优的动作序列,直观的方法就是,每次选择即时回报最大的动作。但这样做往往得到的不是最优解。
2.2.1 贪婪策略
选择性贪婪是一个有效的方法来应对不确定性。这类方法里面典型的有周期探索(Kaebling,1993),Dyna(Sutton,1990)关于探索的收益的描述,兴趣驱动的探索(Schmidhuber,1991),以及具有优先级的扫描探索机制(Moore & Atkeson,1993)。
2.2.2 随机策略
这种策略默认按照最优奖励选择动作,但是会以概率
p
p
p随机选取动作。有些策略会设置一个较大的概率
p
p
p来鼓励初始阶段的探索,然后在学习的过程中慢慢减小探索的概率。有人反对中和中简单策略,因为在执行非贪婪(也就是探索)时,会采取一些毫无希望的动作,而不是看起来很有前途的动作。与此类似的一个稍微复杂一点的策略叫做玻尔兹曼探索(Boltzmann exploration),里面动作
a
a
a的选取是根据动作奖励期望所服从的分布来确定的:
P
(
a
)
=
e
E
R
(
a
)
/
T
∑
a
′
∈
A
e
E
R
(
a
′
)
/
T
P ( a ) = \frac { e^{ER(a) / T} } { \sum_{a' \in A}{e^{ER(a') / T}} }
P(a)=∑a′∈AeER(a′)/TeER(a)/T
温度参数
T
T
T会随着时间衰减,从而减小后期的探索。这个策略在最优动作与其他动作相差较大时表现很好,但是如果动作之间相差比较小会对性能造成影响。收敛速度可能会很慢,除非温度参数进行人为干预。
2.2.3 基于置信区间的方法
在动作估计值方差和确定性的二阶信息的基础上,探索往往会更加的高效。Kaelbling提出的间隔股计算法将每个动作 a i a_i ai的统计信息存储下来: w i w_i wi表示成功的次数, n i n_i ni表示尝试的次数。所有动作的选择都是通过计算 100 ⋅ ( 1 − α ) % 100 \cdot (1- \alpha)\% 100⋅(1−α)%这样一个置信区间的上界来确定的(选择置信区间上界最高的动作), α \alpha α值越小越鼓励探索。如果奖励是布尔类型的,二项分布的正态近似可以用来构造置信区间。其他的奖励形式可以通过与之相关的统计或者非参数方法进行处理。这种方法在经验尝试方面效果很好。
2.3 更一般的问题
泛化与环境变化的问题。
3 延迟奖励
要获得长期最大的奖励,不仅要考虑当前的奖励,还需要考虑后续的奖励。
3.1 马尔可夫决策过程
延迟奖励问题可以用马尔可夫决策过程(Markov decision process,MDPs)来建模。一个马尔可夫决策过程包含(与现在的符号略有差异,现在大多记为
(
S
,
A
,
R
)
(\mathcal{S} , \mathcal{A} , \mathcal{R})
(S,A,R):
(1)状态集合
S
\mathcal{S}
S ;
(2)动作集合
A
\mathcal{A}
A ;
(3)奖励函数
R
:
S
×
A
→
R
\mathcal{R}: \mathcal{S} \times \mathcal{A} \rightarrow \mathscr{R}
R:S×A→R ;
(4)状态转移函数
T
:
S
×
A
→
Π
(
S
)
T: \mathcal{S} \times \mathcal{A} \rightarrow \Pi(S)
T:S×A→Π(S),将动作映射为概率。用
T
(
s
,
a
,
s
′
)
T(s,a,s')
T(s,a,s′)表示在状态
s
s
s采取动作
a
a
a后,进入状态
s
′
s'
s′的概率。
状态转移函数说明下一个状态是当前状态和所采取的动作的函数。奖励函数说明期望的及时奖励是当前状态的函数。模型具有马尔可夫性,也就是说,下一个状态只与当前的状态和动作有关,与之前的都无关(一阶马尔可夫),可以参考Bellman(1957),Bertsekas(1987),Howard(1960),Puterman(1994)。
尽管MDP可能有无限的状态和动作空间,接下来先考虑有限状态和有限动作的问题。在第六节,将介绍连续输入输出的问题。
3.2 从给定模型中寻找策略
主要考虑无限时域模型,因为它存在稳定的最优策略(Bellman,1957)。当我们说一个状态的值的时候,实际上是指从改状态起执行最优策略可以得到的奖励和的期望。用
π
\pi
π表示完整的决策策略,状态的最优值可以写成:
V
∗
=
m
a
x
π
E
(
∑
t
=
0
∞
γ
t
r
t
)
V^*=max_{\pi} E(\sum\limits_{t=0}^{\infty} \gamma^t r_t)
V∗=maxπE(t=0∑∞γtrt)
【笔者:这篇文章应该已经是很早的综述了,下一篇会总结一下神经网络的要素,然后再具体总结强化学习的理论+实践。】