tft每日頭條

 > 生活

 > 微積分常見的極限

微積分常見的極限

生活 更新时间:2025-01-10 05:43:56

微積分常見的極限(1秒内精确求解微分方程)1


大家都知道,AI (神經網絡) 連加減法這樣的簡單算術都做不好:

微積分常見的極限(1秒内精确求解微分方程)2

可現在,AI已經懂得微積分,把魔爪伸向你最愛的高數了。

它不光會求不定積分:

微積分常見的極限(1秒内精确求解微分方程)3

還能解常微分方程:

微積分常見的極限(1秒内精确求解微分方程)4

一階二階都可以。

這是Facebook發表的新模型,1秒給出的答案,超越了Mathematica和Matlab這兩隻付費數學軟件30秒的成績。

團隊說,這是Seq2SeqTransformer搭配食用的結果。

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

這項成果,已經在推特上獲得了1700贊。許多小夥伴表示驚奇,比如:

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

微積分常見的極限(1秒内精确求解微分方程)5

而且,據說算法很快就要開源了:

微積分常見的極限(1秒内精确求解微分方程)6

到時候讓付費軟件怎麼辦?

巨大數據集的生成姿勢

要訓練模型做微積分題目,最重要的前提就是要有大大大的數據集。

這裡有,積分數據集常微分方程數據集的制造方法:

函數,和它的積分

首先,就是要做出“一個函數&它的微分”這樣的數據對。團隊用了三種方法:

第一種是正向生成 (Fwd) ,指生成随機函數 (最多n個運算符) ,再用現成的工具求積分。把工具求不出的函數扔掉。

第二種是反向生成 (Bwd) ,指生成随機函數,再對函數求導。填補了第一種方法收集不到的一些函數,因為就算工具求不出積分,也一定可以求導。

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

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

因為這個函數太長了,随機生成很難做到。

另外,反向生成的産物,大多會是函數的積分比函數要短,正向生成則相反。

為了解決這個問題,團隊用了分部積分:生成兩個随機函數F和G,分别算出導數f和g。

如果fG已經出現在前兩種方法得到的訓練集裡,它的積分就是已知,可以用來求出Fg:

∫Fg=FG-∫fG

反過來也可以,如果Fg已經在訓練集裡,就用它的積分求出fG。

每求出一個新函數的積分,就把它加入訓練集。

如果fG和Fg都不在訓練集裡,就重新生成一對F和G。

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

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

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

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

微積分常見的極限(1秒内精确求解微分方程)7

再對x求導,就得到一個微分方程:

微積分常見的極限(1秒内精确求解微分方程)8

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

這樣,對于任何的常數c,fc都是一階微分方程的解。

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

微積分常見的極限(1秒内精确求解微分方程)9

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

微積分常見的極限(1秒内精确求解微分方程)10

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

二階的原理,是從一階那裡擴展來的,隻要把f(x,c)變成f(x,c1,c2) ,對c2有解。

微分方程F要滿足:

微積分常見的極限(1秒内精确求解微分方程)11

把它對x求導,會得到:

微積分常見的極限(1秒内精确求解微分方程)12

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

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

微積分常見的極限(1秒内精确求解微分方程)13

再對x求導,就會得到:

微積分常見的極限(1秒内精确求解微分方程)14

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

微積分常見的極限(1秒内精确求解微分方程)15

它的解就是fc1,c2。

至于生成過程,舉個例子:

微積分常見的極限(1秒内精确求解微分方程)16

現在,求積分求解微分方程兩個訓練集都有了。那麼問題也來了,AI要怎麼理解這些複雜的式子,然後學會求解方法呢?

将數學視作自然語言

積分方程和微分方程,都可以視作将一個表達式轉換為另一個表達式,研究人員認為,這是機器翻譯的一個特殊實例,可以用NLP的方法來解決。

第一步,是将數學表達式以樹的形式表示

運算符和函數為内部節點,數字、常數和變量等為葉子節點。

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

微積分常見的極限(1秒内精确求解微分方程)17

再舉一個複雜一點的例子,這樣一個偏微分表達式:

微積分常見的極限(1秒内精确求解微分方程)18

用樹的形式表示,就是:

微積分常見的極限(1秒内精确求解微分方程)19

采用樹的形式,就能消除運算順序的歧義,照顧優先級和關聯性,并且省去了括号。

在沒有空格、标點符号、多餘的括号這樣的無意義符号的情況下,不同的表達式會生成不同的樹。表達式和樹之間是一一對應的。

第二步,引入seq2seq模型

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

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

輸入序列和輸出序列中的字詞不需要一一對應。

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

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

使用前綴表示法,将每個父節點寫在其子節點之前,從左至右列出。

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

微積分常見的極限(1秒内精确求解微分方程)20

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

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

第三步,生成随機表達式

要創建訓練數據,就需要生成随機數學表達式。前文已經介紹了數據集的生成策略,這裡着重講一下生成随機表達式的算法。

使用n個内部節點對表達式進行統一采樣并非易事。比如遞歸這樣的方法,就會傾向于生成深樹而非寬樹,偏左樹而非偏右樹,實際上是無法以相同的概率生成不同種類的樹的。

所以,以随機二叉樹為例,具體的方法是:從一個空的根節點開始,在每一步中确定下一個内部節點在空節點中的位置。重複進行直到所有内部節點都被分配為止。

微積分常見的極限(1秒内精确求解微分方程)21

不過,在通常情況下,數學表達式樹不一定是二叉樹,内部節點可能隻有1個子節點。如此,就要考慮根節點和下一内部節點參數數量的二維概率分布,記作 L(e,n)。

微積分常見的極限(1秒内精确求解微分方程)22

接下來,就是對随機樹進行采樣,從可能的運算符和整數、變量、常量列表中随機選擇内部節點及葉子節點來對樹進行“裝飾”。

最後,計算表達式的數量

經由前面的步驟,可以看出,表達式實際上是由一組有限的變量、常量、整數和一系列運算符組成的。

于是,問題可以概括成:

最多包含n個内部節點的樹

一組p1個一元運算符(如cos,sin,exp,log)

一組p2個二進制運算符(如 ,-,×,pow)

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

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

這樣,具有n個内部節點的二叉樹恰好具有n 1個葉子節點。每個節點和葉子可以分别取p1和L個不同的值。

具有n個二進制運算符的表達式數量就可以表示為:

微積分常見的極限(1秒内精确求解微分方程)23

如果p1 > 0,表達式數量則為:

微積分常見的極限(1秒内精确求解微分方程)24

可以觀察到,葉子節點和二元運算符的數量會明顯影響問題空間的大小。

微積分常見的極限(1秒内精确求解微分方程)25

△不同數目運算符和葉子節點的表達式數量

勝過商業軟件

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

研究人員在一個擁有5000個方程的數據集中,對模型求解微積分方程的準确率進行了評估。

結果表明,對于微分方程,波束搜索解碼能大大提高模型的準确率。

微積分常見的極限(1秒内精确求解微分方程)26

而與最先進的商業科學計算軟件相比,新模型不僅更快,準确率也更高。

微積分常見的極限(1秒内精确求解微分方程)27

在包含500個方程的測試集上,商業軟件中表現最好的是Mathematica。

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

而當新方法進行大小為50的波束搜索時,模型準确率就從81.2%提升到了97%,遠勝于Mathematica(77.2%)

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

微積分常見的極限(1秒内精确求解微分方程)28

△商業科學計算軟件沒有找到解的方程

邀請AI參加IMO

這個會解微積分的AI一登場,就吸引了衆多網友的目光,引發熱烈讨論。網友們紛紛稱贊:鵝妹子嘤。

有網友這樣說道:

這篇論文超級有趣的地方在于,它有可能解決複雜度比積分要高得高得高得多的問題。

微積分常見的極限(1秒内精确求解微分方程)29

還有網友認為,這項研究太酷了,該模型能夠歸納和整合一些sympy無法實現的功能。

微積分常見的極限(1秒内精确求解微分方程)30

不過,也有網友認為,在與Mathematica的對比上,研究人員的實驗設定顯得不夠嚴謹。

默認設置下,Mathematica是在複數域中進行計算的,這會增加其操作的難度。但作者把包含複數系數的表達式視作“無效”。所以他們在使用Mathematica的時候将設置調整為實數域了?

微積分常見的極限(1秒内精确求解微分方程)31

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

30s的限制時間對于計算機代數系統有點武斷了。

微積分常見的極限(1秒内精确求解微分方程)32

但總之,面對越來越機智的AI,已經有人發起了挑戰賽,邀請AI挑戰IMO金牌。

微積分常見的極限(1秒内精确求解微分方程)33

Facebook AI研究院出品

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

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

微積分常見的極限(1秒内精确求解微分方程)34

他曾于巴黎綜合理工學院和CMU分别獲得數學與計算機科學和人工智能碩士學位。2014年進入Facebook實習。

Fran?ois Charton,Facebook AI研究院的客座企業家(Visiting entrepreneur),主要研究方向是數學和因果關系。

微積分常見的極限(1秒内精确求解微分方程)35

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved