「壓縮即智慧」得到實驗驗證,無需預訓練和大量資料就能解決ARC-AGI問題

机器之心發表於2025-03-15
「壓縮即智慧」。這並不是一個新想法,著名 AI 研究科學家、OpenAI 與 SSI 聯合創始人 Ilya Sutskever 就曾表達過類似的觀點。甚至早在 1998 年,電腦科學家 Jose Hernandez-Orallo 就已經在論文《A Formal Definition of Intelligence Based on an Intensional Variant of Algorithmic Complexity》中有過相關的理論論述。
圖片
近日,卡內基梅隆大學 Albert Gu 領導的一個團隊進一步證明了這一想法。據介紹,他們的研究目的是透過實驗來解答一個簡單又基本的問題:無損資訊壓縮本身能否產生智慧行為?
圖片
  • 部落格地址:https://iliao2345.github.io/blog_posts/arc_agi_without_pretraining/arc_agi_without_pretraining.html
  • 專案地址:https://github.com/iliao2345/CompressARC

該團隊寫到:「在這項工作中,透過開發一種純粹基於壓縮的方法,我們的證據證明:推理期間的無失真壓縮足以產生智慧行為。

該方法在 ARC-AGI 上表現優良,而 ARC-AGI 是一個類似智商測試的謎題資料集,被測模型需要根據有限的演示推斷出程式 / 規則。

基於此,該團隊將這個方法命名為 CompressARC,其符合以下三個限制:

  • 無需預訓練;模型在推理期間隨機初始化和訓練。
  • 無需資料集;模型僅在目標 ARC-AGI 謎題上進行訓練並輸出一個答案。
  • 無需搜尋 —— 只需梯度下降。

儘管存在這些限制,但 CompressARC 還是在訓練集上實現了 34.75% 的準確度,在評估集上實現了 20% 的準確度。

處理時間方面,在 RTX 4070 上,處理每個謎題的時間大約為 20 分鐘。

該團隊表示:「據我們所知,這是首個訓練資料僅限於目標謎題的用於解決 ARC-AGI 的神經方法。

他們特別指出:CompressARC 的智慧並非源自預訓練、龐大的資料集、詳盡的搜尋或大規模計算,而是源自壓縮。「對於依賴大量預訓練和資料的傳統,我們發起了挑戰,並展現了一種未來,即經過定製設計的壓縮目標和高效的推理時間計算共同發力,從而可以從最少的輸入中提取出深度智慧。」

ARC-AGI 簡介

ARC-AGI 提出於 2019 年,這個 AI 基準的目標是測試系統從少量示例中歸納總結出抽象規則的能力。

該資料集中包含一些類似 IQ 測試的謎題:先展示一些演示底層規則的影像,然後給出需要補全或應用該規則的測試影像。下面展示了三個示例:
圖片
每個謎題都有一個隱藏規則,可將每個輸入網格對映到每個輸出網格。被測試者將獲得一些輸入對映到輸出的示例,並且有兩次機會(Pass@2)猜測給定輸入網格的輸出網格。

如果任何一個猜測是正確的,那麼被測試者將獲得該謎題的 1 分,否則將獲得 0 分。被測試者可以更改輸出網格的大小並選擇每個畫素的顏色。

一般來說,人類通常能合理地找到答案,而機器目前還較難解決這個問題。普通人可以解決 76.2% 的訓練集,而人類專家可以解決 98.5%。

有 400 個訓練謎題會比其他謎題更容易,其目的是幫助被測試者學習以下模式:

  • Objectness(事物性):事物會持續存在,不會無緣無故地出現或消失。物體能否互動取決於具體情況。
  • 目標導向性:事物可以是動態的或靜止的。有些物體是「智慧體」—— 它們有意圖並會追求目標。
  • 數字和計數:可以使用加法、減法和比較等基本數學運算,根據物體的形狀、外觀或運動對它們進行計數或分類。
  • 基本幾何和拓撲:物體可以是矩形、三角形和圓形等形狀,可以執行映象、旋轉、平移、變形、組合、重複等操作。可以檢測到距離差異。

ARC Prize 團隊曾多次發起解決 ARC-AGI 的競賽,並提供金錢獎勵。最近的一次競賽涉及高達 100 萬美元的潛在獎金,主要獎金留給了能夠在受限環境中使用 12 小時計算,在 100 個謎題的私有測試集上實現 85% 成功率的方法。

此前,OpenAI 曾宣佈 o3 模型在 ARC-AGI 基準可達到 87.5% 的水平,被廣泛認為是重大的歷史性突破,參閱報導《剛剛,OpenAI 放出最後大驚喜 o3,高計算模式每任務花費數千美元》。
圖片
新提出的解決方案

Albert Gu 領導的團隊提出,無損資訊壓縮可以作為解決 ARC-AGI 謎題的有效框架。謎題的一個更高效(低位元)壓縮就對應於一個更準確的解。

為了解答 ARC-AGI 謎題,該團隊設計了一個系統,可以將不完整的謎題轉換成完整的(填入答案),方法是尋找一個緊湊的表示,而當對這個表示進行解壓縮時,就會重現有任意解的謎題。這個方法的關鍵難題是在沒有答案作為輸入的前提下獲得這種緊湊的表示。

CompressARC 使用了一個神經網路作為解碼器。然而,編碼演算法卻不是一個神經網路——相反,編碼是由梯度下降演算法實現的,該演算法在解碼器上執行推理時間訓練,同時保持正確的解碼輸出。

換句話說,執行該編碼器就意味著最佳化解碼器的引數和輸入分佈,從而獲得經過最大壓縮的謎題表示。

由此得到的最佳化版引數(例如,權重和輸入分佈設定)本身將作為經過壓縮的位元表示,其編碼了謎題與其答案。

如果用標準機器學習術語來描述:(沒有壓縮領域的術語,並進行了一些簡化)

  1. 從推理時間開始,給出一個要解決的 ARC-AGI 謎題。(比如下圖)
  2. 構建一個神經網路 f(參見架構),該網路是針對該謎題的具體情況(例如,示例數量、觀察到的顏色)設計的。該網路採用了隨機正態輸入 z∼N (μ,Σ),並在所有網格(包括答案網格(3 個輸入輸出示例,總共 6 個網格))輸出每畫素顏色的 logit 預測。重要的是,f_θ 等價於與常見的增強手段 —— 例如重新排序輸入輸出對(包括答案對)、顏色排列和空間旋轉 / 反射。
  3. 初始化網路權重 θ 併為 z 分佈設定引數 μ 和 Σ。
  4. 聯合最佳化 θ、μ 和 Σ,以最小化已知網格(其中 5 個)的交叉熵總和,同時忽略答案網格。使用一個 KL 散度懲罰使 N (μ,Σ) 接近 N (0,1),就像在 VAE 中一樣。
  5. 由於 z 中的隨機性,生成的答案網格是隨機的,因此需要在整個訓練過程中儲存答案網格,並選擇最常出現的網格作為最終預測。
圖片
為什麼這種方法是在執行壓縮?這裡看起來並不那麼顯而易見。不過該團隊在文章中透過壓縮 ARC-AGI 推導了它,其中涉及資訊理論、演算法資訊理論、編碼理論和機器學習領域的知識,感興趣的讀者可訪問原文了解。

現在,先試試解決上述謎題。下圖展示了 CompressARC 的解題過程:
圖片
訓練完成後,透過解構學習到的 z 分佈(詳見原文),可以發現它編碼了顏色方向對應表和行/列分隔符位置!

架構

為了將隱含的 z 解碼為 ARC-AGI 謎題,該團隊設計了自己的神經網路架構。該架構最重要的特徵是它的等變特性 —— 這是一些對稱規則,規定了每當輸入 z 發生變換時,輸出 ARC-AGI 謎題也必須以相同的方式變換。例子包括:

  • 重新排序輸入/輸出對
  • 改變顏色
  • 翻轉、旋轉和網格反射

等變的方式實在太多了,靠人力窮舉實難辦到,所以該團隊決定打造一個完全對稱的基礎架構,並透過新增不對稱層來逐一打破不必要的對稱性,使其具有特定的非等變能力。
圖片
什麼意思呢?假設 z 和 ARC-AGI 謎題都採用形狀為 [n_examples, n_colors, height, width, 2 for input/output] 的張量形式(這實際上不是資料的格式,但它最能表達這個思路。)然後,網路開始與示例中的索引(顏色、高度和寬度維度)的排列等變。另外,在權重共享方面必須格外小心,以強制網路也與交換寬度和高度維度等變。然後,可以新增一個涉及寬度和高度維度的滾動層,讓網路可區分短距離空間互動,但不區分長距離空間互動。

穿過各層的實際資料(z、隱藏啟用和謎題)採用了所謂的「多張量(multitensor)」格式,其中包含各種形狀的張量。所有等變都可被描述成它們對這個多張量的改變。

多張量
圖片
目前來說,大多數機器學習框架操作的都是具有恆定秩的單一型別的張量。比如 LLM 操作的是秩為 3 的張量,其形狀為 [n_batch, n_tokens, n_channels],而 CNN 操作的則是秩為 4 的張量,其形狀為 [n_batch, n_channels, height, width]。

而新的多張量則是由多個不同秩構成的張量組成的集合,其維度是一個形狀為 [n_examples, n_colors, n_directions, height, width, n_channels] 的秩為 6 的張量的子集。其中 channel 維度總是會被保留,因此每個多張量最多有 32 個張量。

為了判定張量形狀是否「合法」該團隊還設定了一些規則(詳見原文「其它架構細節」部分)。這樣一來,多張量中張量的數量就減少到了 18 個。
圖片
那麼,多張量是如何儲存資料的呢?ARC-AGI 謎題可以表示成 [examples, colors, height, width, channel] 張量,其中 channel 維度可用於選擇是輸入還是輸出網格、width/height 維度指定畫素位置、color 維度是一個 one hot 向量(指示了該畫素的顏色)。[examples,width,channel] 和 [examples,height,channel] 張量可以用於儲存表示每個輸入/輸出網格的每個示例的網格形狀的掩碼。所有這些張量都被包含在單個多張量中,該多張量由該網路計算,就在最終的線性頭層之前。

當操作多張量時,該團隊預設假設所有非 channel 維度都被視為 batch 維度。除非另有說明,否則將在各個維度索引上執行同樣的操作。這能確保所有對稱性完好,直到使用旨在破壞特定對稱性的某個層。

關於 channel 維度的最後一點說明:通常在談論張量的形狀時,我們甚至不會提及 channel 維度,因為它已被預設包含在內。

完整的架構由以下層組成,對它們的詳細描述見原文附錄:

  • 一開始是 z 分佈的引數
  • 解碼層
  • 4 組:多張量通訊層(向上)、Softmax 層、方向 Cummax 層、方向移位層、方向通訊層、非線性層、多張量通訊層(向下)、歸一化層
  • 線性頭

結果

那麼,CompressARC 的實驗表現如何呢?

首先來看訓練集正確率(Pass@2):34.75%。
圖片
圖片
驗證集正確率則為 20%。
圖片
圖片
CompressARC 不能解決哪些問題?

該團隊也詳細分析了 CompressARC 能夠和無法解決的問題。

例如,訓練集中的謎題 28e73c20 需要從邊緣向中間擴充套件圖案:
圖片
考慮到其網路中的層,CompressARC 通常能夠擴充套件短距離的圖案,但不能擴充套件長距離的圖案。因此,它盡力正確地將圖案延伸一小段距離,之後就開始猜測中間是什麼:
圖片
CompressARC 能夠執行的功能包括:

  • 為各個程式分配單獨的顏色
  • 填充
  • 裁剪
  • 用線連線點,包括 45 度對角線
  • 相同顏色檢測
  • 識別畫素鄰接情況
  • 為各個示例分配單獨的顏色
  • 識別形狀的各個部分
  • 短距離平移

CompressARC 無法執行的功能包括:

  • 將兩種顏色相互分配給對方
  • 多次重複一系列操作
  • 計數 / 數字
  • 平移、旋轉、反射、縮放、影像複製
  • 檢測拓撲屬性,例如連線性
  • 規劃、模擬智慧體的行為
  • 圖案的長距離擴充套件

案例展示:為方框上色

這裡透過一個案例來展示 CompressARC 的執行情況,更多案例請見附錄。

問題是這樣的:
圖片
在訓練過程中,重建誤差下降得非常快。它的平均水平保持在較低水平,但隔一段時間就會急劇上升,導致來自 z 的 KL 在這些時刻上升。
圖片
那麼,CompressARC 如何學會了解答這個問題呢?為了找到答案,我們先看看 z 中儲存的表示。

由於 z 是一個多張量,它包含的每個張量都會對 z 的總 KL 產生貢獻。透過檢視每個張量的貢獻,可以確定 z 中的哪些張量編碼了用於表示謎題的資訊。下圖展示了儲存在 z 的每個張量中的資訊量,即解碼層使用的 KL 貢獻。
圖片
除了四個張量外,所有張量在訓練期間都降至零資訊內容。在該實驗的一些重複實驗中,該團隊發現這四個必要張量中的一個降至了零資訊內容,並且 CompressARC 通常不會在那之後給出正確答案。

這裡展示了一次幸運的執行,其中 (color,direction,channel) 張量幾乎要沒了但在 200 步時被拉起來了,這時模型中的樣本開始在正確的方框中顯示正確的顏色。

為了瞭解 z 中儲存了哪些資訊,可以檢視與 z 的各個張量相對應的解碼層的平均輸出。每個張量包含一個維度為 n_channels 的向量,用於該張量的各種索引。對這些向量進行主成分分析(PCA)可以揭示一些啟用分量,能讓我們知道該張量編碼了多少資訊。
圖片
該團隊還在原文中分享了更多細節,並給出了進一步的提升空間,感興趣的讀者請訪問原文。

對於這項「壓縮即智慧」的實驗研究成果,你有什麼看法呢?

相關文章