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

詳解nginx中的正則表達(dá)式

Verilog表達(dá)式的位寬確定規(guī)則

nginx中的正則表達(dá)式和location路徑匹配指南

求助,以下恒流源電路Io的計(jì)算表達(dá)式怎么計(jì)算?
TestStand表達(dá)式中常用的語法規(guī)則和運(yùn)算符使用

Java表達(dá)式引擎選型調(diào)研分析

鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基本概念表達(dá)式(二)
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基本概念表達(dá)式(一)
一種無透鏡成像的新方法

評論