Facebook 田渊栋:NeurIPS 2020 中了两篇,感觉还算不错

作者 | 田渊栋

编辑 | 陈大鑫 

转自 | AI科技评论

做理论需要的基础知识多,困难,周期长,没有直接经济效益,还只能一两个人单打独斗且无法使用大量计算资源,每个因素都和现在的主流发展方向(强调团队合作,强调速度和新闻性,代码开源,大数据,大量计算资源)背道而驰。

而且,理论研究论文大多艰深、晦涩难懂,结论依赖不现实的假设,难免令人望而却步乃至失望。相比之下,实验研究效果立竿见影,传播快。

田渊栋如此说道。

理论研究要让少数的、有情怀的人去做,远离市场噪杂和竞争,慢慢地钻研。“一万个硕士博士里有一个怀着这个理想,那迟早有一天会做出来的,大部分人不用费这个力气的。”

田渊栋又道。

昨日,NeurIPS 2020放榜,9454篇论文提交,1900篇接收,录取率仅为20.09%。

上海交通大学本硕、卡耐基梅隆大学机器人系博士,现任 Facebook 人工智能研究院(FAIR)研究员和研究经理的田渊栋这次投稿了三篇主打文章(一作或者最后一作),中了两篇。

田渊栋表示:还算不错。

得知自己中了两篇论文之后,作为知乎上的热爱分享、传播知识的大V,田渊栋第一时间写了两篇小博客各自介绍了这两篇篇论文:

第一篇设计了一个新的算法,来试图解决多智能体合作时联合优化策略的问题。

第二篇提出了一种新的黑盒优化的方法:LaMCTS (Latent Action Monte Carlo Tree Search),这个方法基于蒙特卡罗树搜索,但在这上面有改进。

AI科技评论第一时间联系到了田渊栋博士,经授权,现把内容整理如下。

在介绍两篇论文工作之前先把田渊栋博士的NeurIPS后感想转述如下:

这篇一作文章的理论在deadline前四天才被发现,在理论被发现之前,对策略变化的得分计算一直用的是一个极其复杂的方案,考虑各种状态进入和离开信息集的情况,光代码本身就写了一周,修理各种corner case修到头都秃了。最后实验上的效果也确实是单调上升,但一直证明不出来其正确性。

直到某一天晚上意识到根本不需要这么复杂,推出了非常简单的公式之后不敢相信自己的眼睛,立即重写代码,从晚上十点半写到十点四十分,跑出来的结果是一样的,速度还快。

数学的美,可能正是美在这里。 

另一篇最后一作的中稿文章基本上我从头到尾都重写过一遍,包括abstract,introduction,方法还有实验部分。反观第三篇没中的,其实整体思路及实验效果都非常好,但因为写作只把关了abstract和intro,导致方法论的描述部分出现了低级失误,给reviewers造成了巨大的误解,可惜了。

做研究,文章其实贵精不贵多,现在铺天盖地的AI论文,每天看arXiv都看不完,但留下印象的,给领域提供实质性贡献的,其实并不多。

我每次向别人介绍FAIR内部的评价体系,都会说“我们不看论文数量”,每半年打绩效,只问有没有Top-3的工作,在每篇工作里的具体贡献是什么:思路是谁提出的?代码是谁写的?实验是谁跑的?效果是谁调上去的?定理是谁证的?文章是谁写的?其它的各种挂名文列上去就行,也没人会在意。这样算下来,花大力气发一篇好工作是正分,发一百篇毫无关联的水文是零分甚至是负的印象分,这样也可以鼓励大家多出成果少搭便车。

我也在向这方面一直继续努力。曾经挺羡慕那些文章列表上百的朋友们,但后来才明白什么才是自己想要走的道路。

之后的ICLR还会延续同样的模式,除开被拒转投的文章,还会有两篇新的文章出来,还是老样子,一篇一作,一篇最后一作。两篇文章都非常不错,而教师-学生的神经网络理论分析也将回归,用在一个大家想不到却正是极其适合的地方,得到极其有趣的结果,敬请期待。

接下来田渊栋博士对两篇中奖论文的介绍。

1

论文一

论文链接:https://arxiv.org/abs/2008.06495.pdf

论文作者:Yuandong Tian, Qucheng Gong, Tina Jiang

这篇文章设计了一个新的算法,来试图解决多智能体合作时联合优化策略的问题。

对于不完美信息两人零和游戏,比如说两人德州扑克。

用现用的一些算法(比如说CFR)可以在理论上保证当迭代次数足够时一定收敛到纳什均衡点。但不完美信息多智能体合作的策略优化则要困难很多,并且往往会陷入局部极小值。

比如说有两个玩家合作,玩家1抽一张暗牌红桃A或黑桃A,然后向玩家2发一个红桃A或黑桃A或方块A的信号,让玩家2猜A手上的牌是什么,猜中得1分,猜不中则得0分。

显然在这种情况下,存在 种协议,这6种协议是完全对称的,采用任何一种玩家2都可以猜中得1分。但如果规则稍微改一下,比如说发送黑桃A有0.1的附加分,那若玩家1和玩家2采用“抽红桃A发红桃A, 抽黑桃A发方块A”的协议,就赚不到这个附加分,是局部极小策略。但玩家1和玩家2单方面都不想改变自己的策略,因为单方面改变的结果是对方不理解自己策略的改变,导致得分的下降。

那在这种情况下,要如何去优化各自的策略呢?很多策略优化方案采用就是按坐标优化(Coordinate Descent),即假设其它人的策略不变,然后优化自身的策略。这显然在这里不太可行。而同时优化多个智能体的策略,在不完美信息的条件下,又是比较困难的,见下图:

假设带阴影的这些信息集(Information Set)上的策略需要优化,但问题在于如果改变了上游的策略,则下游信息集内各状态的可到达概率就会发生各种变化,从而隐含地改变下游的期望得分;而下游策略的改变,又会改变上游的期望得分。

这就使得策略与收益得分相互间的影响变得非常复杂,而且存在“牵一发而动全身”的关系,让联合优化变得非常困难——如果我们只想修改1000个信息集中的3个信息集的策略,那其它997个信息集上的期望得分也会发生变化,即便它们之上的策略并没有发生任何改变。

这篇文章的一个主要贡献,就是找到了一个”策略变化密度“(policy-change density)这样一个量,满足以下两个条件:

1、 不管上下游的策略是否发生了变化,如果一个状态的当前策略没有变化,那策略变化密度就为0。

2、策略变化密度在所有状态上的总和,就是整个游戏得分因策略变化后的改变量。

如果一个状态的当前策略没有变化,那么策略变化密度(policy-density change) 正好等于零。这个和周围的策略有没有变化无关。

有了这两个性质之后,得分因策略变化后的改变量就可以分解成局部项了:如果只修改了3个信息集的策略,那么总的期望得分的增加就完全由这3个信息集上的策略变化密度的和来决定。这样就极大简化了计算。

       

策略变化后,整个游戏的得分改变量在每个信息集上的局部分解。

有了这个公式之后,再要联合优化策略就变得相对容易了。

这篇文章采用的是简单的深度优先搜索,从上游策略出发,先改变上游策略,然后给定上游策略,再改变下游策略,如此往复,然后看最后整个游戏的得分改变量的大小,最终选出最好的新策略组合。

这样就能达到联合策略搜索(Joint Policy Search)的目的,并且这样的算法得到的策略性能一定是单调上升的。

运用这个方法,我们先在一些小规模的非完美信息合作游戏(主要是桥牌叫牌阶段的简化版)上进行了测试。我们从CFR得到的联合策略开始,用搜索算法对当前的联合策略进行改进(CFR1k+JPS),直到陷入局部极大值为止。结果发现确实有用,新的策略都改进了得分,而且越复杂的游戏,改进越大。

这部分代码已经开源:

https://github.com/facebookresearch/jps

联合策略搜索在四个不同的小游戏上都改进了游戏得分。

最后当然是在真的桥牌叫牌环境下进行测试。

们先用A2C自对弈训练了一个还不错的基线策略,然后用上文提到的联合策略搜索(JPS)来改进队友间的叫牌约定,并且和目前较好的桥牌AI软件(WBridge5)进行了一千局开闭室比赛。

比赛是JPS和JPS一队,WBridge5和WBridge5一队。最后发现和基线策略相比,我们的效果确实变好了。

注意这里的两阶段训练没有用到任何人类对局,为的是能够无监督地学到全新的叫牌约定——让机器学到人类所不知道的新东西永远是很有意思的。

当然这里有个问题是我们只做了叫牌,没有做打牌,叫牌完了之后游戏就结束了,并以双明手(double-dummy)的分数,即所有牌摊开来打,来定胜负。

WBridge5是以正常叫牌加打牌的模式来优化的,并且事先也没有领教过我们学出来的新叫牌约定,所以这个比较不是特别公平(也被reviewer们使劲狂喷),但目前只有这个办法(这部分代码暂不开源,因为各种小trick比较多,之后等全部搞完了再说)。

 IMPs/b (平均每桌的国际比赛分)这个应该算是目前最好的结果了(State-of-the-Art)。

 

2

论文二

论文链接:https://arxiv.org/abs/2007.00708

论文作者:Linnan Wang, Rodrigo Fonseca, Yuandong Tian

(我们相关的工作还有一篇叫LaNAS,主要是将这个方法用在神经网络架构搜索(NAS)上:Sample-Efficient Neural Architecture Search by Learning Action Space https://arxiv.org/abs/1906.06832。Linnan Wang, Saining Xie, Teng Li, Rodrigo Fonseca, Yuandong Tian)

这篇主要是提出了一种新的黑盒优化(Black-box optimization)的方法。这个新的方法叫LaMCTS (Latent Action Monte Carlo Tree Search),顾名思义这个是基于蒙特卡罗树搜索(Monte Carlo Tree Search)的,但在这上面有改进。

传统的MCTS的目标是在给定状态空间(state space S)、行动空间(action space A)及状态转移函数(transition matrix, S, A -> S') 之后,通过搜索找到最优的行动序列,以获得最大的奖励。

MCTS搜索是通过增量构建一棵以初始状态 为根的树来实现的,树中的每个状态结点都有一个简单的模型,描述如果选择行动,根据过去的经验会有多少奖励。新叶子结点的构建则权衡了过去的经验(exploitation)和探索新的结点(exploration)这两个目标,随着搜索的进行,新叶子会更多集中在有希望的区域里面。

乍一看,MCTS和规划有关,和黑盒优化似乎无关,那它们之间是如何建立联系的呢?

一般来说,黑盒优化都是从一个初始解出发,通过不停迭代来改进当前解,直到无法再改进为止。

其主要性能指标是:达到同样的函数值,需要多少次黑盒函数的调用,越少越好。因为在实际问题中,需要用黑盒优化的场景,往往是函数调用开销非常大且没有导数信息的场景,比如说函数值是一个复杂系统运转一天后的平均效率,或者是耗费巨资才可获得的一个实验结果,等等。

这个黑盒优化的迭代过程可以用各种方案去刻划:比如说从一个还不错的起始点开始的局部搜索,一个从粗到细的逐步精化,或者说局部渐进和长程跳跃的组合(例如进化算法的演化和突变),等等,每种方案都对应不同的行动空间。

但从本质上来说,优化和“下棋打游戏”等问题很大的不同点在于,优化本身没有”行动空间“的概念,对它而言,行动空间如何定义都无所谓,只要最终解质量好就行。

与其使用各种人工定义,自然的想法就是学一个行动空间出来。这就是这一系列文章的贡献。 

我们以“解空间的切分”作为广义上的行动空间,而具体的切分方式,则是在每个MCTS的树结点上,用过去获得的样本点学一个最好的切分函数出来——我们希望这个切分函数能将好的和差的样本点尽量分开,这样一刀切下去,如果能将质量差的解空间统统切掉,以后少分配些搜索资源,那就是最理想的了。

而MCTS兼顾exploitation和exploration的特性,使得即便一开始切得不够好,以后也有扳回来重新划分空间的余地。而每个叶节点的空间,就是它的所有祖先节点的切分的交集。

以下是一个神经网络架构搜索(NAS)上的简单例子。

假设我们要搜索一个一至五层的卷积网络,每层的filter数是32或是64,filter大小可以是3x3或者5x5。考虑两个不同的行动空间,一个是逐层确定每层的参数(filter数及filter大小),另一个是先确定网络层数,再确定每层的参数。

从图上可以看到,明显是先确定网络层数的方案效率更高(同样样本下准确率更高),因为相对其它参数,层数对最后网络准确率的影响更大,如果先按层数切分搜索空间,那搜索效率自然就提高了。

神经网络架构搜索(NAS)上的简单例子,先按层数切分搜索空间(蓝线),搜索效率得到了提高。

洞察到了这些问题之后,我们提出了LaNAS和LaMCTS。

LaNAS采用线性函数切分空间,对于叶节点的函数值估计则采用简单的随机采样法,及最近比较流行的one-shot supernet。

LaMCTS做了改进,采用非线性函数切分空间,并且在叶节点上用了已有的黑盒优化的方法比如说Bayesian Optimization(BO)来找到叶节点的子区域里的最优解。

通过这个方式,特别对于高维问题达到同样性能,我们发现LaMCTS可以达到更低的样本复杂度。这里我们在Mujoco的任务上做了测试,和各种已有的黑盒算法进行了比较,蓝线是我们的方法:

LaMCTS在高维空间搜索中有优势,纵轴是奖励,越高越好。

当然LaMCTS和基于梯度的方法相比,在Mujoco的高维问题上还是有差距(因为Mujoco其实并不需要太多探索)。我们指出了自身的局限性,出乎意料地被reviewers们开口称赞。

因为每个叶结点采用了已有算法,LaMCTS也可以套在任何已知的黑盒优化算法上,作为一个元算法(meta-algorithm),让整个系统达到更好的效果。

为什么能提高呢?

主要原因是,传统方法像Bayesian Optimization (BO)在参数空间维数很大(比如上百维)的情况下,由于维数灾难的问题,高斯过程(GP)的建模效率就会大打折扣。

而LaMCTS通过切分空间,让GP的建模局限在一个比较小的范围内,从而提高了它的效率。

LaMCTS可以套在任何已知的黑盒优化算法上,一定程度上提高它们的性能。

田渊栋博士知乎链接:

https://www.zhihu.com/people/tian-yuan-dong/posts

感谢你的分享,点赞,在看三连↓

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值