谷歌造出拉馬努金機:幾毫秒求解數學常數,無需任何先驗信息

2021-01-07 量子位

馭洋 曉查 發自 凹非寺量子位 出品 | 公眾號 QbitAI

3.1415926……

π和e這樣的基本常數在科學領域中無處不在,但計算它們的高精度近似值往往令人頭大。如今,機器學習或許能幫上大忙。

能算近似值,還能在數學計算中快速找出精準規律,機器學習表示 I can I up。

這就是以色列理工學院和谷歌一起開發的拉馬努金機器(Ramanujan Machine)。

拉馬努金,這位英年早逝的天才數學家,總能發現一些讓世人驚嘆的數學公式。由他發現的圓周率π的計算公式,只需計算第一項就能突破普通計算器的最高精度。

拉馬努金機器也有類似的奇效。面對各種奇怪複雜的數學常數,只要找出它的連分數表示,只需計算十幾步、幾毫秒就能快速收斂,得到精準答案。而且算法已經開源!

然而讓拉馬努金玩出花來的連分數可不是簡簡單單就能被找出來的,幾個世紀以來,與基本常數相關的新數學公式十分少見,畢竟奠基人是歐拉、高斯這樣堪稱「變態」的天才,想要繼承他們的事業,不僅要有豐富的知識積累,還要有敏銳的數學直覺。

而機器學習卻表示,無需先驗信息,我也能快速get新公式。

什麼是連分數

優美的歐拉公式將e和π兩個數學常數聯繫起來,但你知道這兩個無理數是怎麼算出來的嗎?

你可以用泰勒展開的方法計算:

實際上還有另一種計算方法,那就是連分數,它的分母無限延伸下去,結果就會越來越接近:

黃金分割比φ=0.618……有著幾乎最簡單的連分數形式,一組全是1表示的數:

其他的數學嘗試,包括自然對數的底e、圓周率π,還有黎曼猜想中黎曼Zeta函數ζ(3)的值。都可以用連分數來表示。

任意實數都可以用連分數來表示。

連分數有何用

你如果認為連分數是數學家們的奇技淫巧,那就大錯特錯了,發現連分數的某個表達式有著實際的用途。

各種數學常數的連分數是存在卻不是唯一的,如果找到一個合適的連分數,那麼計算結果的收斂速度會非常快,大大減少計算機的運算量。

但是找到連分數裡一組特殊的數卻並不是一件容易的事情,否則這套算法也不會叫做拉馬努金機器了。

△ 拉馬努金髮現的連分數,φ是黃金分割比

發現連分數裡那些特殊整數的規律,需要有長年數學知識的積累,更要有易於常人的直覺。

現在有了拉馬努金機器,可以用電腦代替人的思維去尋找特殊的連分數了。

有Reddit網友把拉馬努金機器找到的公式寫成Python代碼,各算了一遍e和π,分別用了15步和18步的迭代,就能達到float 64的精度,也就是小數點後15位。

拉馬努金機器不僅能算數學常數,如李維常數、辛欽常數,還能計算一些物理常數,如天文學計算中的拉普拉斯極限等等。

作者下一步的目標用它來做數學證明,發現數學常數的固有屬性。比如e和π,我們都已經能證明他們是無理數而且是超越數,其他常數是不是無理數呢?以後或許可以用計算機來證明了。

算法介紹

論文當中提到了兩種算法。

第一種是中間相遇法(The Meet-In-The Middle)。這個算法的思路非常簡單:

給定一個常數c(如 c=π),根據公式:

f1(x)=x,f2(x)=1/x ,……;GCF(α,β)代表 an=α(n),bn=β(n)的連分數;α,β,γ,δ為整數多項式。

先計算出公式右邊一個精度較低的值,並將其存入哈希表,然後通過枚舉的方法來使公式左右兩邊的值相匹配,匹配上的值稱為「hits」,隨後增加hits的精度並重新比較,重複這個過程直到hits達到指定精度。這個最終的結果就提供了一個新的連分數。

有些hits值會產生誤報,針對這一點,研究人員提出通過計算任意精度的有理函數來減少誤報。

在這個算法當中,由於公式右邊的計算成本更高,所以將它的值以哈希表來存儲,以空間換時間。這個哈希表也可以保存下來重新服務於公式左邊的枚舉,從而大大減少未來的枚舉時間。

MITM-RF算法不需要任何關於基本常數的先驗信息,不過有許多基本常數的結構是可以推斷出來的,以此作為MITM-RF的先驗信息可以有效降低空間複雜度和計算複雜度。

不過,MITM-RF方法還是存在擴展性不佳的問題,於是研究者使用到了機器學習當中常用的梯度下降方法,他們稱其為Descent&Repel方法。

我們可以把優化問題描述成這個樣子:

這裡的最小值不是零維度點,而是(d-1)維的流形,其中d是給定的單一約束所預期的優化變量的數量。

研究者還觀察到所有的最小值都是全局的,並且它們的誤差為0,也就是說所有的梯度下降過程最後都會得到L=0的解。

這個優化問題起始於一個大的點的集合,在示例當中,所有初始條件被放置在一條線上。對每一個點迭代執行梯度下降,然後強制所有的點通過庫侖排斥彼此排斥。通過梯度下降步驟保證算法朝向整數格並趨向最小曲線,最後僅返回位於整數格上的解。

網友的質疑

有Reddit網友認為,連分數通過等效變換可以獲得無限多種組合這篇論文不是機器學習,它只是一種自動化查找新表達式的算法。

網友雖然反對將作者的結果稱為機器學習,但它仍然是一種吸引人的算法,最有趣的是使用梯度下降優化整數分數,以前從未見過有人這麼用過,因此是有創新性的。

對此,作者表示,是不是機器學習取決於你如何定義,文章中尋找新數學公式的算法是基於梯度下降的模型,因此可以看做是機器學習,今後他還將展示更直接地利用機器學習的其他結果。

至於發現新的連分數表達式,已經有前人的研究成果可供查詢,而作者用拉馬努金機器發現的很多結果已經被人類手工發現了。況且只要掌握了連分數的知識,就能發現各種表達式變體。

但這不正是拉馬努金機器的魅力所在嗎?如果你沒有過人的數學頭腦,就把特殊技巧交給計算機來做吧!

傳送門

論文地址:Arxiv號碼是1907.00205

原始碼:作者是AnonGit90210,項目名是RamanujanMachine

連分數查詢:oeis點org斜槓A003417

相關焦點

  • 最有效的求解方法:三行代碼搞定任何線性方程
    圖源:unsplash在三行函數中解決任何線性方程式的技巧,甚至可以在兩行代碼中重寫,不想了解一下嘛?據筆者所知,這是解決Python中線性方程的最有效方法。二元方程需要求解多個線性方程(方程組)。線性方程式由三個主要部分組成:常數,變量和乘數。不管是幾元方程還是運算的組合(加,減,乘和除),在括號範圍內都是有效的。只要遵守線性方程的這些定義,就可以通過函數解決。接下來逐步分解該函數,用以下線性方程式的演示為例。
  • Matlab中最基本的數學求解命令
    求解線性方程組微積分數學函數的定義M函數文件,可執行字符串均可用於定義數學函數,但是數學函數通常使用符號表達式和匿名函數來定義.為了與大多數函數(特別是求解析解的函數)兼容,這裡推薦使用符號表達式.一元積分的數值解:I = integral(fun, xmin, xmax)fun是描述數學函數的函數句柄(不支持符號表達式和可執行字符串),在[xmin,xmax] 區間內求數值積分。含有參數的數學函數可以在參數表結尾依次添加參數值。q = integral(fun,xmin,xmax,Name,Value)可以為integral指定選項。
  • 2021年中考數學知識點:概率的求解方法
    中考網整理了關於2021年中考數學知識點:概率的求解方法,希望對同學們有所幫助,僅供參考。   利用頻率估算法:大量重複試驗中,事件A發生的頻率會穩定在某個常數p附近,那麼這個常數p就叫做事件A的概率(有些時候用計算出A發生的所有頻率的平均值作為其概率).
  • 2020年中考數學考點之認識一元二次方程的一次項,二次項和常數項
    2020年中考數學必考考點之認識一元二次方程中的二次項習題練習這次課程我們來教大家如何認識一元二次方程中的一次項,二次項,常數項以及一次項係數,二次項係數等,教你輕鬆拿下中考數學的考點,輕鬆入門九年級數學中的一元二次方程,為後面的求解一元二次方程的根,打下堅實基礎。
  • 「句子級」的深度強化學習方法難以求解器空間
    backpropagation和progressivegradientxpress(引入hinton先驗,更多方法變為基於歷史記錄的scheme)都是深度學習起步之初的主流方法,除此之外還有包括reinforcementlearning和proximalandadaptiverl等重要進展。但是深度學習從起步到發展至今,說的上的諸多進展似乎都停留在rl的範疇。
  • 「全國體育單招」數學之函數定義域求解問題考法
    函數定義域問題是全國體育單招數學的常考題型,該問題經常困擾考生。解答此類問題首先要弄清楚什麼是定義域?定義域是保持函數表達式有意義的x的取值範圍,這個取值範圍求出來後需用區間,或集合表示。那麼保證表達式需要注意哪些呢?
  • 中考數學天天練之公式法求解一元二次方程練習題以及答案詳解
    走進2020年中考數學練習題之一元二次方程習題練習第二講本次課程我們主要來帶著大家練習一下如何使用公式法求解一元二次方程的根,通過這次課程學生要能靈活使用公式求解一元二次方程的根;習題目錄和分值題目分為四道大題,總共100分,分別為:一道選擇題
  • 多項式與等比數列乘積的前n項和的求解思路
    雖然這兩種數列是最簡單、最基礎的數列,但從其前n項和的推導過程中,我們能夠學習和借鑑到其中的方法,下面我將演示利用錯位相減法求解更複雜的數列的前n項和。複雜數列構造及求解例如,定義這樣一種數列c,它的通項公式可寫成等差數列第n項和等比數列第n項乘積的形式。
  • 求解微分方程,用seq2seq就夠了,性能遠超 Mathematica、Matlab
    這篇論文提出了一種新的基於seq2seq的方法來求解符號數學問題,例如函數積分、一階常微分方程、二階常微分方程等複雜問題。其結果表明,這種模型的性能要遠超現在常用的能進行符號運算的工具,例如Mathematica、Matlab、Maple等。
  • python快速求解不定積分和定積分
    接下來,我們將介紹上述的不定積分的求解。首先導入sympy庫中的所有類和函數。2)求解的結果中省略了常數C,需要自己加上。python求解定積分定積分的求解和不定積分類似,唯一的區別在於,定積分說明了積分的上下限。integrate(cos(x),  (x,-pi, pi))其中(x,-pi,pi)指明了定積分的上下限。
  • 數學經典:歐拉告訴你自然常數e是如何被引入到數學中的 - 電子通信...
    歐拉在他的著作中詳細討論了自然常數e的來源和被發現的過程,主要是有二項式定理得出,這是一個非常巧妙的發現。^0=1,所以當ω是無窮小時,a^ω會不斷趨於0,所以我們有這裡的ψ是無窮小,當ψ不是無窮小時,就意味著ω不是無窮小,這說明了和ψ存是相互關聯的,這裡我們讓ψ=kω,就會得到當以a為底:得到如下對數形式我們將a^ω=1+kω變形得到如下形式將上式用牛頓二項式定理展開得到在這裡我們假設ω是無窮小,i是無窮大時,i*ω=z就等於一個常數
  • 自然常數e:原來是這麼來的
    數學中有許多重要的常數,例如圓周率π和虛數單位i(等於根號負一)。但數學中還有一個同樣重要的常數,那就是自然常數e,儘管沒有圓周率那麼為人所熟知。這個常數經常出現在數學和物理學之中,但它從哪裡來?它究竟是什麼意思?
  • Excel求解多元一次、一元二次方程組就是這麼簡單!
    Excel除了日常的數據統計之外,還可以用來求解一元二次、多元一次方程組的解,手動輸入幾個數字,即可驗算結果是否正確,強烈推薦給輔導孩子數學而頭痛的父母們,哈哈!一元二次方程經過整理都可化成一般形式ax+bx+c=0(a≠0);其中ax叫作二次項,a是二次項係數;bx叫作一次項,b是一次項係數;c叫作常數項。通用求解公式:既然有通用求解公式,那我們參照這公式在Excel中輸入即可。
  • 你知道數學中常數e的秘密嗎?它還可以幫你找對象
    那麼第幾個會是最適合你結婚的呢?與麥穗問題一樣,關鍵就是不確定一個可能的範圍。然而,在數學家眼裡,這個問題並不是無從下手的,他們會告訴你前37位是可以錯過的,從第38位開始,你就不要錯過與前37位中最好的那位相差不大的女性了,或者如果出現了一位比前面的所有人都好,請果斷下手。你也許會覺得可笑,說緣分問題怎麼可能會用數字說這麼準確。當然,這不是百分之百準確的,這只是個概率問題,表現出的是一個規律。
  • 數學不行?
    是否有可能在某個地方存在著具有和我們現在不同的物理和數學定律的無限宇宙呢?宇宙 圖源:hatenablog不同的物理定律?絕對。據我們目前所知,控制宇宙的物理定律沒有先驗。不同的數學定律?這種事情是不存在的。數學定律不同於物理定律,它不是可供選擇的物體。以π值為例,它不是任何宇宙的物理性質,而是一個從最基礎的概念開始的,基本的、嚴謹的結論,比如,集合論的基本公理。同時,不同的起點不會導致不同的數學。
  • 數學之美:貝葉斯優化
    一般得優化問題可以通過以下三種方式求解:然而,這些方法並不適用上述定義的問題,對定義問句的優化受到以下幾個方面的限制:計算成本高。理想情況下,我們可以多次執行函數以確定其最優解,但我們的優化問題中計算過多採樣是不現實的。導數未知。 正是因為導數可知,梯度下降及類似方法廣泛應用於深度學習或某些機器學習算法。
  • 量子力學的核心,普朗克常數
    普朗克常數定義了我們宏觀實在物理學的尺寸級別,指引了通向奇異量子世界之路。而且微觀世界的量子表現能在宇宙的各種尺度觀測到。實際上,只需要測量陽光的顏色,就能觀測到這種量子表現的效果。甚至還能藉此測量普朗克常數。
  • 七年級數學,一元一次不等式難題,超詳細解析過程
    我們回顧一下解一元一次方程的幾個步驟:去分母去括號移項合併同類項係數化為1而解一元一次不等式的步驟呢,和上面的五步一樣,只有最後一步有點區別,在係數化為1的時候,如果係數為負數,要改變不等號的方向,如果係數為正數,則不改變。就是這麼一個小小的新知識,卻難住了無數的同學。
  • 「每周一識」一階非齊次線性微分方程求解及應用舉例
    本文介紹一階非齊次線性微分方程的通解的應用、特解求解舉例,以及二階微分方程可用該通解求解的情形。四、二階微分方程可使用通式求解舉例y''+y'/x=4,此時先對y'按照通式公式來求解,再對y'積分求解得到y,通解中含有兩個常數係數c1和c2,此時P=1/x,Q=4。
  • 五年級數學書上冊方程求解練習!建議假期中多練習,考試必備
    人教版:五年級數學書上冊方程求解練習!建議您在假期中多練習,考試必備。在小學五年級,學習壓力會相對較高,因為這是小學倒數第二年。一方面,我們必須學習新的知識點並鞏固我們以前學到的東西。特別是對於數學學科,進入五年級後,您將面臨大量的方程求解問題,這些都是學生的思維能力和應用計算能力的最好體現。但是不要因此而害怕。您必須知道,成功解決問題時所獲得的成就感會培養您對學習和學習習慣的興趣。因此,如果遇到問題就放棄,您將永遠無法很好地學習數學。求解方程是五年級數學學習中的難點之一。