(這篇文章詳述了我對 Sam Eisenstat 的《凝結:一種概念理論 》所寫的評論 中的幾個想法。它本身應該具有一定的可讀性,但並未完全解釋什麼是「凝結」;若要深入了解,請參閱我的評論或 Sam 的論文。本文源於與 Sam 的對話。)
正如我在 Condensation 評論中所提到的,壓縮(compression)與凝結(condensation)之間的區別符合其名稱所暗示的物理類比:壓縮是將所有資訊擠壓在一起,而凝結(雖然同樣縮減了體積,但)會將資訊分類成離散的小液滴。
因此,凝結具有一種我們可以稱之為「局部相關性 」(local relevance)的特性:典型的問題可以一目了然地得到回答,即只需檢索資訊的一小部分子集。這種表示方式有時被稱為「符號化」(symbolic):
| 符號化 | 非符號化 |
| :--- | :--- |
| 透過檢查前面是否有「-」符號,可以快速判斷一個數字是正數還是負數。 | 在社交場合「察言觀色」需要整合多種不同的線索。 |
| 透過閱讀標題和摘要可以確定論文的主題。 | 人工神經網絡內部向量表示中的語義內容通常是冗餘的,散佈在整個向量中。 |
| 透過查看政府核發身分證件上的出生日期可以確定一個人的年齡。 | 藝術作品的品質散佈在整個作品中。 |
| 句子的主詞可以在動詞之前找到。 | 確定照片的主體需要理解整張圖像。 |
| 可以從書架上快速檢索到目標圖書館藏書。 | 尋找金塊需要篩選大量的沙子。 |
這種「符號化」的概念似乎與可解釋性(interpretability)有關(而凝結理論試圖釐清這種關係)。
凝結中的「相關性」概念就是 Sam 所說的「貢獻關係」(contribution relation)。這就像一個卡片目錄,告訴你在特定情況下需要檢索哪些書。
與 Natural Latents 類似,凝結試圖透過假設僅有少數變數(即「給定變數」)的對應,來確立兩個智能體將擁有相對應的世界模型;他們試圖論證類似這樣的觀點:「如果智能體能對某些客觀的可觀測量達成共識^([1] )(例如科學儀器的讀數),那麼(在某些進一步的假設下)他們也將共享一系列抽象概念」。
這組初始問題就是貢獻關係衡量相關性的對象。在我的評論中,我將凝結比作一種為服務一組查詢(給定變數)而優化的「通用資料結構」。
變動成本符號
想像你正在壓縮一段時間的天氣記錄,分為三類:晴天、多雲或雨天。在電腦中,0 和 1 的表示成本大約相等,因此在壓縮表示中,兩者都傳達了 50% 概率的事件;11、10、01 和 00 都傳達了 25% 概率的事件;依此類推。如果雨天和多雲天的頻率都是 25%,那麼可以透過使用 0 代表太陽、10 代表雲、11 代表雨來實現最優壓縮。這種表示方式具有良好的「局部性」;它為每種可能的天氣類型提供了一個「符號」。
相比之下,如果三種天氣類型的頻率相等,我們就無法使用這種良好的局部表示。由於 1/3 與 2 的冪次方沒有良好的對應關係,最優壓縮必然會將單個日期的資訊抹散開來,將多天的資訊混合在單個 1 或 0 之中。用現代可解釋性的術語來說,壓縮表示往往是「多義性」(polysemantic)的。
直觀上,我們必須放棄局部性,因為我們正試圖將 1/3 的「圓樁」塞進 1/2^n 的「方孔」中。我們被困在位元(bits)可以輕易表示的數字「網格」中。
用筆和紙寫數字 1 特別容易;只需畫一條垂直線即可,這使其成為最簡單的符號之一。從壓縮的角度來看,這是有道理的:根據 班佛定律 (Benford's Law),1 是最常寫出的數字。
通常在壓縮中,字元的「長度」始終為 1;字串的長度僅僅是 字元的數量。然而,在現實生活中,符號的成本是會變動的。我們可以用筆和紙畫出許多形狀,有些比其他的更大或更複雜!因此,在設計筆紙編碼時,我們可以(也應該)考慮到這一點。^([2] )
想像為壓縮任務優化一個變動成本的字母表。為了避免透過將所有符號長度設為極小來「作弊」,我們必須以某種方式考慮到簡單符號的數量是有限的。(例如,人類願意區分的單線符號數量有限。)實現這一點的一種方法是為每個符號分配一個正概率,並要求整個字母表的概率總和為 1。符號的「長度」(以位元為單位)隨後可以測量為概率的負對數(以 2 為底)。你可以讓一個符號的長度趨近於零,但這會迫使所有其他符號變得更長。
這與前面提到的想法類似:在壓縮良好的二進位文件中,1 或 0 總是代表概率為 50% 的事件;變長字母表不一定總是能最優地壓縮事物,但當它做到時,符號的長度總是所代表事件概率的負對數(-log)。
允許編碼選擇任意的變長符號,讓我們能為天氣範例中的任意概率創建「局部」表示,只需為每個狀態賦予一個與其概率相稱的長度符號即可。如果三種天氣類型的概率相等,我們只需選擇一個擁有三個字元的字母表,每個字元的長度均為 −log2(1/3)。
當然,使用變動成本符號並不強迫 編碼必須是「符號化」的。如果你只針對壓縮進行優化,你同樣可能 得到與等成本符號所導致的那種混亂。凝結提供了一個優化目標,具有產生局部相關性表示的正向傾向。(我們可以透過尋找能更好體現局部相關性的優化目標來研究更好的凝結理論;特別是,如果這些優化目標能建立在更好的實際相關性敘事之上。)
凝結描繪了一幅記憶管理的圖景:與其像所羅門諾夫(Solomonoff)的理性圖景那樣將所有東西壓縮在一起,我們更有動力將事物分類為概念(隨機變數),以便我們可以同時思考少數幾件事。資訊被拆分成易於消化的碎片,以便我們只檢索相關的部分。^([3] )
儘管如此,我認為變動成本符號可以幫助我們更好地理解凝結:具體來說,它們解決了演算法版本凝結中的一個問題。
例如,考慮具有共同偏差的重複投擲硬幣的情況。將投擲硬幣作為給定變數,概率凝結會識別出一個單一的隱變數——硬幣的偏差。這個變數盡可能地降低了每次投幣的熵,同時僅獲取所有投幣共有的資訊(例如,不會編碼一個精確識別哪次投幣是正面的作弊表)。
演算法凝結在這種情況下效果不佳。由於任何結果都是可能的,單次投幣的壓縮量不能少於一個位元;即使正面的概率是 0.99999,你仍然必須寫下一個 1 或 0 來記錄該資訊。因此,演算法凝結看不出假設隱變數有什麼好處。
這個例子可以被挽救:對於演算法凝結,我們只需選擇代表多個投幣串聯在一起的給定變數。壓縮再次變得可能,因此假設代表硬幣偏差的隱變數得到了證實。然而,這似乎是理論中的一個遺憾瑕疵:類似壓縮的「將東西堆在一起」的動機滲透了進來。
因此,或許更好的方法是透過採用變動成本符號來挽救演算法凝結,使得即使是單符號訊息也可以有不同的「長度」。這使我們能夠用具體的書面訊息(如演算法凝結中那樣)替換變數,同時避免任何硬幣堆疊。
然而,我不確定如何最完善地推導出這個版本的凝結。
^(^ )這更像是「對其存在達成共識」,而非「對所有相關問題達成共識」。因此,它們不需要是「直接可觀測的」,儘管這顯然有助於智能體在兩種意義上達成共識。
^(^ )更準確的成本模型甚至可能考慮到符號在語境中 的難度,例如考慮手指從一個鍵移動到下一個鍵的移動距離的打字效率模型,或是考慮輔音叢等口語音素組合難度的語音模型。
^(^ )我認為這還沒有釐清類似語法的現象。單詞很容易解析。概念是組合性的。我認為這與透明度概念 (concept of transparency)有關。