來源:新智元,arXiv等 編輯:向?qū)W、大明
Facebook的神經(jīng)網(wǎng)絡(luò)也可以計(jì)算積分和求解微分方程啦!盡管其他的神經(jīng)網(wǎng)絡(luò)還沒有超越簡單的加減法和乘除法。這是怎么回事呢?讓我們來一探究竟!
近日,F(xiàn)acebook AI Research的研究人員Guillaume Lample 和 Fran?ois Charton 開發(fā)了一套新算法,只需一點(diǎn)思考的時(shí)間就可以解出一階微分方程。他們訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò)來執(zhí)行必要的符號(hào)推理,首次實(shí)現(xiàn)了對(duì)數(shù)學(xué)表達(dá)式的微分和積分。這項(xiàng)成果是邁向更強(qiáng)大的數(shù)學(xué)推理的重要一步,也是利用神經(jīng)網(wǎng)絡(luò)超越傳統(tǒng)模式識(shí)別任務(wù)的新方法。
在模式識(shí)別任務(wù)(如面部和物體識(shí)別,某些自然語言處理,甚至是玩象棋、圍棋和太空侵略者這樣的游戲)上,神經(jīng)網(wǎng)絡(luò)已經(jīng)取得了巨大的成就。但是,盡管付出了很大努力但仍沒人能夠訓(xùn)練神經(jīng)網(wǎng)絡(luò)完成像數(shù)學(xué)那樣的符號(hào)推理任務(wù),神經(jīng)網(wǎng)絡(luò)所取得的最好成績是整數(shù)的加法和乘法。神經(jīng)網(wǎng)絡(luò)和人類相似,分析高級(jí)數(shù)學(xué)表達(dá)式的難點(diǎn)之一是它們所依賴的簡寫。例如,表達(dá)式是x乘以x乘以x的簡寫形式。要讓神經(jīng)網(wǎng)絡(luò) “掌握” 這種邏輯非常困難。如果它們不明白簡寫代表什么,那么就幾乎學(xué)不會(huì)如何使用簡寫。實(shí)際上,人類也有類似的問題,但解決辦法通常是從小就開始灌輸。
從本質(zhì)上來講,微分和積分的運(yùn)算過程仍涉及到模式識(shí)別,盡管被數(shù)學(xué)簡寫所遮蔽。
將數(shù)學(xué)式表示為自然語言
Lample和Charton 提出了一種優(yōu)雅的解決方法:他們先將數(shù)學(xué)簡寫拆分為基本單位;然后教神經(jīng)網(wǎng)絡(luò)去識(shí)別積分和微分中包含的數(shù)學(xué)運(yùn)算模式;最后他們?cè)儆萌碌谋磉_(dá)式去測試神經(jīng)網(wǎng)絡(luò),并將結(jié)果與傳統(tǒng)運(yùn)算器(如Mathematica和Matlab)進(jìn)行對(duì)比。
這個(gè)過程的第一步,是把數(shù)學(xué)表達(dá)式分解成它們的組成部分,Lample和Charton通過將表達(dá)式表示為樹狀結(jié)構(gòu)來實(shí)現(xiàn):這些樹上的葉子是數(shù)字、常量和變量,如x;內(nèi)部節(jié)點(diǎn)是運(yùn)算符,如加法、乘法、微分等。
如:表達(dá)式
可分別表示為:
如果不同樹的數(shù)學(xué)運(yùn)算結(jié)果相同,那么就認(rèn)為這些樹是相同的,如:2 + 3 = 5 = 12 - 7 = 1 x 5是相同的。這樣以來,表達(dá)式簡化相當(dāng)于找到一個(gè)更短的等價(jià)樹表示。這些樹也可以寫成每個(gè)節(jié)點(diǎn)連續(xù)組成的序列,現(xiàn)在正好可以被一種名為Seq2Seq的神經(jīng)網(wǎng)絡(luò)來處理。這種方法也被用于機(jī)器翻譯:其中一種語言的單詞序列必須翻譯成另一種語言的單詞序列。而他們的方法本質(zhì)上是將數(shù)學(xué)視為一種自然語言。
下一步就是訓(xùn)練過程,這需要大量的數(shù)據(jù)來學(xué)習(xí)。Lample 和 Charton 通過從二元運(yùn)算符庫(如加法、乘法等)、一元運(yùn)算符庫(如cos、sin和exp)以及一組變量、整數(shù)和常數(shù)(如π和e)中隨機(jī)組合數(shù)學(xué)表達(dá)式來創(chuàng)建新的數(shù)據(jù)庫。他們還限制了樹的內(nèi)部節(jié)點(diǎn)數(shù)量,以免方程變得過于龐大。即使節(jié)點(diǎn)和數(shù)學(xué)組件的數(shù)量相對(duì)較少,可能的表達(dá)式也是很多的。然后利用計(jì)算機(jī)代數(shù)系統(tǒng)對(duì)每個(gè)隨機(jī)方程進(jìn)行積分和微分;任何無法積分的表達(dá)式都會(huì)被丟棄。
通過這種方式,研究人員生成了一個(gè)龐大的訓(xùn)練數(shù)據(jù)集,其中包含8000萬個(gè)一階和二階微分方程示例、2000萬個(gè)分部積分表達(dá)式示例。神經(jīng)網(wǎng)絡(luò)使用這些數(shù)據(jù)集進(jìn)行訓(xùn)練,學(xué)習(xí)如何對(duì)給定的數(shù)學(xué)表達(dá)式求導(dǎo)或積分。
最后,Lample和Charton在神經(jīng)網(wǎng)絡(luò)中輸入了5000個(gè)以前從未見過的表達(dá)式,并將500個(gè)例子的結(jié)果與商業(yè)軟件(如Maple、Matlab和Mathematica)等的結(jié)果進(jìn)行了比較。
結(jié)果顯示,在所有的任務(wù)中,都觀察到神經(jīng)網(wǎng)絡(luò)明顯優(yōu)于Mathematica;在函數(shù)積分方面,神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確性接近100%,而Mathematica勉強(qiáng)達(dá)到85%;Maple和Matlab軟件包的平均性能不如Mathematica。
在許多情況下,傳統(tǒng)的運(yùn)算器在30秒的時(shí)間內(nèi)根本找不到解;而神經(jīng)網(wǎng)絡(luò)需要大約1秒鐘就能找到解。
論文簡介:求解器的未來是數(shù)學(xué)框架+神經(jīng)網(wǎng)絡(luò)
本文證明了標(biāo)準(zhǔn)seq2seq模型可以應(yīng)用于諸如函數(shù)積分或求解微分方程之類的困難任務(wù)。本文提出了一種生成任意大的方程式數(shù)據(jù)集及其相關(guān)解的方法,并證明了在這些數(shù)據(jù)集上訓(xùn)練的簡單轉(zhuǎn)換器模型在計(jì)算函數(shù)積分和求解微分方程方面都表現(xiàn)出色,其表現(xiàn)優(yōu)于依賴大量算法和啟發(fā)式方法的最新數(shù)學(xué)框架(如Matlab或Mathematica) ,以及復(fù)雜的其他實(shí)現(xiàn)方式。
實(shí)驗(yàn)結(jié)果還表明,該模型能夠以完全不同的方式編寫相同的表達(dá)式。鑒于神經(jīng)模型難以執(zhí)行更簡單的任務(wù)(例如整數(shù)加法或乘法),因此這些結(jié)果令人驚訝。但是,提出的假設(shè)有時(shí)是不正確的,并且通常需要考慮多個(gè)波束假設(shè)才能獲得有效的解決方案。模型本身并未提供解決方案本身的有效性,而是由外部符號(hào)框架提供的。這些結(jié)果表明,將來,標(biāo)準(zhǔn)數(shù)學(xué)框架可能會(huì)將神經(jīng)網(wǎng)絡(luò)組件集成到求解器中,從而提高性能。
圖2 本文seq2seq模型求解微分方程/積分方程精度與其他求解方案的對(duì)比
圖3 本文seq2seq模型求解測試集500個(gè)方程的精度與Mathematica, Maple和Matlab求解結(jié)果的對(duì)比
該論文一出,各學(xué)術(shù)研究者都紛紛加入了激烈的討論之中!
聯(lián)系客服