計算慄 郭一璞 發自 凹非寺

量子位 報道 | 公眾號 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 ModelsDavid Saxton, Edward Grefenstette, Felix Hill, Pushmeet Kohliarxiv.org/abs/1904.0155

?數據集

github.com/deepmind/mat

量子位 · QbitAI

?? ? 追蹤AI技術和產品新動態

戳右上角「+關注」獲取最新資訊↗↗

如果喜歡,請分享or點贊吧~比心?


推薦閱讀:
相關文章