計算栗 郭一璞 發自 凹非寺
量子位 報導 | 公眾號 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
—完—
量子位AI+系列沙龍--智慧城市
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI+行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字“微信群”,獲取入群方式。(技術群與AI+行業群需經過審核,審核較嚴,敬請諒解)
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復“招聘”兩個字。
喜歡就點這裡吧 !