計算慄 郭一璞 發自 凹非寺 量子位 報道 | 公眾號 QbitAI
計算慄 郭一璞 發自 凹非寺
人生何處不數學?
這是越野車上的口算題。
這是被小朋友玩壞的應用題。
額,這是別人家的奧數題。
不過,現在是9102年了,幾乎每天都有「AI超越人類」的新聞。所以,把我們中學時候寫過的那些數學作業,扔給神經網路,它們做得出來麼?
地球的另一個角落,DeepMind讀懂了你的心,給神經網路們出了一套數學題,200萬道。數據集已經放出來了。
算術,代數,概率論,微積分……不管是算式,還是人類語言描述的題目,只要能用文本寫出來。
比如,這道排列組合 (中譯版) :
問:從這串字母qqqkkklkqkkk裡面,不放回地取三個出來,求取出qql的概率。答:1/110。
問:從這串字母qqqkkklkqkkk裡面,不放回地取三個出來,求取出qql的概率。
再比如,這道複合函數:
問:求g(h(f(x))), f(x) = 2x + 3, g(x) = 7x ? 4, h(x) = ?5x ? 8。 答:?70x ? 165
問:求g(h(f(x))), f(x) = 2x + 3, g(x) = 7x ? 4, h(x) = ?5x ? 8。
答:?70x ? 165
都是AI的數學考題了。
消息一出,人類紛紛歡呼了起來。天道好輪迴,蒼天饒過誰 (誤) 。
為什麼突然想知道AI的數學好不好?
DeepMind說,AI和人類學數學的方法不一樣。
我們主要是靠推理、學習、利用法則和運算符號,而AI依賴的是經驗和證據。
舉個耳熟能詳的栗子,機器學習面試梗。
考官:你的強項是什麼?我:我是機器學習專家。考官:9+10得多少? 我:3。考官:差太遠了,得19。我:16。考官:錯了,是19。我:18。考官:不對,19。我:19。考官:錄取你了。
考官:你的強項是什麼?
我:3。
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都好。
很遺憾,以目前的結果,AI是不能替我們去考高數了。
不過,這項研究本身就不是在幫你考高數呀,DeepMind作為一個能造出AlphaGo的公司,應該理解不了學渣的痛苦。
搞懂了「AI答數學題,全靠歸納總結」,DeepMind就可以把相關原理拓展到其他更豐富的領域,那些需要歸納總結的問題,或許可以靠AI來解決了。
要不,下次試試讓AI去答文科的主觀題?
?論文
?數據集
— 完 —
量子位 · QbitAI
?? ? 追蹤AI技術和產品新動態
戳右上角「+關注」獲取最新資訊↗↗
如果喜歡,請分享or點贊吧~比心?