一個運算子統治所有函數:EML 算子與連續數學的 NAND 閘

前陣子在 arXiv 上看到一篇論文,看完之後我整個人愣住了

標題很樸素,All elementary functions from a single operator,作者是波蘭 Jagiellonian 大學的理論物理學家 Andrzej Odrzywolek,他發現了一件事:

一個二元運算子 eml(x, y) = exp(x) − ln(y),配上常數 1,就能建構出科學計算機上的所有函數

sin, cos, tan, log, sqrt, 加減乘除, 指數, 反三角函數, 雙曲函數,全部都可以

這等於是在說,你手上那台科學計算機的 36 個按鈕,其實只需要 2 個就夠了

為什麼這件事不平凡

學過數位邏輯的人都知道 NAND 閘,在布林邏輯的世界裡,NAND 是一個「萬能閘」:AND, OR, NOT, XOR… 所有邏輯運算都可以只用 NAND 組合出來,這是數位電路的基石,也是為什麼晶片上可以只用一種電晶體結構就建構出任意複雜的邏輯

但在連續數學的世界裡,從來沒有人找到過這樣的東西

我們知道很多函數之間有冗餘關係,tan = sin/cos,√x = x^(1/2),sinh 和 cosh 可以用 exp 表達,Euler 公式把三角函數和指數函數統一了。歷史上對數的發明把乘法化約成加法,Euler 公式進一步把 exp 和 ln 確立為核心,但化約到 exp 和 ln 之後就一直卡在那裡

幾百年來沒有人再往下走一步

Odrzywolek 做的事情是用系統性的窮舉搜尋,一步步把科學計算機的 36 個基本元素(常數、函數、運算子)往下削減,從 36 個削到 Wolfram Mathematica 的 7 個,再到 6 個、4 個、3 個,最後削到只剩 2 個:一個運算子 EML,一個常數 1

EML 怎麼運作

定義極其簡單:

$$\text{eml}(x, y) = e^x - \ln(y)$$

幾個直觀的例子:

  • e = eml(1, 1),因為 e¹ − ln(1) = e − 0 = e
  • exp(x) = eml(x, 1),因為 eˣ − ln(1) = eˣ
  • ln(x) = eml(1, eml(eml(1, x), 1)),這個就開始反直覺了

到了乘法和三角函數,EML 表達式的深度可以到 8 層甚至更深,論文中有一個完整的推導鏈(Figure 1),從 eml 和 1 出發逐步建構出 e → exp → ln → 0 → −1 → minus → i → π → 加法 → 減法 → 乘法 → 除法 → 指數 → 所有三角函數

整條鏈的文法極其簡單:S → 1 | eml(S, S),就這樣,一個 context-free grammar 就能生成所有基礎數學函數

這個發現的搜尋過程本身就很精彩

論文裡有一個小例子很好地說明了為什麼這類問題不能靠直覺解決

假設你只有三個運算:suc(x) = x + 1,pre(x) = x − 1,inv(x) = 1/x,請問怎麼算出 −x?

答案是:

$$\text{suc}(\text{inv}(\text{pre}(\text{inv}(\text{suc}(\text{inv}(x)))))) = -x$$

深度 5 的巢狀,完全違反直覺,而 EML 的建構過程中充滿了這種 Kolmogorov 複雜度在 7 到 9 之間的表達式,根本不可能靠人腦硬想

Odrzywolek 的方法是混合式的,先把代數無關的超越常數(像 Euler-Mascheroni 常數)代入變數,用數值計算篩選候選公式,再用符號計算驗證,整個搜尋過程用 Mathematica 實作,後來又用 GPT Codex 翻譯成 Rust,速度快了三個數量級

為什麼我覺得這對量化交易和深度學習有重大意義

這裡才是我真正想說的

符號回歸:從數據中發現精確公式

量化交易和科學建模中有一個核心問題,你有一堆數據,你想找到背後的精確數學公式,這就是符號回歸(Symbolic Regression)的領域

傳統的符號回歸方法不管是遺傳演算法還是更現代的方法,都面臨一個根本困難:搜尋空間是異質的,你需要同時搜尋要用哪些運算子(+, −, ×, sin, log…)以及它們的組合方式,這讓搜尋空間既巨大又不規則

EML 徹底改變了這個局面

因為所有基礎函數都可以用同一個運算子表達,搜尋空間變成了一棵均質的二元樹,每個節點都是 eml,每個葉子不是 1 就是輸入變數 x,你不需要決定「這裡該放 sin 還是 log」,只需要決定樹的結構和每個葉子的值

更關鍵的是這棵樹是可微分的,論文中展示了一個「master formula」的概念:在樹的每個輸入位置放一個線性組合 αᵢ + βᵢx + γᵢf,其中 α, β, γ 是可訓練的參數,然後用 Adam optimizer 做梯度下降,訓練完之後把權重 snap 到最近的 0 或 1,就能恢復出精確的符號表達式

論文的實驗結果是在深度 2 的樹上從隨機初始化出發,100% 的實驗都能恢復出正確的公式,深度 3-4 約 25%,深度 5 以上就很難了,但重點是:當你從正確解附近出發時,即使深度 5 和 6 也能 100% 收斂回去,這意味著正確的 basin of attraction 是存在的,問題只在於如何找到它

對量化交易的意義

在量化交易中我們經常需要從市場數據中挖掘出有預測力的因子或公式,傳統做法要嘛是人工構造因子(依賴領域知識和直覺),要嘛是用機器學習的黑箱模型(有效但不可解釋)

EML 提供了一個中間路線:用梯度下降來搜尋精確的數學公式

想像一下,你把價格序列、成交量、波動率等數據餵進一個 EML tree,訓練後得到的不是一個不可解釋的神經網路權重矩陣,而是一個可以寫成封閉形式的數學公式,你可以直接看到這個因子的數學結構,理解它為什麼有效,判斷它是過擬合還是真的捕捉到了某種市場規律

這在風險管理和模型審計上的價值是巨大的

對深度學習的意義

論文中有一個很妙的觀察:任何傳統神經網路都是 EML tree 的特例

因為標準的激活函數(ReLU, sigmoid, tanh…)本身就是基礎函數,所以任何用這些激活函數建構的神經網路理論上都可以用 EML 表達,但反過來不成立,EML tree 能表達的東西比傳統神經網路更多

更重要的是可解釋性,傳統神經網路訓練完之後你得到的是一堆浮點數權重,沒有人能從中讀出物理意義,但 EML tree 訓練完之後如果權重能 snap 到精確值,你得到的是一個可讀的數學公式,這是一種傳統架構根本不可能提供的可解釋性

論文的原話是:

When this succeeds, the discovered circuits are legible as elementary function expressions — a form of interpretability unavailable to conventional architectures.

開放問題

這篇論文讓我最興奮的,反而是它還沒解決的問題

EML 需要一個特定常數 1 作為起點,NAND 閘不需要,它可以從任意輸入生成 0 和 1,那有沒有一個連續的二元運算子不需要任何特定常數就能生成所有基礎函數?Odrzywolek 自己也在找,他已經發現了一個三元版本 T(x, y, z) = eˣ/ln(x) × ln(z)/eʸ,滿足 T(x, x, x) = 1,但完整的驗證還在進行中

另一個問題是有沒有一個一元的 Sheffer,也就是一個激活函數既能像 ReLU 一樣用在神經網路中,又能精確計算所有基礎函數?如果這個東西存在,那深度學習的架構設計可能會被徹底改寫

最後

這篇論文讓我想起當初讀到那篇關於十二平均律的文章時的感覺,表面上看是一個純數學的發現,但它觸及的是一個非常根本的結構性問題:我們以為需要很多不同工具才能描述的世界,其實可能只需要一個

從 36 個按鈕到 2 個按鈕,這不只是一個數學遊戲,它揭示了基礎函數之間的冗餘程度遠遠超出我們的想像,而這種冗餘一旦被正確利用就能打開全新的計算範式

論文的 arXiv 編號是 2603.21852,程式碼和驗證工具都開源在 GitHub 上,如果你對符號回歸或數學基礎有興趣,這篇值得從頭到尾讀一遍