国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
AI攻破高數(shù)核心,1秒內(nèi)求解微分方程、不定積分,性能遠(yuǎn)超Matlab

栗子 魚羊 發(fā)自 海邊邊
量子位 報(bào)道 | 公眾號(hào) QbitAI

大家都知道,AI (神經(jīng)網(wǎng)絡(luò)) 連加減法這樣的簡(jiǎn)單算術(shù)都做不好:

可現(xiàn)在,AI已經(jīng)懂得微積分,把魔爪伸向你最愛的高數(shù)了。

它不光會(huì)求不定積分:

還能解常微分方程:

一階二階都可以。

這是Facebook發(fā)表的新模型,1秒給出的答案,超越了Mathematica和Matlab這兩只付費(fèi)數(shù)學(xué)軟件30秒的成績(jī)。

團(tuán)隊(duì)說,這是Seq2SeqTransformer搭配食用的結(jié)果。

用自然語言處理 (NLP) 的方法來理解數(shù)學(xué),果然行得通。

這項(xiàng)成果,已經(jīng)在推特上獲得了1700贊。許多小伙伴表示驚奇,比如:

感謝你們!在我原本的想象中,這完全是不可能的!

而且,據(jù)說算法很快就要開源了:

到時(shí)候讓付費(fèi)軟件怎么辦?

巨大數(shù)據(jù)集的生成姿勢(shì)

要訓(xùn)練模型做微積分題目,最重要的前提就是要有大大大的數(shù)據(jù)集。

這里有,積分?jǐn)?shù)據(jù)集常微分方程數(shù)據(jù)集的制造方法:

函數(shù),和它的積分

首先,就是要做出“一個(gè)函數(shù)&它的微分”這樣的數(shù)據(jù)對(duì)。團(tuán)隊(duì)用了三種方法:

第一種是正向生成 (Fwd),指生成隨機(jī)函數(shù) (最多n個(gè)運(yùn)算符) ,再用現(xiàn)成的工具求積分。把工具求不出的函數(shù)扔掉。

第二種是反向生成 (Bwd),指生成隨機(jī)函數(shù),再對(duì)函數(shù)求導(dǎo)。填補(bǔ)了第一種方法收集不到的一些函數(shù),因?yàn)榫退愎ぞ咔蟛怀龇e分,也一定可以求導(dǎo)。

第三種是用了分部積分的反向生成 (Ibp)。前面的反向生成有個(gè)問題,就是不太可能覆蓋到f(x)=x3sin(x)的積分:

F(x)=-x3cos(x)+3x2sin(x)+6xcos(x)-6sin(x)

因?yàn)檫@個(gè)函數(shù)太長(zhǎng)了,隨機(jī)生成很難做到。

另外,反向生成的產(chǎn)物,大多會(huì)是函數(shù)的積分比函數(shù)要短,正向生成則相反。

為了解決這個(gè)問題,團(tuán)隊(duì)用了分部積分:生成兩個(gè)隨機(jī)函數(shù)F和G,分別算出導(dǎo)數(shù)f和g。

如果fG已經(jīng)出現(xiàn)在前兩種方法得到的訓(xùn)練集里,它的積分就是已知,可以用來求出Fg:

∫Fg=FG-∫fG

反過來也可以,如果Fg已經(jīng)在訓(xùn)練集里,就用它的積分求出fG。

每求出一個(gè)新函數(shù)的積分,就把它加入訓(xùn)練集。

如果fG和Fg都不在訓(xùn)練集里,就重新生成一對(duì)F和G。

如此一來,不借助外部的積分工具,也能輕松得到x10sin(x)這樣的函數(shù)了。

一階常微分方程,和它的解

從一個(gè)二元函數(shù)F(x,y)說起。

有個(gè)方程F(x,y)=c,可對(duì)y求解得到y=f(x,c)。就是說有一個(gè)二元函數(shù)f,對(duì)任意x和c都滿足:

再對(duì)x求導(dǎo),就得到一個(gè)微分方程:

fc表示從x到f(x,c)的映射,也就是這個(gè)微分方程的解。

這樣,對(duì)于任何的常數(shù)c,fc都是一階微分方程的解。

把fc替換回y,就有了整潔的微分方程:

這樣一來,想做出“一階常微分方程&解”的成對(duì)數(shù)據(jù)集,只要生成一個(gè)f(x,c),對(duì)c有解的那種,再找出它滿足的微分方程F就可以了,比如:

二階常微分方程,和它的解

二階的原理,是從一階那里擴(kuò)展來的,只要把f(x,c)變成f(x,c1,c2) ,對(duì)c2有解。

微分方程F要滿足:

把它對(duì)x求導(dǎo),會(huì)得到:

fc1,c2表示,從x到f(x,c1,c2)的映射。

如果這個(gè)方程對(duì)c1有解,就可以推出另外一個(gè)三元函數(shù)G,它對(duì)任意x都滿足:

再對(duì)x求導(dǎo),就會(huì)得到:

最后,整理出清爽的微分方程:

它的解就是fc1,c2。

至于生成過程,舉個(gè)例子:

現(xiàn)在,求積分求解微分方程兩個(gè)訓(xùn)練集都有了。那么問題也來了,AI要怎么理解這些復(fù)雜的式子,然后學(xué)會(huì)求解方法呢?

將數(shù)學(xué)視作自然語言

積分方程和微分方程,都可以視作將一個(gè)表達(dá)式轉(zhuǎn)換為另一個(gè)表達(dá)式,研究人員認(rèn)為,這是機(jī)器翻譯的一個(gè)特殊實(shí)例,可以用NLP的方法來解決。

第一步,是將數(shù)學(xué)表達(dá)式以樹的形式表示。

運(yùn)算符和函數(shù)為內(nèi)部節(jié)點(diǎn),數(shù)字、常數(shù)和變量等為葉子節(jié)點(diǎn)。

比如 3x^2 + cos(2x) - 1 就可以表示為:

再舉一個(gè)復(fù)雜一點(diǎn)的例子,這樣一個(gè)偏微分表達(dá)式:

用樹的形式表示,就是:

采用樹的形式,就能消除運(yùn)算順序的歧義,照顧優(yōu)先級(jí)和關(guān)聯(lián)性,并且省去了括號(hào)。

在沒有空格、標(biāo)點(diǎn)符號(hào)、多余的括號(hào)這樣的無意義符號(hào)的情況下,不同的表達(dá)式會(huì)生成不同的樹。表達(dá)式和樹之間是一一對(duì)應(yīng)的。

第二步,引入seq2seq模型。

seq2seq模型具有兩種重要特性:

輸入和輸出序列都可以具有任意長(zhǎng)度,并且長(zhǎng)度可以不同。

輸入序列和輸出序列中的字詞不需要一一對(duì)應(yīng)。

因此,seq2seq模型非常適合求解微積分的問題。

使用seq2seq模型生成樹,首先,要將樹映射到序列。

使用前綴表示法,將每個(gè)父節(jié)點(diǎn)寫在其子節(jié)點(diǎn)之前,從左至右列出。

比如 2 + 3 * (5 + 2),表示為樹是:

表示為序列就是 [+ 2 * 3 + 5 2]。

樹和前綴序列之間也是一一映射的。

第三步,生成隨機(jī)表達(dá)式

要?jiǎng)?chuàng)建訓(xùn)練數(shù)據(jù),就需要生成隨機(jī)數(shù)學(xué)表達(dá)式。前文已經(jīng)介紹了數(shù)據(jù)集的生成策略,這里著重講一下生成隨機(jī)表達(dá)式的算法。

使用n個(gè)內(nèi)部節(jié)點(diǎn)對(duì)表達(dá)式進(jìn)行統(tǒng)一采樣并非易事。比如遞歸這樣的方法,就會(huì)傾向于生成深樹而非寬樹,偏左樹而非偏右樹,實(shí)際上是無法以相同的概率生成不同種類的樹的。

所以,以隨機(jī)二叉樹為例,具體的方法是:從一個(gè)空的根節(jié)點(diǎn)開始,在每一步中確定下一個(gè)內(nèi)部節(jié)點(diǎn)在空節(jié)點(diǎn)中的位置。重復(fù)進(jìn)行直到所有內(nèi)部節(jié)點(diǎn)都被分配為止。

不過,在通常情況下,數(shù)學(xué)表達(dá)式樹不一定是二叉樹,內(nèi)部節(jié)點(diǎn)可能只有1個(gè)子節(jié)點(diǎn)。如此,就要考慮根節(jié)點(diǎn)和下一內(nèi)部節(jié)點(diǎn)參數(shù)數(shù)量的二維概率分布,記作 L(e,n)。

接下來,就是對(duì)隨機(jī)樹進(jìn)行采樣,從可能的運(yùn)算符和整數(shù)、變量、常量列表中隨機(jī)選擇內(nèi)部節(jié)點(diǎn)及葉子節(jié)點(diǎn)來對(duì)樹進(jìn)行“裝飾”。

最后,計(jì)算表達(dá)式的數(shù)量。

經(jīng)由前面的步驟,可以看出,表達(dá)式實(shí)際上是由一組有限的變量、常量、整數(shù)和一系列運(yùn)算符組成的。

于是,問題可以概括成:

  • 最多包含n個(gè)內(nèi)部節(jié)點(diǎn)的樹

  • 一組p1個(gè)一元運(yùn)算符(如cos,sin,exp,log)

  • 一組p2個(gè)二進(jìn)制運(yùn)算符(如+,-,×,pow)

  • 一組L個(gè)葉子值,其中包含變量(如x,y,z),常量(如e,π),整數(shù)(如 {-10,…,10})

如果p1 = 0,則表達(dá)式用二叉樹表示。

這樣,具有n個(gè)內(nèi)部節(jié)點(diǎn)的二叉樹恰好具有n + 1個(gè)葉子節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)和葉子可以分別取p1和L個(gè)不同的值。

具有n個(gè)二進(jìn)制運(yùn)算符的表達(dá)式數(shù)量就可以表示為:

如果p1 > 0,表達(dá)式數(shù)量則為:

可以觀察到,葉子節(jié)點(diǎn)和二元運(yùn)算符的數(shù)量會(huì)明顯影響問題空間的大小。

△不同數(shù)目運(yùn)算符和葉子節(jié)點(diǎn)的表達(dá)式數(shù)量勝過商業(yè)軟件

實(shí)驗(yàn)中,研究人員訓(xùn)練seq2seq模型預(yù)測(cè)給定問題的解決方案。采用的模型,是8個(gè)注意力頭(attention head),6層,512維的Transformer模型。

研究人員在一個(gè)擁有5000個(gè)方程的數(shù)據(jù)集中,對(duì)模型求解微積分方程的準(zhǔn)確率進(jìn)行了評(píng)估。

結(jié)果表明,對(duì)于微分方程,波束搜索解碼能大大提高模型的準(zhǔn)確率。

而與最先進(jìn)的商業(yè)科學(xué)計(jì)算軟件相比,新模型不僅更快,準(zhǔn)確率也更高。

在包含500個(gè)方程的測(cè)試集上,商業(yè)軟件中表現(xiàn)最好的是Mathematica。

比如,在一階微分方程中,與使用貪婪搜索解碼算法(集束大小為1)的新模型相比,Mathematica不落下風(fēng),但新方法通常1秒以內(nèi)就能解完方程,Mathematica的解題時(shí)間要長(zhǎng)的多(限制時(shí)間30s,若超過30s則視作沒有得到解)。

而當(dāng)新方法進(jìn)行大小為50的波束搜索時(shí),模型準(zhǔn)確率就從81.2%提升到了97%,遠(yuǎn)勝于Mathematica(77.2%)

并且,在某一些Mathematica和Matlab無力解決的問題上,新模型都給出了有效解。

△商業(yè)科學(xué)計(jì)算軟件沒有找到解的方程邀請(qǐng)AI參加IMO

這個(gè)會(huì)解微積分的AI一登場(chǎng),就吸引了眾多網(wǎng)友的目光,引發(fā)熱烈討論。網(wǎng)友們紛紛稱贊:鵝妹子嚶。

有網(wǎng)友這樣說道:

這篇論文超級(jí)有趣的地方在于,它有可能解決復(fù)雜度比積分要高得高得高得多的問題。

還有網(wǎng)友認(rèn)為,這項(xiàng)研究太酷了,該模型能夠歸納和整合一些sympy無法實(shí)現(xiàn)的功能。

不過,也有網(wǎng)友認(rèn)為,在與Mathematica的對(duì)比上,研究人員的實(shí)驗(yàn)設(shè)定顯得不夠嚴(yán)謹(jǐn)。

默認(rèn)設(shè)置下,Mathematica是在復(fù)數(shù)域中進(jìn)行計(jì)算的,這會(huì)增加其操作的難度。但作者把包含復(fù)數(shù)系數(shù)的表達(dá)式視作“無效”。所以他們?cè)谑褂肕athematica的時(shí)候?qū)⒃O(shè)置調(diào)整為實(shí)數(shù)域了?

我很好奇Mathematica是否可以解決該系統(tǒng)無法解決的問題。

30s的限制時(shí)間對(duì)于計(jì)算機(jī)代數(shù)系統(tǒng)有點(diǎn)武斷了。

但總之,面對(duì)越來越機(jī)智的AI,已經(jīng)有人發(fā)起了挑戰(zhàn)賽,邀請(qǐng)AI挑戰(zhàn)IMO金牌。

Facebook AI研究院出品

這篇論文有兩位共同一作。

Guillaume Lample,來自法國布雷斯特,是Facebook AI研究院、皮埃爾和瑪麗·居里大學(xué)在讀博士。

他曾于巴黎綜合理工學(xué)院和CMU分別獲得數(shù)學(xué)與計(jì)算機(jī)科學(xué)和人工智能碩士學(xué)位。2014年進(jìn)入Facebook實(shí)習(xí)。

Fran?ois Charton,F(xiàn)acebook AI研究院的客座企業(yè)家(Visiting entrepreneur),主要研究方向是數(shù)學(xué)和因果關(guān)系。

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Facebook這個(gè)神經(jīng)網(wǎng)絡(luò)用自然語言表示數(shù)學(xué)式,秒解微分方程!
求解微分方程,用seq2seq就夠了,性能遠(yuǎn)超 Mathematica、Matlab
如何讓AI理解數(shù)學(xué)?Facebook神經(jīng)網(wǎng)絡(luò)通過“語言翻譯”求解數(shù)學(xué)難題
【W(wǎng)olfram 到底有多厲害】- 神奇代碼系列 05
mathematica軟件怎么下載「Mathematica中文版下載」
Mathematica --運(yùn)算符及特殊符號(hào)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服