宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

華盛頓大學Pedro Domingos:當神經網路遇上邏輯推理,Tensor Logic能否成為AI的通用語言?

2025年10月28日 首頁 » 熱門科技

在科技發展史上,每個領域的騰飛往往伴隨著一種專屬語言的誕生。物理學因微積分而起飛,電氣工程因複雜數的引入而發展,網際網路的繁榮離不開HTML。

華盛頓大學PedroDomingos當神經網路遇上邏輯推理TensorLogic能否成為AI的通用語

華盛頓大學電腦科學與工程學院的Pedro Domingos教授在2025年10月發表的這項研究中,提出了一個雄心勃勃的想法:人工智慧是否也需要找到自己的專屬語言?這篇發表於arXiv的論文給出了他的答案——張量邏輯(Tensor Logic),一種試圖統一神經網路和符號推理的全新編程語言。

當前,Python雖然是人工智慧領域事實上的標準語言,但這個原本並非為AI設計的語言正顯露出力不從心的跡象。PyTorch和TensorFlow等深度學習框架雖然提供了自動微分和GPU加速等重要功能,但它們本質上只是Python的補充工具包,在自動推理和知識獲取等關鍵任務上幫助有限。研究團隊長期以來一直試圖用各種臨時方案來彌補這些缺陷,但效果並不理想。另一方面,像LISP和Prolog這樣的經典AI語言雖然在符號推理方面表現出色,卻在可擴展性和學習能力上存在明顯短板。

這項研究的核心創新在於發現了一個令人驚訝的事實:邏輯規則和愛因斯坦求和(Einstein summation)本質上是同一種運算。基於這個觀察,Pedro Domingos提出的張量邏輯將張量方程作為唯一的語言構造,通過這種簡潔而強大的方式,優雅地實現了包括Transformer、形式推理、核機器和圖模型在內的各種AI範式。更重要的是,張量邏輯還開闢了全新的可能性,比如在嵌入空間中進行可靠推理——這種方法既具有神經網路的可擴展性和可學習性,又保留了符號推理的可靠性和透明度。

AI的語言困境:為什麼現有工具都不夠好?

回顧歷史,每當一個領域找到合適的表達語言時,就會迎來爆發式發展。牛頓發明微積分之後,物理學才真正騰飛;沒有向量微積分記號,麥克斯韋方程組將無法使用;現代晶片設計依賴硬體描述語言,資料庫管理依靠關係代數。一個好的符號系統能為該領域的從業者節省時間,集中注意力,甚至改變思維方式,使關鍵問題變得顯而易見,避免反覆從頭開始解決問題。

然而,人工智慧是否已經找到了自己的語言呢?LISP作為最早的高級編程語言之一,確實使符號AI成為可能,Prolog在20世紀80年代也曾風靡一時。但這兩種語言都因可擴展性差和缺乏學習支持而最終被Java和C 等通用語言取代。概率圖模型為概率AI提供了通用語言,但其適用性受到推理成本的限制。馬爾可夫邏輯等形式系統雖然能無縫結合符號AI和概率AI,但同樣因推理成本過高而受限。

Python目前是AI領域事實上的標準語言,但它從未為AI而設計,這一點日益明顯。PyTorch和TensorFlow等庫雖然提供了自動微分和GPU實現等重要功能,但在自動推理和知識獲取等關鍵任務上卻毫無幫助。神經符號AI試圖通過將深度學習模塊與符號AI模塊結合來改善這一狀況,但往往同時具有兩者的缺點。總而言之,AI顯然還沒有找到真正屬於自己的語言。

一個理想的AI語言應該具備哪些特徵?與Python不同,它應該隱藏所有與AI無關的細節,讓AI程序員專注於真正重要的事情。它應該便於將先驗知識整合到AI系統中,並對其進行自動推理。它還應該促進自動學習,生成的模型應該透明且可靠。它必須能夠輕鬆擴展。符號AI具備其中一些特性,深度學習具備另一些特性,但兩者都不完整。因此,研究團隊需要將它們合併。

張量邏輯正是通過統一兩者的數學基礎來實現這一目標。這個統一基於一個觀察:幾乎所有神經網路都可以用張量代數構建,所有符號AI都可以用邏輯編程構建,而這兩者在根本上是等價的,只是使用的原子數據類型不同。研究首先簡要回顧了邏輯編程和張量代數的基礎知識,然後定義了張量邏輯並描述了其推理和學習引擎。接著展示了如何在張量邏輯中優雅地實現神經網路、符號AI、核機器和圖模型。最後展示了張量邏輯如何實現在嵌入空間中進行可靠且透明的推理。

邏輯編程與張量代數:兩個世界的共同語言

符號AI中使用最廣泛的形式系統是邏輯編程。最簡單的邏輯編程語言Datalog由規則和事實組成。事實是形如r(o1, ..., on)的陳述,其中r是關係名稱,o是對象名稱。例如,Parent(Bob, Charlie)表示Bob是Charlie的父母,Ancestor(Alice, Bob)表示Alice是Bob的祖先。規則的形式為A0 ← A1, ..., Am,其中箭頭表示"如果",逗號表示邏輯"與",每個A的形式為r(x1, ..., xn),r是關係名稱,x是變量或對象名稱。

舉個例子,規則Ancestor(x, y) ← Parent(x, y)表示父母是祖先,而規則Ancestor(x, z) ← Ancestor(x, y), Parent(y, z)表示如果x是y的祖先且y是z的父母,那麼x是z的祖先。非正式地說,規則表示如果存在已知事實使其右側(主體)的所有關係同時為真,則其左側(頭部)為真。

在資料庫術語中,Datalog規則是一系列連接操作後跟投影操作。兩個關係R和S的(自然)連接是由R和S中對相同參數具有相同值的元組形成的所有元組的集合。當兩個關係沒有共同參數時,它們的連接退化為笛卡爾積。關係R在其參數子集G上的投影是通過從R中的元組中丟棄不在G中的所有參數而獲得的關係。

邏輯編程中的兩種常見推理算法是前向鏈接和後向鏈接。在前向鏈接中,規則被反覆應用於已知事實以推導新事實,直到無法推導出更多事實為止。結果稱為程序的演繹閉包或不動點,所有感興趣的問題都可以通過檢查它來回答。後向鏈接試圖通過查找與之匹配的事實或以其為頭部的規則以及與主體匹配的事實來回答問題,依此類推遞歸進行。Datalog中的前向和後向鏈接都是可靠的推理過程,這意味著它們給出的答案保證在邏輯上遵循程序中的規則和事實。邏輯程序既有聲明性語義又有過程性語義,這意味著規則既可以被解釋為關於世界的陳述,也可以被解釋為通過調用主體中的過程並組合結果來計算給定參數的頭部的過程。

歸納邏輯編程(ILP)領域關注從數據中學習邏輯程序。例如,ILP系統可能從一個小型父母和祖先關係資料庫中歸納出上述規則。一旦歸納出來,這些規則可以回答有關任意長度和涉及任何人的祖先鏈的問題。一些ILP系統還可以進行謂詞發明,即發現數據中未明確出現的關係,類似於神經網路中的隱藏變量。

張量由兩個屬性定義:類型(實數、整數、布爾等)和形狀。張量的形狀包括其秩(索引數)和每個索引的大小(元素數)。例如,影片可以由形狀為(t, x, y, c)的整數張量表示,其中t是幀數,x和y是幀的寬度和高度(以像素為單位),c是顏色通道數(通常為3)。矩陣是秩為2的張量,向量是秩為1的張量,標量是秩為0的張量。

愛因斯坦記號通過省略所有求和符號並隱式地對所有重複索引求和來簡化張量方程。例如,AijBjk表示矩陣A和B的乘積,對j求和並產生索引為i和k的矩陣。更一般地,兩個張量A和B具有公共索引β的愛因斯坦和(或簡稱einsum)是張量C,使得Cαγ = Σβ AαβBβγ,其中α、β和γ是索引集,α是A的索引中不出現在B中的子集,α和β的元素可以以任何順序交錯,B和γ同理。神經網路中幾乎所有的線性和多線性運算都可以簡潔地表示為einsum。

像矩陣一樣,張量可以分解為較小張量的乘積。特別是,Tucker分解將張量分解為相同秩的更緊湊的核心張量和k個因子矩陣,每個因子矩陣將核心張量的一個索引擴展為原始張量的一個索引。

張量邏輯的核心:當關係遇上張量

張量邏輯基於兩個關鍵問題的答案:張量和關係之間有什麼聯繫?Datalog規則和einsum之間有什麼聯繫?

第一個問題的答案是,關係是稀疏布爾張量的緊湊表示。例如,社交網路可以用鄰接矩陣Mij表示,其中i和j的範圍是個人,如果i和j是鄰居則Mij = 1,否則為0。但對於大型網路來說,這是一種低效的表示,因為幾乎所有元素都是0。網路可以通過關係更緊湊地表示,每對鄰居有一個元組;不在關係中的對被假定為不是鄰居。更一般地,秩為n的稀疏布爾張量可以通過n元關係緊湊地表示,每個非零元素有一個元組,效率提升通常隨n呈指數增長。

第二個問題的答案是,Datalog規則是對布爾張量的einsum,並對結果逐元素應用階躍函數。考慮規則Aunt(x, z) ← Sister(x, y), Parent(y, z)。將關係Aunt(x, z)、Sister(x, y)和Parent(y, z)分別視為布爾矩陣Axz、Sxy和Pyz,那麼Axz = H(SxyPyz) = H(Σy SxyPyz)當且僅當對於至少一個y,Sxy和Pyz都為1時才為1。換句話說,einsum SxyPyz實現了Sister(x, y)和Parent(y, z)的連接。如果x是z的姑姑或姨媽,y就是x的兄弟姐妹,同時也是z的父母。階躍函數是必要的,因為一般來說,對於給定的(x, z)對,可能有多個y使得Sxy = Pyz = 1,導致結果大於1。然後階躍函數將其減少到1。

由於張量和關係以及einsum和Datalog規則之間存在直接對應關係,因此也應該有直接對應於資料庫連接和投影的張量運算。研究因此定義了張量投影和張量連接。張量T在其索引子集α上的投影是πα(T) = Σβ Tαβ,其中β是T的不在α中的索引集。換句話說,T在α上的投影是對α的每個值,T的所有具有該α值的元素的總和。兩個張量U和V沿公共索引集β的連接是(U ?? V)αβγ = UαβVβγ,其中α是U的維度中不在V中的子集,γ和V同理。換句話說,兩個張量在公共索引子集β上的連接對具有相同β值的每對元素有一個元素,該元素是它們的乘積。

張量邏輯程序是一組張量方程。張量方程的左側(LHS)是正在計算的張量。右側(RHS)是一系列張量連接後跟張量投影,以及可選地逐元素應用於結果的單變量非線性函數。張量由其名稱後跟索引列表表示,索引以逗號分隔並括在方括號中。連接符號被省略,投影是到LHS上的索引。例如,單層感知器由張量方程Y = step(W[i] X[i])實現,其中在i上連接並將其投影出來實現了W和X的點積。

注意,與NumPy、PyTorch等中的einsum實現一樣,張量方程比原始愛因斯坦記號更通用:被求和的索引是那些不出現在LHS中的索引,因此重複索引可能被求和也可能不被求和。張量元素默認為0,具有相同LHS的方程被隱式求和。這既保持了與邏輯編程的對應關係,又使張量邏輯程序更短。張量類型可以聲明或推斷。將張量設置為等於文件會將文件讀入張量。讀取文本文件會產生一個布爾矩陣,如果文本中的第i個位置包含詞彙表中的第j個單詞,則其第ij個元素為1。

這就是張量邏輯的完整定義。除此之外沒有關鍵字、其他構造等。但是,允許一些語法糖是方便的,雖然不會增加語言的表達能力,但使編寫常見程序更加方便。例如,研究允許:一個方程中的多個項、索引函數、歸一化、其他張量函數、替代投影運算符、切片和過程附加。張量邏輯接受Datalog語法;用括號而不是方括號表示張量意味著它是布爾的。

作為另一個簡單示例,多層感知器可以通過方程X[i, j] = sig(W[i, j, k] X[i-1, k])實現,其中i的範圍是層,j和k的範圍是單元,sig()是sigmoid函數。不同的層可以具有不同的大小(相應的權重矩陣隱式地用零填充以構成完整的張量)。基本的循環神經網路(RNN)可以通過X[i, ∗t 1] = sig(W[i, j] X[j, ∗t] V[i, j] U[j, t])實現,其中X是狀態,U是輸入,i和j的範圍是單元,t的範圍是時間步。∗t符號表示t是虛擬索引:不為其分配內存,X[i]向量的連續值被寫入同一位置。由於RNN是圖靈完備的,上述實現意味著張量邏輯也是圖靈完備的。

推理與學習:讓AI系統自動優化

張量邏輯中的推理使用前向和後向鏈接的張量泛化來執行。在前向鏈接中,張量邏輯程序被視為線性代碼。張量方程依次執行,每個方程計算必要輸入可用的張量元素;這重複進行,直到無法計算新元素或滿足停止標準。在後向鏈接中,每個張量方程被視為函數。查詢是頂層調用,每個方程調用其RHS上張量的方程,直到數據中有所有相關元素或子查詢沒有方程。在後一種情況下,(子)查詢元素默認分配為0。是使用前向鏈接還是後向鏈接取決於應用。

因為張量邏輯中只有一種類型的語句——張量方程——自動微分張量邏輯程序特別簡單。除了單變量非線性函數外,張量方程的LHS對RHS上張量的導數只是RHS上其他張量的乘積。更精確地說,如果Y[...] = T[...] X1[...] ... Xn[...],那麼∂Y[...]/∂T[...] = X1[...] ... Xn[...]。

因此,張量邏輯程序的梯度也是張量邏輯程序,每個方程及其RHS上的張量都有一個方程。省略索引以簡潔起見,損失L對張量T的導數是∂L/∂T = ΣE (dL/dY)(dY/dU)ΠUT X,其中E是T出現在其RHS中的方程,Y是方程的LHS,U是其非線性函數的參數,X是U中的張量。

學習張量邏輯程序需要通過一個或多個張量方程指定損失函數及其應用的張量。例如,要通過最小化最後一層輸出的平方損失來學習MLP,可以使用方程Loss = (Y[e] − X[∗e, N, j])²,其中e的範圍是訓練樣例,j的範圍是單元,Y包含目標值,X是如上定義的擴展了虛擬索引的MLP,N是層數。默認情況下,所有未作為訓練數據提供的張量都將被學習,但用戶可以指定是否應保持任何張量不變(例如,超參數)。優化器本身可以用張量邏輯編碼,但通常會使用預先提供的優化器。

雖然傳統神經網路中的反向傳播對所有訓練樣例應用於相同的架構,但在張量邏輯中,結構可能因樣例而異,因為不同的方程可能適用於不同的樣例,通過所有可能的樣例推導的並集進行反向傳播將是浪費的。幸運的是,通過結構反向傳播已經有了解決方案,它為每個樣例更新每個方程的參數,次數等於它在樣例推導中出現的次數。將此應用於RNN會產生通過時間反向傳播的特殊情況。

學習由一組固定方程組成的張量邏輯程序非常靈活,因為方程可以表示具有相同連接結構的任何規則集。此外,張量邏輯中的張量分解實際上是謂詞發明的泛化。例如,如果要學習的程序是方程A[i, j, k] = M[i, p] M'[j, q] M''[k, r] C[p, q, r],並且A是唯一的數據張量,學習的M、M'、M''和C形成A的Tucker分解;將它們閾值化為布爾值會將它們轉變為發明的謂詞。

實現各種AI範式:從神經網路到符號推理

卷積神經網路是具有卷積層和池化層的MLP。卷積層在圖像的每個位置應用濾波器,可以通過形式為Features[x, y] = relu(Filter[dx, dy, ch] Image[x dx, y dy, ch])的張量方程實現,其中x和y是像素坐標,dx和dy是濾波器坐標,ch是RGB通道。池化層將附近濾波器塊組合為一個,可以通過Pooled[x/S, y/S] = Features[x, y]實現,其中/是整數除法,S是步幅。

圖神經網路(GNN)將深度學習應用於圖結構數據(例如社交網路、分子、代謝網路、Web)。GNN的實現包括多個組件:網路的圖結構由Neig(x, y)關係定義,每個相鄰的(x, y)對有一個事實;主張量Emb[n, l, d]包含每個層l中每個節點n的d維嵌入;初始化將每個節點的第0層嵌入設置為其特徵;然後網路執行L次消息傳遞疊代,每層一次。每次疊代首先對每個節點應用一個或多個感知器層,然後通過連接張量Neig(n, n')和Z[n', l, d]來聚合每個節點鄰居的新特徵Z。對於每個節點,這會將所有非鄰居的貢獻清零;結果是鄰居特徵的總和。

注意力機制是大型語言模型的基礎,在張量邏輯中也很容易實現。給定嵌入矩陣X[p, d],其中p的範圍是項目(例如文本中的位置),d的範圍是嵌入維度,查詢、鍵和值矩陣通過將X乘以相應的權重矩陣獲得。然後可以分兩步計算注意力,第一步將每個位置的查詢與每個鍵進行比較,第二步返回由相應比較加權的值向量的總和。

研究團隊展示了如何用僅十幾個張量方程實現整個Transformer。文本可以用關係X(p, t)表示,說明文本中的第p個位置包含第t個標記。然後通過將X(p, t)乘以嵌入矩陣Emb[t, d]獲得文本的嵌入EmbX[p, d]。下一個方程實現位置編碼。然後將殘差流初始化為文本嵌入和位置編碼的總和。注意力按上述方式實現,每個張量有兩個額外的索引:b表示注意力塊,h表示注意力頭。然後將注意力頭的輸出連接起來,添加到殘差流並進行層歸一化。MLP層的實現與之前相同,具有塊和位置的額外索引,它們的輸出也被歸一化並添加到流中。最後,通過將流與每個標記的輸出權重向量點乘並通過softmax獲得輸出(標記概率)。

Datalog程序是有效的張量邏輯程序。因此,任何可以在Datalog中完成的事情都可以在張量邏輯中完成。這足以實現許多符號系統,包括在無函數域中的推理和規劃。

核機器可以通過方程Y[Q] = f(A[i] Y[i] K[Q, i] B)實現,其中Q是查詢樣例,i的範圍是支持向量,f()是輸出非線性函數(例如sigmoid)。然後核K由其自己的方程實現。例如,多項式核是K[i, i'] = (X[i, j] X[i', j])^n,其中i和i'的範圍是樣例,j的範圍是特徵,n是多項式的次數。高斯核是K[i, i'] = exp(−(X[i, j] − X[i', j])²/ Var)。

概率圖模型將一組隨機變量的聯合概率分布表示為因子的歸一化乘積。圖模型中的構造和運算直接映射到張量邏輯中的構造和運算。因子是張量,邊緣化是投影,逐點乘積是連接。每個圖模型都可以表示為連接樹,這是一個因子樹,其中每個因子是原始模型中因子的連接。所有邊際和條件查詢都可以通過依次邊緣化因子並將它們與父因子逐點相乘來在樹大小的線性時間內回答。連接樹是樹狀張量邏輯程序,即沒有張量出現在多個RHS中的程序。因此,可以通過對該程序進行後向鏈接來執行線性時間推理。

然而,連接樹可能比原始模型大得多,需要近似推理。兩種最流行的方法是循環置信傳播和蒙特卡洛採樣。循環置信傳播是表示模型的張量邏輯程序上的前向鏈接。採樣可以通過具有選擇性投影的後向鏈接來實現(即用其項的隨機子集替換投影)。

嵌入空間推理:可靠性與靈活性的結合

張量邏輯最有趣的特性是它提出的新模型。研究展示了如何在嵌入空間中執行知識表示和推理,並指出了這種方法的可靠性和透明度。

首先考慮對象的嵌入是隨機單位向量的情況。嵌入可以存儲在矩陣Emb[x, d]中,其中x的範圍是對象,d的範圍是嵌入維度。將Emb[x, d]乘以獨熱向量V[x]然後檢索相應對象的嵌入。如果V[x]是表示集合的多熱向量,S[d] = V[x] Emb[x, d]是集合中對象嵌入的疊加。某個對象A的點積D[A] = S[d] Emb[A, d]如果A在集合中則約為1,否則約為0(標準差為√(N/D),其中N是集合的基數,D是嵌入維度)。然後在1/2處閾值化告訴我們A是否在集合中,錯誤概率隨嵌入維度而降低。

相同的方案可以擴展到嵌入關係。考慮簡單起見的二元關係R(x, y)。那麼EmbR[i, j] = R(x, y) Emb[x, i] Emb[y, j]是關係中元組嵌入的疊加,其中元組的嵌入是其參數嵌入的張量積。這是一種張量積表示。方程D[A, B] = EmbR[i, j] Emb[A, i] Emb[B, j]檢索R(A, B),即如果元組(A, B)在關係中則D[A, B]約為1,否則為0,因為兩個隨機單位向量的點積約為0。

關係符號本身可以被嵌入。任意元數的關係可以簡化為(關係、參數、值)三元組的集合。因此,整個資料庫可以作為單個秩為3的張量嵌入。下一步是嵌入規則。可以通過用嵌入替換Datalog規則的前件和後件來嵌入它:如果規則是Cons(...) ← Ant1(...), ..., Antn(...),其嵌入是EmbCons[...] = EmbAnt1[...] ... EmbAntn[...],其中EmbAnt1[...] = Ant1(...) Emb[...] ... Emb[...],等等。

現在可以通過對嵌入規則進行前向或後向鏈接來在嵌入空間中進行推理。可以通過將查詢的張量與其參數的嵌入連接來提取查詢的答案,如上所示對於任何關係。這給出了大致正確的結果,因為每個推斷的張量可以表示為嵌入關係的連接的投影之和,並且每個參數的乘積Emb[x, i] Emb[x', i]約為單位矩陣。錯誤概率隨嵌入維度而降低,如前所述。為了進一步降低它,可以定期提取、閾值化和重新嵌入推斷的張量(在極限情況下,在每次規則應用後)。

然而,最有趣的情況是當對象的嵌入是學習的。嵌入矩陣及其轉置的乘積Sim[x, x'] = Emb[x, d] Emb[x', d]現在是通過嵌入的點積測量每對對象相似性的格拉姆矩陣。相似的對象以與其相似性成比例的權重相互"借用"推理。這導致了一種強大的類比推理形式,它在深度架構中明確結合了相似性和組合性。

如果對每個方程應用sigmoid,σ(x, T) = 1/(1 e^(-x/T)),將其溫度參數T設置為0實際上將格拉姆矩陣減少為單位矩陣,使程序的推理純粹是演繹的。這與大型語言模型形成對比,後者即使在T = 0時也可能產生幻覺。它也比檢索增強生成強大得多,因為它有效地檢索規則下事實的演繹閉包而不僅僅是事實。

提高溫度使推理越來越類比,相似度越來越低的樣例相互借用推理。最佳T將取決於應用,並且對於不同的規則可能不同(例如,某些規則可能是數學真理並且具有T = 0,而其他規則可能用於累積弱證據並且具有高T)。

可以在推理期間的任何時點提取推斷的張量。這使得推理高度透明,與基於大型語言模型的推理模型形成對比。在足夠低的溫度下,它也是高度可靠的並且不受幻覺影響,再次與基於大型語言模型的模型形成對比。同時,它具有嵌入空間推理的泛化和類比能力。這可能使它成為廣泛應用的理想選擇。

擴展之路:如何處理大規模問題

對於大規模學習和推理,涉及密集張量的方程可以直接在GPU上實現。對稀疏和混合張量的運算可以使用至少兩種方法之一來實現。

第一種是關注點分離:密集(子)張量上的運算在GPU上實現,稀疏(子)張量上的運算通過將(子)張量視為關係使用資料庫查詢引擎實現。然後可以將查詢優化的全部能力應用於組合這些稀疏(子)張量。整個密集子張量可以被資料庫引擎視為單個元組,帶有指向子張量的參數。然後使用GPU連接和投影密集子張量。

第二種也是更有趣的方法是在GPU上執行所有運算,首先通過Tucker分解將稀疏張量轉換為密集張量。這比直接對稀疏張量進行運算在效率上高出指數級,並且如前一節所示,即使是隨機分解也足夠了。代價是會有小概率出錯,但這可以通過適當設置嵌入維度和通過階躍函數對結果進行去噪來控制。通過Tucker分解進行擴展具有顯著優勢,即它與前面幾節中描述的學習和推理算法無縫結合。

至頂AI實驗室洞見

張量邏輯不僅僅是一種新的編程語言,更是一種全新的思維方式。它在科學計算領域也可能大有用武之地,因為科學計算本質上就是將方程轉換為代碼,而張量邏輯使這種轉換比以往任何語言都更直接,通常能實現紙上符號與代碼符號之間的一一對應。在科學計算中,相關方程被包裹在控制其執行的邏輯語句中。張量邏輯通過將相應的布爾張量鬆弛為數值張量,並可選地將結果閾值回邏輯,使這種控制結構自動可學習。同樣的方法原則上適用於使任何程序可學習。

任何新編程語言都面臨著被廣泛採用的陡峭攀登。張量邏輯的成功機會如何?AI編程不再是小眾領域;張量邏輯可以像Java乘著網際網路浪潮一樣乘著AI浪潮獲得廣泛採用。與Python的向後兼容性至關重要,張量邏輯非常適合這一點:它最初可以用作einsum的更優雅實現和Python到推理任務的擴展,隨著它的發展,它可以吸收越來越多NumPy、PyTorch等的特性,直到它取代它們。

最重要的是,新語言的採用是由它們治癒的重大痛點和它們支持的殺手級應用驅動的,張量邏輯非常具有這些特性:例如,它有可能治癒大型語言模型的幻覺和不透明性,並且是推理、數學和編碼模型的理想語言。圍繞張量邏輯培育一個開源社區將是重中之重。張量邏輯適合緊密集成編碼、數據整理、建模和評估的集成開發環境,如果它起飛,供應商將競相支持它。它也非常適合教學和學習AI,這是它可以傳播的另一個途徑。

論文地址:

https://arxiv.org/pdf/2510.12269

END
本文來自至頂AI實驗室,一個專注於探索生成式AI前沿技術及其應用的實驗室。致力於推動生成式AI在各個領域的創新與突破,挖掘其潛在的應用場景,為企業和個人提供切實可行的解決方案。
Q&A

Q1:張量邏輯與現有的深度學習框架(如PyTorch和TensorFlow)有什麼本質區別?

A:張量邏輯與PyTorch、TensorFlow最本質的區別在於它不是Python的補充工具包,而是一種專門為AI設計的編程語言。它只有一種語言構造——張量方程,通過統一神經網路的張量代數和符號推理的邏輯編程,將兩者在數學基礎上融合。而PyTorch等框架雖然提供了自動微分和GPU加速,但在自動推理和知識獲取等符號AI任務上幫助有限。更重要的是,張量邏輯能夠在嵌入空間中進行可靠的推理,在溫度參數為0時不會產生幻覺,這是大型語言模型無法做到的。

Q2:張量邏輯如何同時實現符號推理的可靠性和神經網路的學習能力?

A:張量邏輯的關鍵創新在於發現邏輯規則本質上就是對布爾張量的愛因斯坦求和運算。通過這一統一,Datalog規則可以直接轉換為張量方程,符號推理變成了張量運算。當對象嵌入是學習的時候,通過調節溫度參數,系統可以在純演繹推理(溫度為0,完全可靠)和類比推理(溫度較高,允許相似對象相互借用推理)之間連續調節。推斷的張量可以在任何時點提取,使推理過程高度透明。同時,由於只有一種語句類型,自動微分變得特別簡單,梯度計算也是張量方程,從而實現了自動學習。

Q3:張量邏輯在實際應用中如何處理大規模數據的計算效率問題?

A:張量邏輯提出了兩種主要的擴展方法。第一種是關注點分離:密集張量運算直接在GPU上實現,而稀疏張量運算使用資料庫查詢引擎實現,充分利用查詢優化技術。第二種更有趣的方法是通過Tucker分解將所有稀疏張量轉換為密集張量後在GPU上操作,這比直接操作稀疏張量的效率高出指數級。即使使用隨機分解也能獲得足夠準確的結果,錯誤概率可以通過適當設置嵌入維度和應用階躍函數去噪來控制。這種方法的優勢在於它能與學習和推理算法無縫結合,使得大規模符號推理和神經網路訓練可以在同一框架下高效進行。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新