Facebook AI建立了第一個可以使用符號推理解決高級數(shù)學(xué)方程的AI系統(tǒng)。通過開發(fā)一種將復(fù)雜數(shù)學(xué)表達(dá)式表示為一種語言的新方法,然后將解決方案視為序列到序列的神經(jīng)網(wǎng)絡(luò)的翻譯問題,我們構(gòu)建了一個在解決積分問題以及一階和二階微分方程方面都優(yōu)于傳統(tǒng)計算系統(tǒng)的系統(tǒng)。
以前,這類問題被認(rèn)為是深度學(xué)習(xí)模型所無法企及的,因為求解復(fù)雜方程需要精度而不是近似值。神經(jīng)網(wǎng)絡(luò)擅長通過近似達(dá)到成功,例如認(rèn)識像素的特定模式很可能是狗的圖片,或者一種語言的句子特征匹配另一種語言的句子特征。解決復(fù)雜的方程式還需要具有處理符號數(shù)據(jù)的能力,例如方程b-4ac = 7中的字母。此類變量不能直接相加、相乘或相除,僅使用傳統(tǒng)的模式匹配或統(tǒng)計分析,神經(jīng)網(wǎng)絡(luò)就僅限于極其簡單的數(shù)學(xué)問題。
我們的解決方案是一種全新的方法,可將復(fù)雜的方程視為語言中的句子。這使得我們能夠充分利用在神經(jīng)機器翻譯(NMT)被證明有效的技術(shù),通過訓(xùn)練模型將問題從本質(zhì)上轉(zhuǎn)化為解決方案。要實現(xiàn)此方法,需要開發(fā)一種將現(xiàn)有數(shù)學(xué)表達(dá)式分解為類似語言語法的方法,并生成一個超過100M個配對方程和解的大規(guī)模訓(xùn)練數(shù)據(jù)集。
當(dāng)出現(xiàn)數(shù)千個未知表達(dá)式時(這些方程并不是訓(xùn)練數(shù)據(jù)的一部分),我們的模型比傳統(tǒng)基于代數(shù)的方程求解軟件,例如Maple,Mathematica和Matlab,表現(xiàn)出更快的速度和更高的精度。這項工作不僅表明深度學(xué)習(xí)可以用于符號推理,而且還表明神經(jīng)網(wǎng)絡(luò)有潛力解決各種各樣的任務(wù),包括那些與模式識別不相關(guān)的任務(wù)。我們將分享我們的方法以及產(chǎn)生相似訓(xùn)練集方法的細(xì)節(jié)。
一種應(yīng)用NMT的新方法
擅長符號數(shù)學(xué)的人經(jīng)常依靠一種直覺。他們對給定問題的解決方案應(yīng)該是什么有一種感覺,例如觀察被積分函數(shù)中是否存在余弦,這意味著其積分可能存在正弦,然后進(jìn)行必要的工作以證明這個直覺。
這與代數(shù)所需的直接計算不同。通過訓(xùn)練模型來檢測符號方程中的模式,我們相信神經(jīng)網(wǎng)絡(luò)可以將導(dǎo)致其解決方案的線索拼湊起來,大致類似于人類對復(fù)雜問題的基于直覺的方法。因此,我們開始探索將符號推理作為NMT問題,在該模型中,模型可以根據(jù)問題示例及其匹配的解決方案來預(yù)測可能的解決方案。
作為示例,我們的方法將展示如何把左側(cè)的現(xiàn)有方程擴展為可以用作翻譯模型輸入的表達(dá)式樹。對于該方程,輸入到模型中的預(yù)序列為:(加,乘,3,乘方,x,2,減,余弦,乘,2,x,1)
為了使用神經(jīng)網(wǎng)絡(luò)實現(xiàn)此應(yīng)用,我們需要一種新穎的方式來表示數(shù)學(xué)表達(dá)式。NMT系統(tǒng)通常是序列到序列(seq2seq)模型,使用單詞序列作為輸入,并輸出新的序列,從而允許它們翻譯完整的句子而不是單個單詞。我們使用了兩步方法將此方法應(yīng)用于符號方程。
首先,我們開發(fā)了一種有效地分解方程的過程,將被分解后的方程布置在樹狀結(jié)構(gòu)的分支中,這個樹狀結(jié)構(gòu)隨后被擴展為與seq2seq模型兼容的序列。常量和變量充當(dāng)葉子,而運算符(例如加號和減號)和函數(shù)是連接樹的分支的內(nèi)部節(jié)點。
盡管它看起來可能不像傳統(tǒng)語言,但以這種方式組織表達(dá)式可為方程提供類似于語言的語法,數(shù)字和變量是名詞,而運算符則充當(dāng)動詞。
我們的方法使NMT模型可以學(xué)習(xí)將給定樹狀結(jié)構(gòu)問題的模式與其匹配的方程的解(也表示為樹)對齊,類似于將一種語言的句子與經(jīng)過確認(rèn)的翻譯相匹配。這種方法使我們能夠利用功能強大的現(xiàn)成的seq2seq NMT模型,將單詞序列替換為符號序列。
建立新的訓(xùn)練數(shù)據(jù)集
盡管我們的表達(dá)式——樹語法使NMT模型在理論上有可能有效地將復(fù)雜的數(shù)學(xué)問題轉(zhuǎn)化為方程的解,但是訓(xùn)練這樣的模型將需要大量示例。而且,因為在我們關(guān)注的兩類問題(積分和微分方程)中,隨機生成的問題并不總是具有解,所以我們不能簡單地收集方程并將其輸入系統(tǒng)。
我們需要生成一個全新的訓(xùn)練集,其中包括重新構(gòu)造為模型可讀的表達(dá)式樹的已解方程的示例。這產(chǎn)生了方程和解的二元組,類似于在各種語言之間翻譯的句子語料庫。
我們的集合還必須比該領(lǐng)域以前的研究中使用的訓(xùn)練數(shù)據(jù)大得多,后者曾嘗試對數(shù)千個示例進(jìn)行系統(tǒng)訓(xùn)練。由于神經(jīng)網(wǎng)絡(luò)只有在擁有更多訓(xùn)練數(shù)據(jù)時才會表現(xiàn)得更好,因此我們創(chuàng)建了包含數(shù)百萬個示例的集合。
建立此數(shù)據(jù)集需要我們整合一系列數(shù)據(jù)清洗和生成技術(shù)。例如,對于我們的符號積分方程,我們翻轉(zhuǎn)了翻譯方法:不是生成問題并找到其解決方案,而是生成解決方案并找到它們的問題(它們的導(dǎo)數(shù)),這是一件容易得多的任務(wù)。
這種從解決方案中產(chǎn)生問題的方法(有時被工程師稱為陷門問題)使創(chuàng)建數(shù)百萬個積分示例變得可行。我們得出的以翻譯為靈感的數(shù)據(jù)集包括大約1億個配對示例,其中包含積分問題的子集以及一階和二階微分方程。
我們使用此數(shù)據(jù)集來訓(xùn)練具有8個attention head和6個層的seq2seq transformer模型。transformer通常用于翻譯任務(wù),而我們的網(wǎng)絡(luò)旨在預(yù)測各種方程的解,例如確定給定函數(shù)的不定積分。為了評估模型的性能,我們向模型提供了5000種未知表達(dá)式,使系統(tǒng)識別出訓(xùn)練中未出現(xiàn)的方程模式。
我們的模型在求解積分問題時顯示出99.7%的準(zhǔn)確度,對于一階和二階微分方程,它們的準(zhǔn)確度分別為94%和81.2%。這些結(jié)果超出了我們測試的所有三個傳統(tǒng)方程求解器的結(jié)果。Mathematica取得了次佳的結(jié)果,在相同的積分問題上準(zhǔn)確度為84%,對于微分方程結(jié)果的準(zhǔn)確度為77.2%和61.6%。我們的模型還可以在不到0.5秒的時間內(nèi)返回大多數(shù)預(yù)測,而其他系統(tǒng)則需要幾分鐘來找到解決方案,有時甚至?xí)耆瑫r。
我們的模型將左側(cè)的方程式(Mathematica和Matlab都無法求解的方程式)作為輸入,并且能夠在不到一秒鐘的時間內(nèi)找到正確的解決方案(如上圖所示)。
將生成的解決方案與參考解決方案進(jìn)行比較,使我們能夠輕松,準(zhǔn)確地驗證結(jié)果。但是我們的模型也為給定方程生成了多個解。這類似于機器翻譯中發(fā)生的事情,在機器翻譯中,有很多翻譯輸入句子的方法。
AI方程求解器的下一步是什么
目前,我們的模型適用于單變量問題,我們計劃將其擴展為多變量方程。這種方法還可以應(yīng)用于其他基于數(shù)學(xué)和邏輯的領(lǐng)域,例如物理領(lǐng)域,從而有可能開發(fā)出可幫助科學(xué)家進(jìn)行廣泛工作的軟件。
但是我們的系統(tǒng)對于神經(jīng)網(wǎng)絡(luò)的研究和使用具有更廣泛的意義。通過在以前認(rèn)為不可行的地方發(fā)現(xiàn)一種使用深度學(xué)習(xí)的方法,這項工作表明其他任務(wù)可以從人工智能中受益。無論是通過將NLP技術(shù)進(jìn)一步應(yīng)用到傳統(tǒng)上與語言沒有關(guān)聯(lián)的領(lǐng)域,還是通過在新的或看似無關(guān)的任務(wù)中對模式識別進(jìn)行更開放的探索,神經(jīng)網(wǎng)絡(luò)的局限性可能來自想象力的局限,而不是技術(shù)。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4734瀏覽量
100420 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5466瀏覽量
120891
發(fā)布評論請先 登錄
相關(guān)推薦
評論