DeepMind给AI出了200万道数学题,结果不如计算器哈哈哈哈哈

2019-04-22 17:05:06 浏览数 (1)

计算栗 郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI

人生何处不数学?

这是越野车上的口算题。

这是被小朋友玩坏的应用题。

额,这是别人家的奥数题。

罗马尼亚数学大师赛,中国队全军覆没的一题

不过,现在是9102年了,几乎每天都有“AI超越人类”的新闻。所以,把我们中学时候写过的那些数学作业,扔给神经网络,它们做得出来么?

地球的另一个角落,DeepMind读懂了你的心,给神经网络们出了一套数学题,200万道。数据集已经放出来了。

算术,代数,概率论,微积分……不管是算式,还是人类语言描述的题目,只要能用文本写出来。

比如,这道排列组合 (中译版) :

问:从这串字母qqqkkklkqkkk里面,不放回地取三个出来,求取出qql的概率。 答:1/110。

再比如,这道复合函数:

问:求g(h(f(x))), f(x) = 2x 3, g(x) = 7x − 4, h(x) = −5x − 8。 答:−70x − 165

都是AI的数学考题了。

消息一出,人类纷纷欢呼了起来:天道好轮回,苍天饶过谁

200万道,都有什么题型

为什么突然想知道AI的数学好不好?

DeepMind说,AI和人类学数学的方法不一样。

我们主要是靠推理、学习、利用法则和运算符号,而AI依赖的是经验和证据。

举个耳熟能详的栗子,机器学习面试梗。

考官:你的强项是什么? 我:我是机器学习专家。 考官:9 10得多少? 我:3。 考官:差太远了,得19。 我:16。 考官:错了,是19。 我:18。 考官:不对,19。 我:19。 考官:录取你了。

AI的答案,是归纳出来的答案。

DeepMind觉得,没有人类的推理能力,AI学数学会很困难。可数学领域,对神经网络架构的研究来说,又很重要。

所以团队想要看看,用归纳来学数学,究竟怎么样。

那考试范围是什么?

最初的样本,是16岁以下 (大概是英国) 公立学校的数学课程。

团队把考纲扩展了一下,一共包括这几个方面:

一是代数,比如求解二元一次方程组,多项式求根,以及求数列的通项。

二是算术,比如四则运算,计算有特定顺序的 (比如带括号的) 的算式,把带根号的表达式简化一下之类的。

三是微积分和多项式求导。

四是比较,判断数的大小,从一列数里面找出和某个数最接近的数等等。

五是测量,比如在不同的长度单位之间转换,计算时间间隔之类的。

六是数字,找约数,四舍五入,整数的数位,因式分解,质数合数等等。

七是多项式运算,合并同类项等等。

八是概率,比如在一堆红白蓝色的球里面,选出红红白的概率。

200万题库是用刚才说的16岁以下教材样本,拿算法生成的。

所以,以上各类问题,是可以有机组合到一起的。这样就有趣了,因为许多数学法则,也是用各种概念合成的。

还是刚才的栗子,复合函数和求导,合在一起,就是复合函数求导。高中学过的,你还记得么:

[f(g(x))]’=f’(g(x))g’(x)

先求外面这一层,再求里面这一层,乘到一起就可以了。

坐等AI的答题结果。

都有什么选手

DeepMind举办的考试中,有两位考生,一位是循环神经网络 (RNN) ,另一位是Transformer

RNN一方派出的是LSTM (长短期记忆) ,有两个模型参加了考试。

第一个比较简单,直接把问题喂给LSTM,一次喂一个字符,模型就输出一个字符。

第二个复杂一些 (如下图) ,是带有注意力机制的编码器 解码器。这个模型在如今的机器翻译里面很常用:它不一定要按照字符输入的顺序来理解来计算,比如8/(1 3) ,就要先算1 3。

第二位考生,则是Transformer模型。作为一种seq2seq模型,它在机器翻译里的表现很好。

先来看一下它的结构:

有一个编码器,可以把数学题矢量序列转换成一个长度相同的序列;还有一个解码器,生成预测的答案。

考试结果怎么样

相比LSTM,Transformer模型要更胜一筹,两者有差不多数量的参数。

两个网络都没有进行太多“算法推理”,但Transformer模型比LSTM架构更适合学数学:

1、用同样多的参数,可以做更多的计算;

2、具有更浅的架构,更好的梯度传播;

3、有顺序内部存储器,可以更方便的设置数字序列等数学对象。

对AI来说,最简单的数学题是处理小数、整数,以及比较大小,还有不同模块组成的问题,比如:

已知k(c) = -611*c 2188857,k(-103)! = 2251790是否正确?(否)

或者这种:

将-139/4, 40.8, -555, 607从小到大排列。

最难的数学题则是偏理论一些的题目,比如判断一个数字是否为素数,以及因式分解。

不过,Transformer模型依然能给出看起来有点靠谱的答案。

比如,把235232673分解为几个素数的成绩,它的答案是3,11,13,19,23,1487,正确的答案应该是3,13,19,317453。

虽然没答对,但是看起来长得很像呀。

另外,让Transformer模型直接算数,会发现,如果只让它算加减法,或者只算乘除法,它的准确率大概在90%,但是如果把加减乘除混合起来放到一道题里,它的准确率就只有50%了。

还真的不如计算器呀!

这证明,AI在算数学题的时候,完全靠归纳总结,并没有使用代数技能。

手里有的计算器,都不知道用,真是个老实人。

现在,你可以出去吹牛:

我数学比AI都好。

One More Thing

很遗憾,以目前的结果,AI是不能替我们去考高数了。

不过,这项研究本身就不是在帮你考高数呀,DeepMind作为一个能造出AlphaGo的公司,应该理解不了学渣的痛苦。

搞懂了「AI答数学题,全靠归纳总结」,DeepMind就可以把相关原理拓展到其他更丰富的领域,那些需要归纳总结的问题,或许可以靠AI来解决了。

要不,下次试试让AI去答文科的主观题?

传送门

☞论文 Analysing Mathematical Reasoning Abilities of Neural Models David Saxton, Edward Grefenstette, Felix Hill, Pushmeet Kohli https://arxiv.org/abs/1904.01557

☞数据集 https://github.com/deepmind/mathematics_dataset

0 人点赞