Deep Reinforcement Learning ICML 2016 Tutorial & My Research Interest

那么,在第一篇博客把该说的开场客套话都说了【对】,感谢的人目前其实也就一个(就不感谢罗方浩-请见右侧fanhao’s blog),那么如上一篇文章最后所约定的,ICML2016上的这篇Tutorial的个人大致解读就在这里开始吧。

首先声明本人只是一个转过专业,但喜欢玩情怀的AI准研究生,因此在解读的过程中难免出现很多的纰漏和失误,还望大家指出并通过我个人的邮箱和Linkedin赐教,言辞尖锐一点没有关系,但希望不要出现“装逼”“就这水平还解读文章”之类的人身攻击,大家起跑点不同但都在努力着,希望更多的是交流而不是互相看扁。

作为2016年来最受科技界瞩目的公司没有之一,DeepMind直到目前为止都保证了学术论文的高产出率和高质量。这次算是他们对于目前深度增强学习方面工作的一个总结和成果展示,其中就包括了震惊世界的那只道格“AlphaGo”。当然,这是一篇顶级学术会议的tutorial而不是商业展示,因此成果方面他们只在最后用了寥寥数笔描述。当然,版权所有,侵权必究。因此附上资源链接: Deep Reinforcement Learning Tutorial

这篇Tutorial主题分为五部分:深度学习及增强学习,深度增强学习的三个原创衍生:Value-Based, Policy-Based和Model-Based,最后一部分是成果展示。我将对此尽量在少涉及数学的情况下作出解读,对,尽量~

本博文主要讲述第一部分:综述,深度学习和增强学习。

Section 0: Nutshell Overview

行业永远以应用为先,所以这篇Tutorial在最开始先给我们讲述了深度学习和增强学习各自在智能系统中的目的。

深度学习(Deep Learning, DL)是一个通用的框架。在这个框架中,我们拥有直接的输入以及给定的目标,框架唯一要做的事就是在“知识”较为缺乏的情况下找到能够实现这个目标的方法。增强学习(Reinforcement Learning, RL)则不同,它主要是为能够运转的智能体系统(agent),使用奖惩信号来影响系统接下来的行动,最终目的是选择能够最大化自身利益(reward)的方案和目标。简单地说,对于一个智能系统,深度学习是给定目标和数据找到实现目标的方法的框架,而增强学习是让系统找到使得自身利益最大化的目标的框架。

因此,DeepMind在这里提出了他们对于智能的理解,当然这也是很多人的看法:AI = RL + DL。通用智能的发展同时需要RL的目标和DL的方法。

之后一个slide就是秀了一波成果,略过

Part I: Deep Learning

这一部分就是一个对于深度学习的综述,总体上,一个深度框架(deep representation)由很多个带有权重的函数构成,每个函数元素都可以进行基于链式法则的梯度回归(Back-Propagation)。而深度神经网络中,函数部分使用了线性变换结合非线性激活函数(non-linear activation)前向输出,反向输出则是基于输出损失函数(loss function)使用了SGD,权重在多层定值就是多层神经网络(MLP),在时序间共享就是循环神经网络(RNN),在区域间分享就是近年CVPR大杀四方的卷积神网(CNN,ConvNet,对,这笔真的很邪门)……总之就是我们传统课程里学神经网络的那几套,很多大学相关课程里都介绍得很详尽了。这条路是套路,但并不长……

Part II: Reinforcement Learning

增强学习相对于深度学习是这篇Tutorial的重点。这里废话也说多一点吧。

仔细想想我之所以对于增强学习第一眼看上去很亲切,很大一部分原因是因为我在大学最后一年修了一门叫做”Multi-Agent”的课程。我在这门课上的发挥并不好,但代理系统(agent)的概念我自认为还是不会轻易地忘掉。而增强学习的核心就是这个所谓的代理系统。我们先看看什么叫代理系统:

An agent is a computer system that is capable of independent (autonomous) action on behalf of its user or owner (figuring out what needs to be done to satisfy design objectives, rather than constantly being told).

--Michael WooldridgeAn Introduction to MultiAgent Systems

其实上文就传达了一个意思:代理系统就是一个可以自行确定目标并做出行动的系统,对于人类来说,这个系统叫做“大脑”。

一个代理系统是要不断和周围的环境进行交互并确定行动目标进而做出行动的。就像前面所说的,它的主要任务是找到使其自身利益最大化的目标,而这个目标的确定过程就是代理系统的交互算法。

和之前一样,我在这部分会尽量避开数学解释。如图中所示,在每单位时间(time-step),代理系统要执行三个动作:
1)执行指令(action);
2)接收观察和测量到的外部数据(observation);
3)接收奖惩信号(scalar reward);
而外部环境则执行下面三个动作:
1)感知代理系统的动作并作出反应;
2)为代理系统生成下个时间段的外部数据和奖惩信号。

在时间段t的时候,之前所有的指令,外部数据和奖惩信号会被储存在某个地方,称为经验(experience),这个很好理解;而代理系统目前的状态则是由过去的经历决定的,非要扯一下数学的话:s(t) = f(experience),嗯,也不难嘛~

而一个应用了增强学习的代理系统则一般情况下除了前面所描述的所有性质之外,包含以下至少一个功能:
1)政策(policy),也就是代理系统对于外部环境做出反应的手段,一般用行为函数(behaviour function)描述;
2)评估函数(value function),顾名思义,对于当前系统的状态和/或执行结果做出评估;
3)模型(model),代理系统对于外部环境的表示,也就是它“眼里”的环境。这个部分对于相同的环境,不同代理系统所呈现的模型可能除了几个基本参数值外会有很大差别。

在接下来的一篇文章里我将会介绍前文提到的的三种增强学习衍生模型,这三种模型也就是从上述的三种功能延伸出来的。下一篇文章可能会提到很多的数学知识,请大家~也包括我自己做好学习准备【炉石的梗】

关于代理系统方面的更多知识请大家参考利物浦大学的相关课程:COMP310

Part III: My Research Interest

好吧,终于是到了我个人陈述的这一块了。TMD全体让开,老子要装逼~

坦白地讲,我是一个非常随性和没有目标性的人,看到什么感兴趣的东西就会想要知道更多,想要在这个东西上搞点什么名堂。所以我和大部分科研派的学生不太一样———他们大多从一开始就有了自己的努力目标和工作领域,四年来甚少有什么改变。而我说不定半年就会改变一个工作领域(事实上确实是这样),所以我做过的项目涉及到的知识非常杂,从最初的水下声学(Underwater Acoustics)到聚类算法(Clustering),到视觉(Machine Vision),到SLAM,再到目前在所里做的LSTM~我自己都快讲不下去了~cao~到现在一篇论文都还没有,MDZZ

不过,我同时个人还有一个准则:热门领域,冷门方向。在深度学习大肆泛滥的今天,我反而似乎在这边找到了我的一个归宿:增强学习和半监督学习。至于选择这个的原因嘛~对没错,我就是不想搞纯DL,不想和大家一起玩啊。即使深度学习现在真的很容易出成果,很容易搞出名堂,甚至很容易赚钱,但,对啊,没什么意思。

其实如果认真点说的话,个人的愚见:深度学习的各种技术已经较为成熟,主要的问题其实大多都在应用方面。而深度学习想在目前的基础上实现质的飞跃,必须允许其他学习算法例如增强学习和半监督学习(Semi-Supervised Learning, SSL)的介入,否则深度学习的竞争和创新就真的变成了单纯的数据争夺战———谁手上数据多谁屌。今年CVPR上神经网络大牛Yann Lecun也曾吐槽说他看到的质量还不错的论文没有一篇不用ConvNet的!这就很尴尬了~所以至少我个人,作为一名即将步入高等院校的研究生,需要有着将眼光放在创新点上的自觉。这也是我目前希望能够学习增强学习和SSL的本质的源动力。当然我个人喜欢瞎搞的性格也占了一定成分在这个决定里面。

所以,我希望能够以这个博客为一个开始,定下我的学习方向,将我学习和研究方面的一点一滴都记录在这里,除了一些不方便透露的东西(比如有时候跟人家口头签的保密协定~),我所有的想法和成果,都将会毫无保留的记录在这里,供大家批评和指教!期盼大家的意见和提携!小弟在此谢过了!

刘学琛

==================
另:Deep Reinforcement Learning Tutorial的坑将不会填上,原因是我发现了一篇解释更详尽,并且更加具有前瞻性的博文———来自OpenAI课题组成员,前斯坦福博士生Andrej Karpathy的Deep RL的Overview。在这里奉上链接:Andrej Karpathy's Deep RL。我在这两天将会详尽地阅读这篇文章但鉴于不是长者,能力和姿势水平有限,不会做出翻译,如有问题希望通过各种渠道和大家一同交流。