“高等數(shù)學(xué)里程碑式的研究”,114頁(yè)論文讓AI文理雙修,也許不久后機(jī)器出的高數(shù)試卷就會(huì)走進(jìn)高校課堂,這下可以說(shuō)“高數(shù)題不是人出的了”。編輯 | 青暮
人工智能雖然給我們帶來(lái)了諸多便利,但也不免受到了各種質(zhì)疑。在互聯(lián)網(wǎng)領(lǐng)域表現(xiàn)良好的人工智能,在數(shù)學(xué)領(lǐng)域的很多表現(xiàn)卻被認(rèn)為是“出乎意料地糟糕”?;赥ransformers的語(yǔ)言模型在零樣本和少樣本等各種自然語(yǔ)言處理(NLP)任務(wù)中取得了令人難以置信的成功。但是,“這些模型在解決數(shù)學(xué)問(wèn)題方面基本上是失敗的?!?/span>中國(guó)科學(xué)院院士、普林斯頓大學(xué)數(shù)學(xué)系和應(yīng)用數(shù)學(xué)研究所教授、北京大數(shù)據(jù)研究院院長(zhǎng)鄂維南曾表示,神經(jīng)網(wǎng)絡(luò)可以幫助我們有效地表示或逼近高維函數(shù),深度神經(jīng)網(wǎng)絡(luò)是一個(gè)有效的工具,它帶來(lái)的影響是巨大的。以上思路更多還是基于深度學(xué)習(xí)在特征提取上的優(yōu)勢(shì),然而,在更簡(jiǎn)單或“低維”函數(shù)的、符號(hào)邏輯層面的推理中,神經(jīng)網(wǎng)絡(luò)真的毫無(wú)希望了嗎?回歸人工智能發(fā)展萌芽階段,符號(hào)語(yǔ)言的思想為數(shù)理邏輯的產(chǎn)生和發(fā)展奠定了基礎(chǔ)。當(dāng)時(shí)人們?cè)噲D將對(duì)一切事物的理解與認(rèn)知化為符號(hào)語(yǔ)言以及符號(hào)間的推理,以此思路構(gòu)建的模型以符號(hào)為基底,但或許可以嘗試另一種思路,就是先用神經(jīng)網(wǎng)絡(luò)挖掘符號(hào)的特征。在最新的一項(xiàng)研究中,用神經(jīng)網(wǎng)絡(luò)的方法精確求解低維的數(shù)學(xué)問(wèn)題被證實(shí)非常有效。值得一提的是,該項(xiàng)研究中還用到了OpenAI Codex。作為一種生成軟件源代碼的深度學(xué)習(xí)模型,Codex 可以理解十幾種編程語(yǔ)言,通過(guò) API 提供的 Codex 模型在 Python 編程中也具有極強(qiáng)的能力,它在執(zhí)行編程任務(wù)時(shí)能夠考慮到上下文信息,包括轉(zhuǎn)譯、解釋代碼和重構(gòu)代碼。該研究還被其研究團(tuán)隊(duì)稱(chēng)為“第一項(xiàng)可以規(guī)模化自動(dòng)解決、評(píng)分和生成大學(xué)水平數(shù)學(xué)課程問(wèn)題”的工作,打破了人們普遍認(rèn)為的神經(jīng)網(wǎng)絡(luò)不能解決高等數(shù)學(xué)問(wèn)題的觀點(diǎn)。“這些所謂不成功的研究只使用了基于文本的預(yù)訓(xùn)練,而既對(duì)文本進(jìn)行預(yù)訓(xùn)練又對(duì)代碼進(jìn)行微調(diào)的神經(jīng)網(wǎng)絡(luò),可以通過(guò)程序合成成功解決大學(xué)水平的數(shù)學(xué)問(wèn)題?!?/span>論文地址:https://arxiv.org/pdf/2112.15594v1.pdf機(jī)器學(xué)習(xí)模型真的可以解決單變量函數(shù)的圖形繞軸旋轉(zhuǎn)產(chǎn)生的體積、洛倫茲吸引子及其投影、奇異值分解(SVD)方法的幾何圖形等問(wèn)題嗎?這項(xiàng)研究展示了機(jī)器學(xué)習(xí)在這方面的強(qiáng)大能力。機(jī)器學(xué)習(xí)模型可以大規(guī)模很好地解決麻省理工學(xué)院包括單變量微積分、多變量微積分、微分方程、概率和統(tǒng)計(jì)學(xué)導(dǎo)論在內(nèi)的數(shù)學(xué)課程問(wèn)題。不僅如此,該團(tuán)隊(duì)的研究證實(shí)它還可以解決MATH數(shù)據(jù)集的問(wèn)題,“MATH數(shù)據(jù)集是衡量模型的數(shù)學(xué)問(wèn)題解決能力的基準(zhǔn),該數(shù)據(jù)集的主要來(lái)源是高中數(shù)學(xué)競(jìng)賽,如AMC 10、AMC 12和AIME等。目前為止,最先進(jìn)的 Transformers ,如GPT-3,只對(duì)文本進(jìn)行了預(yù)訓(xùn)練,GPT-3取得的最好成績(jī)總體準(zhǔn)確率為6.9%,并且在所有題目上的準(zhǔn)確率都低于8.8%”。圖1:圖中展示了模型可求解的高數(shù)問(wèn)題。例如,在微積分18.01-02中,求由兩個(gè)二維圖形限定的二維區(qū)域圍繞z軸旋轉(zhuǎn)一周得到的體積(右上);在微分方程18.03中,求解洛倫茲奇異吸引子(右下);在線(xiàn)性代數(shù)18.06中,畫(huà)出奇異值分解(SVD)的幾何圖形(右下)。“以前使用Transformers解決數(shù)學(xué)課程問(wèn)題的工作之所以失敗,是由于像GPT-3一樣的Transformers,只在文本上進(jìn)行了預(yù)訓(xùn)練?!?/span>研究團(tuán)隊(duì)認(rèn)為此前工作使用驗(yàn)證或預(yù)測(cè)表達(dá)式樹(shù)的聯(lián)合訓(xùn)練輸出,雖然在解決小學(xué)水平的數(shù)學(xué)問(wèn)題(如MAWPS和Math23k)時(shí),準(zhǔn)確率超過(guò)80%。然而,這種方法的有效性并未在高中、數(shù)學(xué)奧林匹克或大學(xué)水平的數(shù)學(xué)課程中得到擴(kuò)展。后來(lái)有人通過(guò)與圖神經(jīng)網(wǎng)絡(luò)(GNN)配對(duì)預(yù)測(cè)算術(shù)表達(dá)式樹(shù)(expression trees),并在文本上預(yù)訓(xùn)練Transformers,來(lái)求解大學(xué)水平問(wèn)題,且準(zhǔn)確率高達(dá)95%。但是這個(gè)結(jié)果僅限于數(shù)字答案,并局限于特定課程,不容易擴(kuò)展到其他課程。而本文的這項(xiàng)研究證明,把問(wèn)題變成編程任務(wù)進(jìn)行程序合成,是大規(guī)模解決數(shù)學(xué)和STEM課程的關(guān)鍵?!皩?duì)文本進(jìn)行預(yù)訓(xùn)練并對(duì)代碼進(jìn)行微調(diào)的 Transformers ,可以在MATH數(shù)據(jù)集和大學(xué)水平的數(shù)學(xué)課程上取得完美表現(xiàn)?!?/span>如圖1所示,研究團(tuán)隊(duì)將麻省理工學(xué)院課程中的數(shù)學(xué)問(wèn)題和MATH數(shù)據(jù)集進(jìn)行處理,并將其作為輸入傳給OpenAI Codex Transformers,使要解決的問(wèn)題轉(zhuǎn)化為編程任務(wù),然后執(zhí)行自動(dòng)生成程序。問(wèn)題不同,運(yùn)行程序的輸出形式也不同,包含數(shù)字輸出形式,甚至可以通過(guò)程序合成從文本中產(chǎn)生圖片輸出形式。該團(tuán)隊(duì)用prompt生成法(prompt generation methods ),使Transformers能夠?yàn)槊總€(gè)隨機(jī)抽到的問(wèn)題生成帶圖的解題程序和方案。相比之下,這項(xiàng)工作可以輸出包括圖表在內(nèi)的多種模式,并且不需要專(zhuān)門(mén)的訓(xùn)練就可以擴(kuò)展到其他數(shù)學(xué)課程。他們還對(duì)原始問(wèn)題和轉(zhuǎn)化后的問(wèn)題進(jìn)行了對(duì)比量化,并通過(guò)調(diào)查評(píng)估了生成問(wèn)題的質(zhì)量和難度。表1:針對(duì)六門(mén)課程(18.01, 18.02, 18.03, 18.05, 18.06, 6.042)和MATH數(shù)據(jù)集的六個(gè)主題(預(yù)-代數(shù),代數(shù),中級(jí)代數(shù),計(jì)數(shù)和概率,預(yù)-微積分,數(shù)論)中的一些問(wèn)題的解決方案。解決方案可包含數(shù)字答案、方程式和圖表等。在上表所列的麻省理工學(xué)院的數(shù)學(xué)課程中,使用該方法可以很好地自動(dòng)解決、評(píng)分和生成問(wèn)題,并且所有這些都是實(shí)時(shí)的,每個(gè)問(wèn)題處理時(shí)間竟不到一秒。研究實(shí)驗(yàn)題目來(lái)自麻省理工學(xué)院六門(mén)課程中隨機(jī)抽取的25個(gè)問(wèn)題,和MATH數(shù)據(jù)集的六個(gè)主題中各隨機(jī)抽取5個(gè)問(wèn)題。并且,為了說(shuō)明他們的研究結(jié)果不是過(guò)度擬合訓(xùn)練數(shù)據(jù),他們還用了在訓(xùn)練期間網(wǎng)上查不到的新的應(yīng)用線(xiàn)性代數(shù)課程COMS3251來(lái)進(jìn)行驗(yàn)證。技術(shù)代替人進(jìn)行解題時(shí),并不是使用技術(shù)對(duì)問(wèn)題進(jìn)行重大修改,而是努力提取問(wèn)題的本質(zhì),因此,該團(tuán)隊(duì)使用Codex對(duì)問(wèn)題進(jìn)行了整理。圖2:?jiǎn)栴}的擴(kuò)充和重組得到正確的Codex輸出。上圖中,顯示了使用Codex將課程問(wèn)題轉(zhuǎn)化為編程任務(wù)并運(yùn)行程序以解決數(shù)學(xué)問(wèn)題的方法。每個(gè)面板的左半部分顯示了原始問(wèn)題和通過(guò)添加問(wèn)題背景、互動(dòng)或簡(jiǎn)化后而重新表述的問(wèn)題。添加問(wèn)題背景是非常有必要的,對(duì)學(xué)生和程序來(lái)說(shuō),解題域是選擇合適的解題方法的必要信息。例如,如果沒(méi)有問(wèn)題背景,一個(gè)關(guān)于網(wǎng)絡(luò)的問(wèn)題,可能是關(guān)于神經(jīng)網(wǎng)絡(luò)的問(wèn)題也可能是關(guān)于通信網(wǎng)絡(luò)的問(wèn)題。- 面板A中對(duì)微積分方程問(wèn)題的主題背景進(jìn)行了補(bǔ)充,將其重新表述為一個(gè)編程任務(wù)的問(wèn)題。補(bǔ)充背景包括澄清含糊不清的定義和運(yùn)算符,或有一個(gè)以上標(biāo)準(zhǔn)用法的符號(hào),說(shuō)明學(xué)生通過(guò)學(xué)習(xí)課程就會(huì)知道的隱含假設(shè),包括課程的主題或課題,指出學(xué)生從與問(wèn)題相關(guān)的講座或教科書(shū)章節(jié)中學(xué)到的適當(dāng)方法。
- 面板B中使用了Python庫(kù)、sympy庫(kù)和streamplot庫(kù)的背景,用于解題和繪制可視化圖。如果程序的語(yǔ)法與Python版本不兼容,或者數(shù)據(jù)類(lèi)型有錯(cuò)誤,又或者沒(méi)有使用庫(kù),合成程序在執(zhí)行中可能無(wú)法得到正確的答案。
- 面板C中顯示了概率和統(tǒng)計(jì)學(xué)中的一個(gè)例子,原始問(wèn)題被轉(zhuǎn)化為生成模擬的概率編程任務(wù)。在做題時(shí)學(xué)生可以從課程的主題和涵蓋的材料中得到一些信息,在這個(gè)過(guò)程中,要通過(guò)了解問(wèn)題背景,確定所需要的是什么類(lèi)型的答案,對(duì)處理形式有一個(gè)合理預(yù)期。例如,概率或組合學(xué)中的許多問(wèn)題可能需要用階乘、組合函數(shù)或指數(shù)來(lái)回答。因此在實(shí)驗(yàn)中也必須要提供背景,以便用正確的方法來(lái)處理問(wèn)題。
- 面板D考慮到NLP模型在處理長(zhǎng)而復(fù)雜的文本方面有困難,因此將較長(zhǎng)的問(wèn)題分解成了具體的編程任務(wù),并刪除了多余的信息。通過(guò)互動(dòng)產(chǎn)生了多個(gè)圖,交互式使用Codex可以使可視化圖很好地被繪制出來(lái),并且可以發(fā)現(xiàn)缺失的功能或需要的庫(kù)。
- 面板E來(lái)自《計(jì)算機(jī)科學(xué)數(shù)學(xué)》,對(duì)問(wèn)題進(jìn)行了簡(jiǎn)化處理,簡(jiǎn)化包括刪除多余的信息,將長(zhǎng)的句子結(jié)構(gòu)分解成較小的組成部分,并將提示轉(zhuǎn)換為編程格式。概括提煉出簡(jiǎn)潔的提示和一系列較短的問(wèn)題,可以提高Codex性能。
除此之外,他們還考慮了原始課程問(wèn)題轉(zhuǎn)化為Codex 提示的三種情況:- 原樣提示。原始問(wèn)題和Codex 提示是相同的;
- 自動(dòng)提示轉(zhuǎn)換。原始問(wèn)題和Codex提示不同,Codex提示是由其本身自動(dòng)生成的;
- 手動(dòng)提示轉(zhuǎn)換。原始問(wèn)題和Codex提示不同,Codex提示是由人生成的。
當(dāng)把問(wèn)題轉(zhuǎn)化為Codex提示時(shí),又出現(xiàn)了一個(gè)關(guān)鍵性的問(wèn)題:原始問(wèn)題與之后產(chǎn)生正確答案的提示在語(yǔ)義上的接近程度如何?圖3:按課程和類(lèi)別劃分的所有問(wèn)題的余弦相似度分布。如圖3所示,為了測(cè)量原始問(wèn)題和轉(zhuǎn)化后之間的差距,他們使用Sentence-BERT嵌入之間的余弦相似度。Sentence-BERT使用siamese和triplet網(wǎng)絡(luò)結(jié)構(gòu)對(duì)預(yù)訓(xùn)練的BERT模型進(jìn)行了微調(diào)。Sentence-BERT能夠在句子層面上產(chǎn)生語(yǔ)義嵌入,從而可以在長(zhǎng)篇文本中進(jìn)行語(yǔ)義相似度比較。應(yīng)用他們的方法,對(duì)于難度較低的課程,修改少量原始問(wèn)題(高余弦相似度分?jǐn)?shù)),就可以達(dá)到Codex提示,輸出一個(gè)提供正確答案的程序。而每個(gè)框圖左邊的線(xiàn)代表每門(mén)課程的基準(zhǔn)相似度分?jǐn)?shù),通過(guò)平均每門(mén)課程中所有這樣的問(wèn)題組之間的相似度計(jì)算得出。他們還做了原始問(wèn)題和產(chǎn)生正確答案的轉(zhuǎn)換版本之間的相似性分?jǐn)?shù)的直方圖,用來(lái)評(píng)估。圖4:最右邊的一列代表了按原樣或做了非常小的改動(dòng)就能正確回答問(wèn)題所占的百分比。使用Codex進(jìn)行提示生成也會(huì)產(chǎn)生一些問(wèn)題。在某些課程中,直接用未經(jīng)轉(zhuǎn)化的原始問(wèn)題來(lái)提示Codex并不能得到正確的答案。因此,需要將原始問(wèn)題的形式進(jìn)行轉(zhuǎn)化,他們將其主要分為三類(lèi):- 主題背景。為Codex提供與一般課程和具體問(wèn)題相關(guān)的主題和副主題,可以幫助指導(dǎo)Codex產(chǎn)生正確答案。例如,對(duì)于概率中的條件預(yù)期問(wèn)題,提供有關(guān)貝葉斯定理、預(yù)期值等背景。
- 庫(kù)背景。為Codex提供解決特定問(wèn)題所需的編程包/庫(kù)也是非常有幫助的。例如,引導(dǎo)Codex使用Python中的Numpy包以解決線(xiàn)性代數(shù)問(wèn)題。
- 定義背景。很多時(shí)候,Codex缺乏某些術(shù)語(yǔ)的定義基礎(chǔ)。例如,Codex并不清楚撲克牌中 "Full House "的含義。明確這些術(shù)語(yǔ)的定義并讓Codex理解它們,可以更好地指導(dǎo)其程序合成。
此外,他們還使用Codex,通過(guò)從數(shù)據(jù)集中創(chuàng)建一個(gè)有編號(hào)的問(wèn)題列表,為每門(mén)課程生成了新的問(wèn)題。這個(gè)列表在生成隨機(jī)數(shù)量的問(wèn)題后會(huì)被切斷,其結(jié)果將用于提示Codex生成下一個(gè)問(wèn)題。重復(fù)進(jìn)行此過(guò)程,就可以為每門(mén)課程生成許多新問(wèn)題。圖5:學(xué)生調(diào)查問(wèn)題。學(xué)生要對(duì)60個(gè)問(wèn)題中的每一個(gè)問(wèn)題進(jìn)行評(píng)分。如上圖所示,他們還在麻省理工學(xué)院和哥倫比亞大學(xué)選修過(guò)這些課程或其同等課程的學(xué)生中進(jìn)行了長(zhǎng)時(shí)間調(diào)查,比較了機(jī)器生成的問(wèn)題和人寫(xiě)的問(wèn)題在每門(mén)課程中的質(zhì)量和難度。圖6. 學(xué)生調(diào)查結(jié)果。A組基于學(xué)生的評(píng)分,比較了人工編寫(xiě)的問(wèn)題和本文研究方法為每門(mén)課程產(chǎn)生的問(wèn)題的難度。該圖顯示了1(最容易)和5(最難)之間的難度評(píng)分的平均值,以及它們的95%置信區(qū)間。B組顯示的是人工編寫(xiě)的和機(jī)器生成的問(wèn)題被評(píng)為適合和不適合該課程的百分比。C組顯示了被評(píng)為人寫(xiě)的或機(jī)器生成的問(wèn)題的百分比。然而,該研究還有一些局限性,如Codex只能接受基于文本的輸入,因此該團(tuán)隊(duì)的方法無(wú)法對(duì)輸入圖像進(jìn)行處理,無(wú)法回答帶有必要視覺(jué)組成部分的問(wèn)題,如數(shù)字或圖表。其次,本研究沒(méi)有涉及高級(jí)數(shù)學(xué)證明的問(wèn)題,他們強(qiáng)調(diào),這是研究的廣度所帶來(lái)的限制,而不是Codex的限制。并且,他們的方法最后一步是通過(guò)執(zhí)行一個(gè)程序來(lái)完成的,例如使用Python解釋器,存在局限性。此外,理論上復(fù)雜性結(jié)果也不適用于本研究解決的具體實(shí)例。該團(tuán)隊(duì)的研究證明,對(duì)文本進(jìn)行預(yù)訓(xùn)練并對(duì)代碼進(jìn)行微調(diào)的 Transformers能夠解決訓(xùn)練能夠通過(guò)程序合成解決、評(píng)定和生成大學(xué)水平的數(shù)學(xué)問(wèn)題。問(wèn)題集的生成和分析進(jìn)一步驗(yàn)證了這些驚人的結(jié)果。這項(xiàng)研究成功證實(shí)了現(xiàn)代程序設(shè)計(jì)語(yǔ)言可以作為一種替代性的表述和計(jì)算環(huán)境。由他們的方法不需要額外的訓(xùn)練,就可以擴(kuò)展到其它STEM課程,并且可以給高等教育帶來(lái)巨大的幫助。他們的研究證實(shí)了,用現(xiàn)代編程語(yǔ)言進(jìn)行的神經(jīng)網(wǎng)絡(luò)合成是更有活力和廣泛適用的,有可能解決更廣泛的問(wèn)題。盡管任何有限的計(jì)算都可以被表示為足夠大的表達(dá)式樹(shù),但人們可能會(huì)看到所需的表達(dá)式樹(shù)的大小可能是任意大的。與圖靈完備語(yǔ)言相比,這種靈活性得到了加強(qiáng),因?yàn)橐呀?jīng)存在的大量程序語(yǔ)料庫(kù)讓可用的標(biāo)記表達(dá)式樹(shù)的數(shù)量黯然失色。“程序輸出在本質(zhì)上也更適合人類(lèi)閱讀。因?yàn)槭褂贸橄蠡⒛K化和高級(jí)邏輯的能力可以更清晰地說(shuō)明解決問(wèn)題的方法?!贝送?,程序生成可以通過(guò)解釋性的注釋以及函數(shù)和變量的名稱(chēng),直接傳達(dá)邏輯推論。值得一提的是,在他們的這項(xiàng)研究中在Codex的一些輸出中看到了這樣的解釋文字和推導(dǎo)。“這種正式和非正式語(yǔ)言的統(tǒng)一是我們方法論的一個(gè)固有的優(yōu)勢(shì)。”1. CQ Choi, 7 revealing ways AIs fail: Neural networks can be disastrously brittle, forgetful, and surprisingly bad at math. IEEE Spectr. 58, 42–47 (2021)
雷峰網(wǎng)(公眾號(hào):雷峰網(wǎng))
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。