【优化】在线学习(MAB)与强化学习(RL)入门系列

【优化】在线学习(MAB)与强化学习(RL)入门系列

编者按:这会是一个关于在线学习和强化学习的入门向系列,专门给对这两个方面(其实也可以看成是一个方面)感兴趣的同学们做个科普,和个人向的解读。当然如果你已经是在做这些方面研究了,这个系列可能帮不到你什么。后续的内容会发布在本人知乎个人专栏和运筹OR帷幄的知乎专栏,而不一定会继续在公众号上更新。这个系列的内容也可能会成为运筹OR帷幄优化理论电子科普丛书的一部分。


文章作者: @覃含章
责任编辑:@覃含章
文章发表于微信公众号【运筹OR帷幄】:【优化】在线学习(MAB)与强化学习(RL)入门系列
欢迎原链接转发,转载请私信 @运筹OR帷幄 获取信息,盗版必究。
敬请关注和扩散本专栏及同名公众号,会邀请全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态:『运筹OR帷幄』大数据人工智能时代的运筹学

一、一些参考文献

这个系列预期至少会有个5~10篇文章(MAB和RL大概各占一半),主要仅仅涉及理论体系,而基本不会涉及实际算法如何去实现。这边先说一下我主要会用(推荐)的一些参考文献。

MAB:

主要就是微软研究院(Microsoft Research)的Aleksandrs Slivkins的这本关于MAB的draft book Introduction to Multi-Armed Bandits (还未正式出版,他最近还一直在完善): 这是我个人认为目前市面上最适合入门的MAB教科书。整本书的逻辑都很清晰,且数学derivation也尽可能都是从first principles出发,对许多结果的proof都是我见过的写的最简洁的,Slivkins本人对这个领域贡献也非常大,他对很多细节都有很深入的思考,所以才能写出这么neat的教学向内容吧。个人非常推荐,并将主要在MAB的内容介绍他的思路。

Slivkins之前,另一位MAB领域的大神Sebastien Bubeck(也在MSR...)的讲义Regret Analysis of Stochastic and Nonstochastic Multi-armed Bandit Problems可能是市面上唯一找的到的系统性阐述各方面MAB理论的讲义。 Bubeck自然也是MAB领域一位极具创造力和洞察力的大牛,不过个人认为他的这本讲义并没有Slivkins的书适合入门,因为Bubeck的讲义风格一如他写博客的风格,很多地方非常handwavy,即不给证明细节而跟你“简单聊聊”这些个结果和背后的intuition。。。所以建议有一定基础的同学再去读他的内容,这样可能反而收获会更大一些。

RL:

零基础的情况下,自然Richard Sutton和Andrew Barto的Reinforcement learning: An introduction是不能错过的。这两位也是上世纪90年代最早引入RL这个名称的人。这本书的好处是涉及的内容很广,最近也正好再版。总之是RL学习者肯定不能错过的,不过因为内容太多其实我也一直没读完。。

Dimitri Bertsekas最近的新书Reinforcement Learning and Optimal Control。值得注意的是,这本书目前也还是在草稿(draft)状态,预计会在明年正式搞定。Bertsekas老爷子是新晋的2018年冯诺依曼奖获得者,是动态规划(dynamic programming,DP)领域的奠基人之一,其中之一的原因便是他和他的学生/合作者 John Tsitsiklis曾经研究并撰著的领域Neuro-dynamic Programming(NDP),这其实就是现在火热的深度强化学习(deep reinforcement learning)的理论前身。John因此今年和Dimitri一起获奖(他们一起获奖的另一原因是他们同时也是并行和分布式计算理论的先驱,这里就不细谈了)。我们知道,RL和DP,尤其是近似动态规划(approximate dynamic programming, ADP)其实并没有什么很本质的区别(RL对于不少做控制、优化的人来说就是DP)。老爷子的新书便是从DP的角度来讲RL里面的各种建模和算法,也有不少很有意思的观点。

前两个材料可能还是有点经典。因此,我将着重谈一些比较新的内容。这一方面,比如Benjamin Van Roy, Daniel Russo, Ian Osband都是最近几年对(deep) RL非常有建树的年轻学者。尤其是这个Ian Osband(现在是Google Deepmind的研究员,对,Deepmind就是那个搞出了AlphaGo的地方)的许多文章非常值得初学者去研读。比如他的PhD thesis,还有这篇(也是他thesis的核心),发表在JMLR上的长文Deep Exploration via Randomized Value Functions,在贝叶斯的框架下,不仅谈了理论和实验结果,最重要的是大量谈“我们应该如何做好RL?”。我觉得在研究任何问题的时候,在我们在具体上手之前弄清楚我们到底要做什么,要怎么做真的是很重要的。


二、什么是在线学习(online learning, MAB)/强化学习(RL)?

好了,系列第一篇文章,我沿袭Sutton和Barto的书,也从MAB开始讲起。实际上,MAB问题可以看成RL的一类特例问题,我也将在系列前几篇文章着重谈谈MAB这个特例,然后再带大家过渡到解决一般Markov Decision Process(MDP)的RL算法。

我们知道,现在市面上各种“学习”到处都是。比如现在大家都特别熟悉机器学习(machine learning),或者许多年以前其实统计学习(statistical learning)可能是更容易听到的一个词。那么强化学习的“学习”跟其它这些“学习”有什么区别呢?这里自然没有什么标准答案,我给这样一个解释(也可见Sutton & Barto第二章引言):在传统的机器学习中,主流的学习方法都是所谓的“有监督学习”(supervised learning),不管是模式识别,神经网络训练等等,你的分类器并不会去主动评价(evaluate)你通过获得的每个样本(sample)所进行的训练结果(反馈),也不存在主动选择动作(action)的选项(比如,可以选择在采集了一些样本之后去采集哪些特定的样本)。意思就是,在这些传统的机器学习方法中(实际上也包括其它无监督学习或者半监督学习的很多方法),你并不会动态的去根据收集到的已有的样本去调整你的训练模型,你的训练模型只是单纯被动地获得样本并被教育(instruct,作为对比,active learning主要就是来解决这一问题的)。

而强化学习主要针对的是在一个可能不断演化的环境中,训练一个能主动选择自己的动作,并根据动作所返回的不同类型的反馈(feedback),动态调整自己接下来的动作,以达到在一个比较长期的时间段内平均获得的反馈质量。因此,在这个问题中,如何evaluate每次获得的反馈,并进行调整,就是RL的核心问题。

这么讲可能还比较抽象,但如果大家熟悉下围棋的AlphaGo,它的训练过程便是如此。我们认为每一局棋是一个episode。整个的训练周期就是很多很多个epsiode。那么每个episode又由很多步(step)构成。

动作——指的就是阿法狗每步下棋的位置(根据对手的落子而定)

反馈——每一次epsiode结束,胜负子的数目。

显然,我们希望能找到一个RL算法,使得我们的阿法狗能够在比较短的epsisode数目中通过调整落子的策略,就达到一个平均比较好的反馈。当然,对这个问题来说,我们的动作空间(action space,即可以选择的动作)和状态空间(state space,即棋盘的落子状态)的可能性都是极其大的。因此,AlphaGo的RL算法也是非常复杂的。我今天在系列首篇就不详细讨论AlphaGo算法(放到以后,介绍更一般的MDP和RL算法之后),而是先介绍给大家MAB的问题框架,从这个相比围棋简单的多的问题中(一类特殊的MDP)希望先给大家一些更直观的认识。


三、老虎机问题:MAB框架

作为引子,我们考虑最基本的MAB问题(MAB问题现在也有各种变种,有些已经非常复杂了......)。如上图所示,你进了一家赌场,假设面前有K台老虎机(arms)。我们知道,老虎机本质上就是个运气游戏,我们假设每台老虎机 i都有一定概率 Pi吐出一块钱,或者不吐钱( 概率1-Pi )。假设你手上只有T枚代币(tokens),而每摇一次老虎机都需要花费一枚代币,也就是说你一共只能摇T次,那么如何做才能使得期望回报(expected reward)最大呢?

这就是最经典的MAB场景。那么问题的核心是什么呢?自然,我们应该要假设Pi们是不太一样的(不然怎么摇都一样了),即有一些老虎机比较“好”(更容易吐钱),有一些则比较“差”(不太容易吐钱)。回到RL的框架,我们的动作是什么?即每次摇哪台老虎机。我们的反馈呢?即我们摇了某台特定的老虎机当回合可以观察它吐了钱没有。

这里当然还有个重要的统计学/哲学问题:即我们是贝叶斯人(Bayesian)还是频率学家(frequentist)。对贝叶斯人来说,我们在一进入赌场就对每台老虎机扔钱的概率Pi就有一个先验分布(prior distribution)的假设了,比如一个很常见的我们可以用Beta分布。如果我们认为大概率都应该是0.5,即对半开,而不太可能出现一些很极端的情况,我们就可以选择Beta(2,2)分布作为我们的先验分布。然后在我们真正摇了老虎机之后,根据相应的反馈,我们就可以调整Pi们相应的后验分布(posterior distribution)。比如如果某台机器摇了四五次一直吐不出钱,我们就应该将这台机器的吐钱概率的分布往左推,因为它的Pi大概率应该是小于0.5的。那么,你的任务便是要在有限的时间内找出Pi后验分布比较靠右的那些机器(因为他们更容易吐钱),并且尽可能多的去摇这些比较赚钱的机器。

而如果你是频率学家,就没什么先验或者后验分布了,你假设你一开始对这些机器的吐钱概率一无所知。你认为每个机器的Pi是个确定的值。那么,你的任务就是要在有限的时间内找到那些高Pi的机器,并尽可能多的去摇它们,以获得更多的回报。那么这里我们注意到这类问题的一大特点,即我们只有T次摇机器的机会,如何去平衡这T次中exploration(探索)和exploitation(挖掘)的次数。探索意味着广度,比如如果你是频率学家,你一开始什么都不知道,你至少每个机器都需要稍微摇几次(假设T>K,不然问题就无法搞定了)才能对每个机器吐钱概率有个大概感觉。然后,你可能会缩小你的搜索范围,再几台机器里重点实验,最后可能就专门摇一台你觉得最容易吐钱的机器了。当然,我们之后会看到这种办法也未必是最好的。不过今天的文章里我们不谈具体的算法,因此这个问题先抛给大家思考了。

本节最后,我们指出这个MAB问题可能的一些(更复杂的)变种。首当其冲的在于,我们前面的讨论默认了环境是不会变化的。而一些MAB问题,这个假设可能不成立,这就好比如果一位玩家发现某个机器Pi的很高,一直摇之后赌场可能人为降低这台机器吐钱的概率。在这种情况下,MAB问题的环境就是随着时间/玩家的行为会发生变化。这类问题,在合理的假设下,也是有不少研究和相应的算法的。目前做的最多的假设,也就是所谓的adversarial bandit(就不是stochastic bandit了),就是说这些Pi会被一个“对手”(也可以看成上帝)设定好。如果这是事先设定好,并且在玩家开始有动作之后也无法更改,我们叫做oblivious adversary setting; 如果这个对手在玩家有动作之后还能随时更改自己的设定,那就叫做adaptive adversary setting, 一般要做成zero-sum game了。此外,最近也有一些随机但nonstationary的假设下的工作。

另外MAB有一类很重要的变种,叫做contextual MAB(cMAB)。几乎所有在线广告推送(dynamic ad display)都可以看成是cMAB问题。在这类问题中,每个arm的回报会和当前时段出现的顾客的特征(也就是这里说的context)有关。同样,今天我们不展开讲cMAB,这会在之后花文章专门讨论。

另外,如果每台老虎机每天摇的次数有上限,那我们就得到了一个Bandit with Knapsack问题,这类问题以传统组合优化里的背包问题命名,它的研究也和最近不少研究在线背包问题的文章有关,之后我们也会专门讨论。还有很多变种,如Lipshitz bandit, 我们不再有有限台机器,而有无限台(它们的reward function满足利普西茨连续性)等等。。


四、MAB问题的样本复杂度(Sample complexity)

今天我们虽然不聊算法,但是sample complexity着实也是个很有意思的话题。同时,也可以帮助初学者先掌握regret(真心想知道中文这个词是如何翻译的:D)的概念。我们这里仅谈MAB问题的sample complexity, 那么大家也应该会知道这是和RL问题的sample complexity也是密切相关的。Sample complexity, 简单来说,是研究有哪些事情任何bandit算法都是不能做到的。

简单起见,我们只考虑最简单的情形,即我们是频率学家,且环境是stationary的K-arm bandit,也就是说每个arm的reward分布是IID(独立同分布)的,不会随着时间和玩家的行为变化。然后,我的文章并不会讨论具体证明这些结果的技巧和步骤(具体可见Slivkins书的第二章,是目前能找到的对这类bound最简洁的证明),而旨在给出一些更high-level的见解。

凡事都要从最简单开始。我们先令K=2,即只有两个arms。MAB的样本复杂度,实际上可以看成是这样一个信息论/统计学问题:即,我们有两个Bernouli分布Ber(p1),Ber(p2)(注意我们假设p1≠p2 ),那么我们至少需要分别从这两个分布中获得多少样本(samples),我们才能以较大概率将这两个分布区分开来?

因为实际上只有两个arm,以及MAB问题的特性,实际上,我们只需要能够以较高概率判断出p1和p2哪个更大就行了。因为一旦我们能判断出哪个arm的吐钱概率更大,我们自然也就知道了哪个arm更好,我们便自动获得了最优算法(一直摇这个更好的arm就行了)。

而这个问题,不就是说,至少要有多少样本,我们才能高置信度地做以下的假设检验?

当然到这里还没有结束,有个小技巧便是需要randomization,或者说是计算复杂度理论里最基本的probabilistic method。这个原因也很直观,如果我们构造的例子是确定性的(deterministic),那么必然要么p1>p2或者相反,那么自然在这两种情况下(分别)有两个极其愚蠢的算法都不需要任何样本就能直接“蒙”对,比如前者就是直接猜p1更大的算法,后者就是直接猜p2更大的算法。因此,这里的小技巧(trick)就是说我们构造一个随机化(randomized)的例子,比如说在这个例子里0.5的概率p1>p2 ,而0.5的概率p1<p2 (你可以想象成我用了两套对arm进行index的方法,这样原来的arm 1就变成了arm 2,原来的arm 2变成了arm 1)。这样的话之前那些愚蠢的算法就至少会有0.5的概率猜错了。而我们的目标就是只要证明任何算法都有一定的概率在这个问题上犯错就ok了!

想明白了以上几点,加上一些KL divergence(最基本的信息论)知识,包括一些什么Pinsker不等式,你就可以证明本节的主要内容了。哦,再让我来介绍下regret的概念。一般来说,我们设计算法的目标就是让期望的regret(一般研究的是regret的upper bound)比较小。那么sample complexity,说的则是相反的一件事情,即无论什么算法,对MAB问题,你期望的regret都至少应该有多大(给的是lower bound)。具体来说,在我们的K-arm例子中,记最大的 Pi 为P* ,我们的算法在时刻t选择的机器是i(t) ,那么我们的算法所造成的regret便是:

即,和某个先知相比(一开始就知道P*),我们所获得的回报和他获得的回报在T时间段内的差距。

好了,我们终于可以给出经典的两类lower bound。一类是 T½ 的,一类是logT 。你可能要说了, logT的不是从阶上比T½更低嘛,那岂不是更紧?而实际上,这两类bound其实可以看成一类,因为与问题相关的系数无关,而后者有关(我们很快会看到系数具体是什么)。具体为什么这两类bound其实可以看成一类,我在后面介绍UCB算法的时候会再说,感觉在那边会更容易说一些。

注意,这两类lower bound都是有意义的。因为如果你胡乱蒙的话,你的regret至少会随着时间线性增长(即阶为~T)。因此,这两类也叫做次线性(sublinear)的regret。


定理1. 对这类MAB问题,存在某一个例子,使得任何的算法都满足

定理2. 对这类MAB问题,存在某一个例子,使得任何的算法都满足

这里△(a)的定义是△(a):=P*-Pa ,即这个arma和最好的arm在期望reward上的差距。这个系数也是我所谓的这类bound实际上里面有跟问题相关的系数。直观理解,虽然 T的阶比前一类bound要紧了,但是这里乘的系数却更大了。

最后,我们不加说明的点出,贝叶斯版本的K-arm MAB也有相同阶的这两类lower bound。以及,我们确实有算法,可以达到这两类regret,即它们在理论意义上是最优的(以后的内容!)。



【优化】版块目前招募副主编,要求:

1. 国内外运筹学、优化理论等相关专业博士在读或以上

2. 有时间有热情有能力去分享自己的想法,做一些运筹学或者人工智能的科普工作

3. 对优化理论其中任何一个领域比较熟悉即可

4. 有工作热情,每周能有时间付出

5. 具有创造力,能够有独立创作专题系列文章的能力


文章由『运筹OR帷幄』原创发布,如需转载请在公众号后台获取转载须知

可以在 本公众号后台 回复关键词:“MABRL”获得本文参考文献的pdf版本,如果觉得有用, 请勿吝啬你的留言和赞哦!~


扫二维码关注『运筹OR帷幄』公众号:

点击查看『运筹OR帷幄』志愿者招募介绍及加入方式

编辑于 2019-01-12