機器學習中的歸納偏置
帶著偏見看世界,否則你根本沒有看待世界的方式。
本文主要參考整理自知乎問題:如何理解Inductive bias?
No-Free-Lunch(NLF)定理指出學習是不可能的,除非有先驗知識。通常情況下,我們會猜測某個問題的解屬于所有可能的目標函數的一個較小的類別中,比如對于下圖中的一些點,我們很自然地會假設目標函數是一個線性函數,這種基于先驗知識對目標的判斷就是Inductive Bias歸納偏置。也就是說,歸納偏置所做的事情,就是將無限可能的目標函數約束在一個有限的假設類別中,這樣,模型的學習才成為可能。
如果給出更加寬松的模型假設類別,也就是說使用更弱的歸納偏置,那我們可能得到的模型的范圍就更大,就更有可能得到想要的模型。而損失由近似損失和估計損失組成,這樣做雖然減少了近似損失,但會增大估計損失,模型將更難學習,也更容易過擬合。
歸納偏置這個直譯名可能不能很好地幫助理解,不妨拆解開來看:歸納(Induction) 是自然科學中常用的兩大方法之一(歸納與演繹, induction and deduction),指的是從一些例子中尋找共性、泛化,形成一個比較通用的規則的過程;偏置(Bias) 是指我們對模型的偏好,從所有可能的模型中,選出我們假設目標函數會屬于的那一個小類。
因此,歸納偏置可以理解為,從現實生活中觀察到的現象中歸納出一定的規則(heuristics),然后對模型做一定的約束,從而可以起到“模型選擇”的作用,即從假設空間中選擇出更符合現實規則的模型。其實,貝葉斯學習中的“先驗(Prior)”這個叫法,可能比“歸納偏置”更直觀一些。
歸納偏置在機器學習中幾乎無處不可見。老生常談的“奧卡姆剃刀”原理,即希望學習到的模型復雜度更低,就是一種歸納偏置。另外,還可以看見一些更強的一些假設:KNN中假設特征空間中相鄰的樣本傾向于屬于同一類,SVM中假設好的分類器應該最大化類別邊界距離,等等。
在深度學習方面也是一樣。以神經網絡為例,各式各樣的網絡結構/組件/機制往往就來源于歸納偏置。在卷積神經網絡中,我們假設特征具有局部性(Locality)的特性,即當我們把相鄰的一些特征放在一起,會更容易得到“解”;在循環神經網絡中,我們假設每一時刻的計算依賴于歷史計算結果;還有注意力機制,也是基于從人的直覺、生活經驗歸納得到的規則。
-
CNN的inductive bias是局部性(locality)和空間不變性(spatial invariance),即空間相近的像素的聯系較為密切而遠的則相對疏遠。空間不變性體現在卷積核權重共享,即一種模式在圖像的任意位置都會被同樣地檢測到。比如一只貓不管在圖像的中間還是左下角,都會被CNN判斷出圖像中有一只貓。
-
RNN的inductive bias是序列性(sequentiality)和時間不變性(time invariance),即序列順序上的timesteps有聯系,和時間變換的不變性(rnn權重共享)。
Ref
https://www.zhihu.com/question/264264203
https://blog.csdn.net/jayloncheng/article/details/80300724