用歸納偏置來增強你的模型效能

THU資料派發表於2020-11-24

對稱無處不在,圍繞在我們生活左右。

從雪花美麗的規則形狀和羅馬花椰菜的自相似(分形)結構,到蜂巢的六角形圖案。大自然似乎在尋找對稱。事實上,我們存在的法則實在是太多了:物理學家談到時空中的平移對稱(“穿過”)。他們的意思是,像萬有引力這樣的力在數百萬年前和現在的作用方式是一樣的,在悉尼和紐約之間沒有差別。旋轉對稱是自然最喜歡的另一種形式,簡單地說就是當你從不同角度看一個物體時,它的屬性不會改變。對稱的例子不勝列舉,其中一些比其他的更容易理解(比如洛倫茲對稱,它說明在慣性系中光速是相同的,這可以被不太懂物理的人所理解)。儘管其中一些對稱性對人類來說是顯而易見的,但令人驚訝的是,大多數機器學習模型都對它們的存在視而不見。讓我以我自己的工作為例:

用歸納偏置來增強你的模型效能

大致來說,我的研究目標是利用機器學習僅從結構資訊來預測分子的性質。這意味著,我得到一列原子和它們的座標。對於一個水分子,它看起來是這樣的:
用歸納偏置來增強你的模型效能
原子的座標可以方便地歸納成一個矩陣,矩陣的行對應於原子,列分別對應於x、y和z的位置。我想預測需要多少能量需要把分子分解成它的組成原子(原子化能量)。我可以透過訓練神經網路F來做到這一點,它使用原始座標作為特徵並輸出能量:
用歸納偏置來增強你的模型效能
假設我成功地在一個大且不同的分子資料集上訓練了這個神經網路,我想找到以下水分子的原子化能量:

用歸納偏置來增強你的模型效能

你可能已經注意到了,它只是原始分子的一個旋轉版本。因此,它應該具有相同的原子化能。我們能保證神經網路會遵守這個旋轉對稱嗎?不幸的是,沒有。

用歸納偏置來增強你的模型效能

更糟糕的是,如果我們簡單地交換兩個氫原子。網路可能會再次給出一個完全不同的答案。相同原子的順序沒有物理意義,只是神經網路訓練出來的人為產物。理想情況下,我們希望神經網路的輸出尊重這種排列對稱(排列:“交換事物的順序”),但如何做到呢?

在化學和物理應用機器學習的早期,研究者很快意識到模型需要觀察這些對稱性才能足夠精確。因此,人們投入了大量的精力來研究如何在機器學習演算法體現出對稱性。現在,這通常是透過巧妙的特徵工程和神經網路設計相結合來實現的。關於這些方法的全面評述可以在這裡(https://aip.scitation.org/doi/full/10.1063/1.4966192)找到[1]。所有這些方法都有一個共同點,就是它們以某種形式向學習演算法引入了歸納偏置。

學習演算法的歸納偏置是一組假設,學習者用來預測未遇到[2]的給定輸入的輸出。

在旋轉對稱的情況下,這種歸納偏置可以表述為假設:“任何在旋轉下不變的資訊可以而且應該被忽略。” 不管你是否意識到這一點,如果你以前使用過任何機器學習模型,你就會遇到歸納偏置:
  • 線性迴歸是基於因變數與協變數之間存線上性關係的假設。

  • k近鄰分類器假設特徵空間中的鄰近轉換為輸出空間中的鄰近。

  • 卷積神經網路假設輸出在很大程度上不受輸入轉換的影響(不考慮邊界條件)。

雖然所有這些標準演算法都有一些內在的偏差,但我想透過一個例子來演示如何引入額外的假設可以大大提高模型的準確性。

例子:房地產價格模型

想象下面的場景:

您的客戶對買賣房地產感興趣,並要求您建立一個機器學習模型,準確預測建築物的公平市場價值。幸運的是,訓練資料很容易獲得,但有些有限(約1000個樣本)。更復雜的是,這棟建築的任何資訊都是以房屋單元為單位給出的,除了價格是以整棟建築為單位給出的。

為了簡化我們的分析,讓我們假設每個建築包含10個單元,我們有關於每個單元的以下資訊:
  • 單元型別:零售,辦公,生活空間

  • 單元面積:以平方英尺為單位

  • 房間數量

  • 窗戶與牆壁的比率

  • 單元在哪一層(以樓層總數的比率給出)

我們的資料以表格形式,有1000行(樣本數量)和51列(5個特徵 10個單元+總價)。讓我們把模型輸入(前50列)寫成設計矩陣X,因變數寫成向量y。

線性迴歸(LR)

普通 LR

對於任何迴歸任務來說,一個好的起點總是線性迴歸,它的目標是選擇權重w,以便模型預測的平均平方誤差最小化。

用歸納偏置來增強你的模型效能

用歸納偏置來增強你的模型效能

為了分析這個模型基於我們的資料表現得有多好,我們可以檢視與訓練集大小相關的泛化誤差(測試集上的誤差)。繪製我們的結果,我們得到了通常所說的學習曲線:
用歸納偏置來增強你的模型效能
注意,我們已經包含了一個基線模型,它僅僅預測了訓練集的平均價格。我們可以從這張圖中推斷出幾件事。我們看到,對於非常小的訓練集,基線模型比LR更準確,然而,當我們使用更大的資料集時(注意log-log座標!),我們可以在基線上進行改進。但是100萬美元的均方根誤差(RMSE)並不是很好的表現,它對我們虛構的客戶也沒有用處。我們希望能做得更好…

置換不變LR

讓我們想想對稱性的問題:在設計矩陣X中以何種順序羅列單元重要嗎?答案顯然是否定的。我們可以將第1-5列與第6-10列互換,但該建築仍然擁有相同的淨值。然而,我們的普通LR並不能準確地捕捉到這一點,因為不能保證權重1−5和6−10是相同的。目標很明確:我們需要我們的模型在單元排列下保持不變。

讓我們考慮一個稍微不同的版本,我們的設計矩陣,我們將稱之為用歸納偏置來增強你的模型效能。考慮每單元(每5列一組)作為一個單獨的資料點,矩陣原始X轉化後維數為10000a✖5由。線性迴歸則為

用歸納偏置來增強你的模型效能

z是每個單元的價格。不幸的是我們無法得知z(潛變數),但是我們可以假設z和y之間的關係。由於我們想保持線上性模型的範圍內,我們得到:
 

用歸納偏置來增強你的模型效能

簡而言之,就是一棟樓的價格是這棟樓內每一單元價格的總和。透過引入一個適當的矩陣L,我們可以用矩陣L表示所有建築物i的總和:

用歸納偏置來增強你的模型效能

用歸納偏置來增強你的模型效能

線性迴歸模型可以寫成:

用歸納偏置來增強你的模型效能

用歸納偏置來增強你的模型效能意味著我們總結一個建築所有單元的特徵,所以我們只使用建築總面積而不是每個單元的面積。所以對於線性迴歸來說,強加排列對稱真的是一個微不足道的任務。當我們轉到核心方法時,使用這種更抽象的表示法的優勢將變得清晰起來。

使用置換不變LR,我們得到以下學習曲線:

用歸納偏置來增強你的模型效能

雖然我們看到了小資料集的實質性改善,但模型似乎沒有從資料中學到很多東西,導致曲線平坦。這表明線性模型的表達能力不足以捕獲訓練資料中包含的所有細節。顯然,線性假設過於強烈,對於一個“健康”模型,我們期望學習曲線在對數-對數座標(表示預期的冪律行為)上是線性的[3]。

高斯過程迴歸(GPR)

普通GPR

讓我們考慮一個更復雜的模型。我們有幾個選擇:神經網路當然很受歡迎,但對於如此小的資料集來說顯然不可靠。有效的選擇是基於樹的方法和k-means方法。我個人最喜歡的是基於核函式的方法,特別是高斯過程迴歸(GPR)。

我們正在尋找一個函式用歸納偏置來增強你的模型效能對映輸入,或自變數x對因變數y(價格)。在高斯過程迴歸中,我們用貝葉斯方法先找到這個函式,即首先在所有可能的f上指定一個高斯先驗分佈,然後對觀測資料點(X,y)進行條件處理(即基於先驗和一定的假設(聯合高斯分佈)計算得到高斯過程後驗分佈的均值和協方差。)。這個先驗透過協方差矩陣為k的高斯過程定義:

用歸納偏置來增強你的模型效能

高斯過程是隨機變數的集合,任意有限個數的隨機變數都具有聯合高斯分佈[4]。對於x的任何值,輸出用歸納偏置來增強你的模型效能遵循正態分佈。進一步,兩個距離較遠的點x和x’點的輸出在在定義為用歸納偏置來增強你的模型效能的協方差條件下是聯合正態分佈的。在實踐中,這意味著我們可以透過選擇一個合適的協方差函式(也稱為核)用歸納偏置來增強你的模型效能來確定擬合函式f的形狀。

一種非常流行的核函式選擇是平方指數協方差(有時也稱為徑向基函式)。選擇這個核心,我們基本上設定f是光滑的,因為當點很近時(即用歸納偏置來增強你的模型效能很小),點之間將是高度相關的。讓我們回到我們的例子。一旦我們在訓練資料上設定高斯過程的條件,我們就可以在測試集上做出預測。

用歸納偏置來增強你的模型效能

用我們設計的矩陣x和目標值y,給出了模型的預測。這看起來非常類似於線性迴歸,除了用歸納偏置來增強你的模型效能已經取代了X。因為w的引數方程是線性的,它仍然是直接可解的:

用歸納偏置來增強你的模型效能

用歸納偏置來增強你的模型效能

注意,我們引入引數用歸納偏置來增強你的模型效能並乘以單位矩陣。該引數用於擬合資料中的噪聲,同時有助於避免矩陣求逆時的數值問題。
將我們的訓練資料代入這些方程,我們得到以下學習曲線: 

用歸納偏置來增強你的模型效能

嗯,這不是很有效。雖然我們給了模型比LR更多的表達能力,但它的測試誤差仍然與後者量級可比。我們的模型似乎對資料過擬合了。

置換不變GPR

我們把置換不變性加回去。和前面一樣,我們想解決輔助問題。
用歸納偏置來增強你的模型效能
其中用歸納偏置來增強你的模型效能,矩陣L與線性迴歸問題中相同。

在處理了一些項之後,我們得到了下面的方程:

用歸納偏置來增強你的模型效能

重新定義:

用歸納偏置來增強你的模型效能

修正GPR的原始形式:

用歸納偏置來增強你的模型效能

用歸納偏置來增強你的模型效能

特別好!透過使用對稱不變性,我們已經能夠將最佳測試誤差從大約70萬美元減少到3萬美元。此外,縮放是線性的(在對數-對數尺度上),這表明如果需要,我們可以透過收集更多的資料來進一步提高模型的準確性。

回到科學

我希望我已經能夠說服您,有時候在用機器學習模型擬合資料之前,值得停下來三思。透過簡單地識別資料中的對稱性,我們已經能夠將模型的準確性提高20倍以上。作為一個小小的獎勵,如果你理解了這篇文章的所有內容,你實際上離成為一個計算化學家又近了一步。

為什麼這麼說呢?如果你把“建築”換成“分子”,把“單元”換成“原子”,我們基本上建立了一個化學和材料科學研究人員常用的模型[5]。透過把分子表示成原子貢獻的組合,這個模型可以預測一個分子的性質,比如它的能量。就像在我們的例子中,這些原子的貢獻是未知的——我們只知道整個分子的能量——但是我們仍然可以用潛在變數z來描述這個問題,從而使它置換不變。

參考文獻:

[1] Behler, Jörg. “Perspective: Machine learning potentials for atomistic simulations.” The Journal of chemical physics 145.17 (2016): 170901.

[2] https://en.wikipedia.org/wiki/Inductive_bias

[3] C. Cortes, L. D. Jackel, S. A. Solla, V. Vapnik, and J. S. Denker, Learning Curves: Asymptotic Values and Rate of Convergence, Advances in Neural Information Processing Systems (Curran Associates, Inc., 1994),

pp. 327–334

[4] C. E. Rasmussen & C. K. I. Williams, Gaussian Processes for Machine Learning, the MIT Press, 2006, ISBN 026218253X. c 2006 Massachusetts Institute of Technology

[5] Bartók, Albert P., et al. “Gaussian approximation potentials: The accuracy of quantum mechanics, without the electrons.” Physical review letters 104.13 (2010): 136403.

原文標題:

Supercharge your model performance with inductive bias

原文連結: 

https://towardsdatascience.com/supercharge-your-model-performance-with-inductive-bias-48559dba5133

相關文章