馭洋 曉查 發自 凹非寺量子位 出品 | 公眾號 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