AlphaGo用它下棋百度却用它解决更难的数学问题!

2019-03-07 11:40:38 来源:网络整理 作者:管理员

原标题:AlphaGo用它下棋 百度却用它解决更难的数学问题!

晓查 发自 凹非寺

量子位 报道 | 公众号 QbitAI

AlphaGo用它下棋百度却用它解决更难的数学问题!

9102年,人类依然不断回想起围棋技艺被AlphaGo所碾压的恐怖。

却也有不以为然的声音:只会下棋的AI,再厉害也还是个运动员啊!

百度说:你们错了,它还是一位数学家。

百度硅谷AI实验室的同学们,就在用这个出自谷歌DeepMind的围棋算法,解决一个比围棋复杂得多的数学问题。

为了重新训练这个算法,百度用了300张1080Ti和2080Ti显卡。

他们解决的问题,叫做“图着色问题”,又叫着色问题,属于前些天让中国奥数队全军覆没的图论。它是最著名的NP-完全问题之一。

简单来说,就是用尽可能少的颜色,给一张图的顶点上色,保证相邻顶点的颜色不重复。

10个顶点的简单版是这样的:

AlphaGo用它下棋百度却用它解决更难的数学问题!

而复杂版……只要顶点足够多,分分钟让人类数学家无从下手,如果有512个顶点,这个问题的复杂度会比围棋高出几百个数量级。

在这个数学问题上,运动员AlphaGo表现优秀,最高能将一张图所用的颜色减少10%。

从四色定理谈起

就算你对“图论”、“着色问题”这些词有点陌生,应该也听说过“四色定理”。这是第一个由计算辅助证明的数学定理。

四色定理告诉我们,只需4种颜色我们就可以让地图上所有相邻国家的颜色互不相同。

这其实就是一个平面上的着色问题,国家可以简化为顶点,国与国之间的相邻关系可以简化为连接顶点之间的线。对于平面图而言,颜色数k最小等于几?

历史上数学家已经手工证明了五色定理(k=5),但是因为运算量太大,在将颜色数量进一步减少到四种(k=4)时却迟迟无法解决,最终在70年代靠计算机才完成证明。

AlphaGo用它下棋百度却用它解决更难的数学问题!

一般来说,我们可以用贪心算法解决这个问题,其基本思路是:先尝试用一种颜色给尽可能多的点上色,当上一步完成后,再用第二种尽可能多地给其他点上色,然后再加入第三种、第四种等等,直到把整张图填满。

或者是用深度优先搜索算法,先一步步给图像着色,若遇到相邻点颜色相同就回溯,再换一种着色方法,直到问题解决为止。

比围棋世界更复杂

如果图的顶点数比较少,以上两种方法还可行,但随着顶点数的增加,以上两种算法的局限性就暴露了出来。

AlphaGo用它下棋百度却用它解决更难的数学问题!

用贪心算法着色和最优解的对比

贪心算法会陷入局部最优解,而深度优先搜索算法的运算量会越来越大,以至于完全不可行。

图着色问题的复杂度随着顶点数增加而急剧增长。当顶点数达到512时,其可能得状态数就达到达到了10^790,远超围棋的10^460,当然更是比全宇宙的粒子数10^80多得多。

AlphaGo用它下棋百度却用它解决更难的数学问题!

即使中等大小图的状态数也远超围棋,如果顶点数量达到1000万,复杂度会大得惊人,相当于在1后面有4583万个0。

另外着色问题还有另一个复杂维度,围棋算法可以反复在同一张相同棋盘上进行测试,而图即使顶点相同,因为连接各点的边不相同,结构也不完全相同。

从围棋中获得启发

这些更复杂的问题对算法的训练和推理提出了极大的挑战。而AlphaGo曾在解决这类复杂问题上取得了很大的成功,研究人员也很自然的想到了用它来解决图的着色问题。

对于这类问题,我们一般采用启发式搜索算法(heuristic search),就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到达到目标。

AlphaGo用它下棋百度却用它解决更难的数学问题!

AlphaGo使用的蒙特卡洛树搜索(MCTS)用的就是一种启发式搜索算法。

AlphaGo用它下棋百度却用它解决更难的数学问题!

蒙特卡洛树搜索算法示意图:选择路径;扩展树;由神经网络执行模拟;将最终结果反向传播,更新路径节点。

AlphaGo下棋通过正是这种方法,计算当前棋盘上获胜概率最大的点,直到赢棋为止。

图着色问题与围棋也有类似之处,它的每一步棋就是给接下来的点填上颜色。它和围棋和象棋一样都可以用强化学习来解决问题,差别则是奖励。

在图着色问题中,最明显的奖励选择是颜色种类,使用的种类越少越好。而在围棋和象棋中,奖励是游戏的胜负结果。

在棋类游戏中,让算法在自我对弈中进化是很一件很自然的事,让表现最好的学习算法与自己对抗,这就是AlphaGo的升级版本AlphaGo Zero

AlphaGo Zero没有学习人类棋谱,它只是懂得围棋规则,在不断的对弈中获得提高,谷歌只用了21天,就让这个0基础的升级版打败了5-0战胜柯洁的AlphaGo Master版。

当AlphaGo进化到自学版本AlphaGo Zero后,它就更适合做图着色问题了,因为着色问题是没有所谓“人类棋谱”可以学习的。

在图着色问题种,研究人员让AlphaGo Zero与其他算法比赛,看谁用的颜色种类少,这就是算法的奖励机制。

原理

和AlphaGo一样,图着色算法也有策略网络(p-network)和价值网络(v-network),p是顶点涂某种颜色的概率,v是最终颜色数量少于之前最佳算法结果的概率。

而在围棋游戏中,p代表落子位置的概率,v代表最终获胜的概率。

AlphaGo用它下棋百度却用它解决更难的数学问题!

为此,研究人员设计了一个快速着色网络(FastColorNet)。

对于这个网络,有如下要求:

1、可扩展性(Scalability):线性O(V)或线性对数O(E+VlogV)时间复杂度,保证它在更大的图形(比如1000万顶点)上也能使用。

2、完整图形上下文(Full Graph Context):不同的图有不同的着色策略,因此网络需要有图形结构的信息。

我们将该网络的损失定义为:

AlphaGo用它下棋百度却用它解决更难的数学问题!

π代表当前行走步数,z代表当前使用的颜色数。

AlphaGo用它下棋百度却用它解决更难的数学问题!

上图就是FastColorNet的架构。它的输入包含两个部分:问题上下文(problem context)和可能颜色上下文(possible color context)。

问题上下文(problem context)是根据刚刚着色的顶点,来安排接下来对哪些顶点进行着色。它在任务开始和结束的时候都是零。问题上下文中包含的顶点数是一个超参数,在实验中设置为8。

可能颜色上下文(possible color context)是以上顶点集合每种可能用到的颜色。它也是一个超参数,在实验中设置为4。

以上两个上下文都输入当策略网络和价值网络中。

AlphaGo用它下棋百度却用它解决更难的数学问题!

策略网络使用全局图形上下文(global graph context),它负责计算将每个颜色选择分配给当前顶点的概率。

随着填充过程的进行,颜色数量会逐渐增加。为了支持颜色数量的变化,它会首先独立处理每种颜色,产生一个非标准化分数,然后通过seq2seq模型对该分数进行处理,该模型还会考虑与其他颜色的依赖性。最终通过softmax操作得出归一化的填充颜色概率。

策略网络利用了具有相同颜色的节点之间的局部关系,提高了准确性,同时还降低了大图计算的时间复杂度。

AlphaGo用它下棋百度却用它解决更难的数学问题!

价值网络负责从输入数据预测着色问题最终的结果。 问题上下文(problem context)中的顶点与着色顺序存储在对应的序列中。使用seq2seq模型处理此序列,然后将这个序列与图形上下文(graph context)组合起来,并将它们馈送到完全连接的reLU层中,最终结果输入softmax,计算出胜利、失败或平局的概率。

结果

研究人员用FastColorNet的强化学习过程来训练图着色问题,图形大小从32个顶点到1000万个顶点不等。

AlphaGo用它下棋百度却用它解决更难的数学问题!

上图显示了图所需颜色的数量如何随顶点数量的增长而增长。

AlphaGo用它下棋百度却用它解决更难的数学问题!

在32K到16M个顶点的图上进行测试,FastColor在训练集中使用的颜色比以往的启发式搜索算法提高了5%-10%。 尽管在测试集有所逊色,但性能也比先前的算法高出1%-2%。

虽然提升比例看起来不高,但这种算法显示出解决此类问题的潜力。Twitter上一位网友这样评价:这篇文章以线性复杂度O(n)解决了一个NP完全问题。

AlphaGo用它下棋百度却用它解决更难的数学问题!

论文地址:

https://arxiv.org/abs/1902.10162

显示全文
为您推荐
红豆薏米排骨汤做法(排骨薏米红豆汤的做法)
红豆薏米排骨汤做法(排骨薏米红豆汤的做法)

【导读】 红豆薏米排骨汤做法(排骨薏米红豆汤的做法),下面是小编为你收集整理的,希望对你有帮助!1、材料:排骨,薏米,酒酿。2、薏米淘洗干净浸泡1小时左右。3、排骨加水煮开后稍煮几分钟。4、用温水冲洗干净,加温水和姜片煮开(用温水洗排骨和煮排骨,可以防止排骨口感变柴)。5、加酒酿后转小火炖1小时......

发布时间:2023-09-27 23:01:17

FAST开启地外文明搜索,SETI计划或有重大发现
FAST开启地外文明搜索,SETI计划或有重大发现

文章作者:魏坤(作者单位:日本大阪大学理学院)...

发布时间:2023-09-27 23:00:14

皮鞋是什么垃圾分类,可回收物(有循环利用价值)
皮鞋是什么垃圾分类,可回收物(有循环利用价值)

许多人都喜欢穿皮鞋,而皮鞋穿久了,旧了、破了都会扔掉。在过去,不用的皮鞋随便扔,而随着垃圾分类的逐渐普及,破旧皮鞋是需要扔到专门的垃圾桶的。那么,皮鞋是什么垃圾分类呢?接下来就随小编一起去了解看看。...

发布时间:2023-09-27 22:08:15

幽灵岛事件是怎么回事,幽灵岛事件真相是什么
幽灵岛事件是怎么回事,幽灵岛事件真相是什么

【导读】 幽灵岛事件是怎么回事,幽灵岛事件真相是什么,下面是小编为你收集整理的,希望对你有帮助!小岛是许多人向往的海景旅游圣地,同时也是各类灵异事件的发源地,关于幽灵岛的未解之谜就是其中之一。幽灵岛在海上时隐时现,一会出现在海面上,一会有被海水淹没不知所踪。那么幽灵岛事件是怎么回事,幽灵岛事件真......

发布时间:2023-09-27 22:01:14

熬夜掉发如何恢复,养成早睡早起习惯(用生姜洗头)
熬夜掉发如何恢复,养成早睡早起习惯(用生姜洗头)

经常熬夜的危害很多,这不仅影响视力,还会导致分泌紊乱,时间长了还会导致掉发!生活中,熬夜掉发的人很多,而这显然是可以恢复的,接下来就随小编一起去看看熬夜掉发如何恢复。...

发布时间:2023-09-27 22:00:10

imap服务器怎么填写
imap服务器怎么填写

【导读】 imap服务器怎么填写,下面是小编为你收集整理的,希望对你有帮助!以QQ邮箱为例,填写如下:接收邮件服务器:imap.qq.com。发送邮件服务器:smtp.qq.com。账户名:QQ邮箱账户名。如果是VIP邮箱,账户名需要填写完整的邮件地址。密码:QQ邮箱密码。电......

发布时间:2023-09-27 21:01:11

小孩能使用电动牙刷吗,能(正在换牙不能用电动牙刷)
小孩能使用电动牙刷吗,能(正在换牙不能用电动牙刷)

电动牙刷是靠电来震动刷头,起到刷牙效果,比起普通牙刷要更便捷,而且安全性更高,所以备受消费者的喜爱。我们都知道,成年人是很适合用电动牙刷的,那小孩呢,小孩能使用电动牙刷吗?对此,就由小编为大家解惑。...

发布时间:2023-09-27 21:00:08

计算机性能主要取决于什么的性能
计算机性能主要取决于什么的性能

【导读】 计算机性能主要取决于什么的性能,下面是小编为你收集整理的,希望对你有帮助!以华为MateBook X,win10为例:计算机的性能取决于cpu、内存和显卡。cpu和内存决定电脑的运行速度,显卡决定了玩大型游戏,图像处理的能力。CPU主频,主频是描述计算机运算速度重要一个指标......

发布时间:2023-09-27 20:01:13

乳清蛋白粉能长高吗,发育期能长高(过了发育期不能)
乳清蛋白粉能长高吗,发育期能长高(过了发育期不能)

乳清蛋白粉是采用最先进的技术,从牛奶中提取出的蛋白质,很容易被身体吸收。而人想要长高就需要补充蛋白质,所以很多人认为吃乳清蛋白粉有效,那乳清蛋白粉能长高吗?对此,就由小编为大家解惑。...

发布时间:2023-09-27 20:00:09

华为手机截屏录像功能在什么地方找
华为手机截屏录像功能在什么地方找

【导读】 华为手机截屏录像功能在什么地方找,下面是小编为你收集整理的,希望对你有帮助!华为手机截屏录像功能在哪里找以华为荣耀20手机为例,打开华为手机,找到需要截屏或者录像的页面后,从上往下滑动,打开通知面板,然后点击【截屏】或者【屏幕录制】按钮,即可进行普通截屏和录屏。荣耀20是荣耀......

发布时间:2023-09-27 19:01:11

竹子是草还是树,草(高大乔木状禾草类植物)
竹子是草还是树,草(高大乔木状禾草类植物)

竹子大家都见过,它笔直生长,象征着刚正不阿、坚持自我。对于竹子,古今中外喜欢它的人很多,相信大家也不例外,可喜欢归喜欢,那你知道竹子是草还是树吗?接下来就随小编一起了解看看。...

发布时间:2023-09-27 19:00:08

古人说的下山虎是什么意思 上山虎又是什么意思
古人说的下山虎是什么意思 上山虎又是什么意思

【导读】 古人说的下山虎是什么意思 上山虎又是什么意思,下面是小编为你收集整理的,希望对你有帮助!在我国历史文化当中,古人所说的下山虎和上山虎是什么意思?事实上这个问题在不同地方或是不同的文化中都会有着不一样的理解。因为上山虎命格的人与下山虎命格的人出生时间是不一样的,所以古人也都是根据上山虎和下......

发布时间:2023-09-27 18:01:11