? ? ? ?整理一下機器學習中監督學習相關內容,爭取梳理出一條易于理解和掌握的脈絡。下面會有很多相關參考博客和文章,先放到一起,最后再做個整體的梳理。持續更新中。。。。。。
監督學習作為機器學習的核心分支,其理論體系與實踐應用都非常豐富。從幾個通用視角出發,我們可以對經典監督學習模型進行分類和概述:
1. 判別模型 vs 生成模型
- 判別模型**直接關注從輸入到輸出的映射關系,即學習條件概率 \(P(y|x)\),旨在最大化預測準確性,不涉及數據生成過程。例如:
? - 邏輯斯特回歸:用于二元分類問題,直接學習將輸入映射到類別的邊界。
? - 支持向量機:通過最大化間隔來找到分類超平面,同樣關注直接分類邊界。
? - 感知機:是最簡單的線性分類器,也是支持向量機的前身,直接劃分數據空間。
? - 神經網絡:可以處理復雜的非線性分類問題,通過多層結構學習輸入到輸出的復雜映射。
? - k近鄰:基于實例的學習方法,通過計算測試樣本與訓練集中樣本的距離來預測類別,也是一種判別模型。
- 生成模型則試圖學習數據的聯合分布 \(P(x,y)\),之后利用貝葉斯規則得到條件概率 \(P(y|x)\)。例如:
? - 樸素貝葉斯:假設特征間相互獨立,直接從統計角度計算給定輸入特征條件下類別的概率。
? - 高斯判別分析(GDA):是一種生成模型,假設數據屬于不同類別時遵循不同的正態分布,通過這些分布來預測類別。
?2. 非概率模型 vs 概率模型
- 非概率模型不提供預測的置信度或概率分布,僅給出確定性的預測結果。例如:
? - 感知機、k近鄰在標準實現中通常是非概率的,只給出最可能的類別標簽。
??
- **概率模型**能夠提供預測的概率或置信度,如:
? - **邏輯斯特回歸**雖然主要用于分類,但通過調整可以給出預測類別的概率。
? - **樸素貝葉斯**直接基于概率推斷進行分類。
? - **高斯判別分析**也屬于概率框架,因為它基于概率密度函數來區分不同類別的數據。
### 3. 參數模型 vs 非參數模型
- **參數模型**假設數據符合特定的參數化分布,學習過程主要是估計這些參數。例如:
? - **邏輯斯特回歸**、**線性回歸**、**樸素貝葉斯**都是參數模型,它們的復雜度不隨數據量增加而顯著變化。
??
- **非參數模型**不對數據分布做嚴格假設,模型的復雜度可以隨數據量增加而增長。例如:
? - **支持向量機**和**神經網絡**在理論上可以視為非參數模型,因為它們的邊界或決策面可以隨著訓練數據的增加而變得更復雜。
? - **k近鄰**也是一種典型的非參數模型,因為它的預測基于訓練集中的實例,而不是固定的參數。
這些模型各有優勢和適用場景,選擇合適的模型需要考慮數據的特性、任務需求以及對模型可解釋性的要求。計算學習理論,特別是VC維、PAC學習和PAC-Bayes理論等,為這些模型的泛化能力提供了理論保障,幫助我們理解在什么條件下可以期望模型在未見數據上表現良好。
下面內容主要來自?監督學習分類,
鏈接:https://blog.csdn.net/qq_39521554/article/details/79134274
機器學習是一個有著多分支的學科。其中,監督學習是其中發展最為成熟的分支。這不僅是由于在監督學習框架下面有各種各樣的學習模型,如邏輯斯回歸、樸素貝葉斯、支持向量機等,更是因為這個框架有著堅實的理論支撐,機器學習中的計算學習理論就是主要為監督學習服務的:這套理論以概率的方式回答了哪些問題是可學習的,學習成功的概率有多大等問題,其中比較常見的理論有VC理論、PAC理論、PAC-Bayes理論等。為了盡可能理清監督學習的框架,本文嘗試從幾個比較通用的視角來看待這些經典的監督學習模型,并對它們進行分類。其中,幾個通用的視角具體是指:判別模型 VS 生成模型、 非概率模型 VS 概率模型、參數模型 VS 非參數模型,而本文涉及到的經典的監督學習模型包括感知機、邏輯斯特回歸、高斯判別分析、樸素貝葉斯、支持向量機、神經網絡、k近鄰。
問題設定:
假設輸入空間(特征空間)為歐幾里得空間X,維數是d,我們主要考慮二分類問題,所以輸出空間設定為Y(Y={-1,1})。x代表輸入空間中的一個隨機向量,y代表輸出空間中的一個隨機變量。P(x,y)是x與y的聯合分布,我們并不知道這個聯合分布的形式,但由這個分布產生了m個樣例,構成我們的訓練集D,
1 判別模型 VS 生成模型
1.1 判別模型
按照文獻[1]與[2]給出的解釋,判別模型分為兩種:(1)直接對輸入空間到輸出空間的映射進行建模,也就是學習函數 h,
(2)對條件概率P(y|x)進行建模,然后根據貝葉斯風險最小化的準則進行分類:
感知機、邏輯斯特回歸、支持向量機、神經網絡、k近鄰都屬于判別學習模型。
1.2 生成模型
生成模型是間接地,先對P(x,y)進行建模,再根據貝葉斯公式
算出P(y|x),最后根據(I)來做分類 (由(I)可知,實際上不需要對P(x)進行建模)。<<Statistical learning theory>> 的作者Vapnik有句名言: "one should solve the [classification] problem directly and never solve a more general problem as an intermediate step[such as modeling P(x|y)]." 按照他這樣說,我們只需對P(y|x)直接進行建模就行了,沒必要間接地先對P(x,y)進行建模。但是對P(x,y)進行建模從而達到判別的目的也有它自身的一些優勢,這一點文獻[1]中給出了解釋。高斯判別分析、樸素貝葉斯屬于生成學習模型。
2 非概率模型 VS 概率模型
2.1 非概率模型
非概率模型指的是直接學習輸入空間到輸出空間的映射h,學習的過程中基本不涉及概率密度的估計,概率密度的積分等操作,問題的關鍵在于最優化問題的求解。通常,為了學習假設h(x),我們會先根據一些先驗知識(prior knowledge) 來選擇一個特定的假設空間H(函數空間),例如一個由所有線性函數構成的空間,然后在這個空間中找出泛化誤差最小的假設出來,
其中l(h(x),y)是我們選取的損失函數,選擇不同的損失函數,得到假設的泛化誤差就會不一樣。由于我們并不知道P(x,y),所以即使我們選好了損失函數,也無法計算出假設的泛化誤差,更別提找到那個給出最小泛化誤差的假設。于是,我們轉而去找那個使得經驗誤差最小的假設,
這種學習的策略叫經驗誤差最小化(ERM),理論依據是大數定律:當訓練樣例無窮多的時候,假設的經驗誤差會依概率收斂到假設的泛化誤差。要想成功地學習一個問題,必須在學習的過程中注入先驗知識[3]。前面,我們根據先驗知識來選擇假設空間,其實,在選定了假設空間后,先驗知識還可以繼續發揮作用,這一點體現在為我們的優化問題(IV)加上正則化項上,例如常用的L1正則化,L2正則化等。
正則化項一般是對模型的復雜度進行懲罰,例如我們的先驗知識告訴我們模型應當是稀疏的,這時我們會選擇L1范數。當然,加正則化項的另一種解釋是為了防止對有限樣例的過擬合,但這種解釋本質上還是根據先驗知識認為模型本身不會太復雜。在經驗誤差的基礎上加上正則化項,同時最小化這兩者,這種學習的策略叫做結構風險最小化(SRM)。最后,學習算法A根據訓練數據集D,從假設空間中挑出一個假設g,作為我們將來做預測的時候可以用。具體來說,學習算法A其實是一個映射,對于每一個給定的數據集D,對于選定的學習策略(ERM or SRM),都有確定的假設與D對應
感知機、支持向量機、神經網絡、k近鄰都屬于非概率模型。線性支持向量機可以顯式地寫出損失函數——hinge損失。神經網絡也可以顯式地寫出損失函數——平方損失。
時下流行的遷移學習,其中有一種遷移方式是基于樣本的遷移。這種方式最后要解決的問題就是求解一個加權的經驗誤差最小化問題,而權重就是目標域與源域的邊際密度之比。所以,線性支持向量機在遷移學習的環境下可以進行直接的推廣。
2.2 概率模型
概率模型指出了學習的目的是學出P(x,y)或P(y|x),但最后都是根據(I)來做判別歸類。對于P(x,y)的估計,一般是根據乘法公式P(x,y) = P(x|y)P(y)將其拆解成P(x|y),P(y)分別進行估計。無論是對P(x|y),P(y)還是P(y|x)的估計,都是會先假設分布的形式,例如邏輯斯特回歸就假設了Y|X服從伯努利分布。分布形式固定以后,剩下的就是分布參數的估計問題。常用的估計有極大似然估計(MLE)和極大后驗概率估計(MAP)等。其中,極大后驗概率估計涉及到分布參數的先驗概率,這為我們注入先驗知識提供了途徑。邏輯斯特回歸、高斯判別分析、樸素貝葉斯都屬于概率模型。
在一定的條件下,非概率模型與概率模型有以下對應關系
3 參數模型 VS 非參數模型
3.1 參數模型
如果我們對所要學習的問題有足夠的認識,具備一定的先驗知識,此時我們一般會假定要學習的目標函數f(x)或分布P(y|x)的具體形式。然后,通過訓練數據集,基于ERM、SRM、MLE、MAP等學習策略,可以估計出f(x)或P(y|x)中含有的未知參數。一旦未知參數估計完畢,訓練數據一般來說,就失去其作用了,因為這些估計出來的參數就是訓練數據的濃縮。通過這種方式建立起來的模型就是參數模型。參數模型的一個很重要的特點是,如果對于模型的假設正確,那么只需要很少的訓練數據就可以從假設空間中學出一個很好的模型。但是,如果模型的假設錯誤,那么無論訓練的數據量有多大,甚至趨于無窮大,學出的模型都會與實際模型出現不可磨滅的偏差。感知機、邏輯斯特回歸、高斯判別分析、樸素貝葉斯、線性支持向量機都屬于參數模型。對于神經網絡來說,當固定了隱層的數目以及每一層神經元的個數,它也屬于參數模型。但由于隱層數目與每一層神經元個數的不確定性,很多時候,神經網絡都被歸類為半參數模型。
3.2 非參數模型
當我們對所要學習的問題知之甚少,此時我們一般不會對潛在的模型做過多的假設。在面對預測任務的時候,我們通常會用上所有的訓練數據。例如簡單的核密度估計(KDE)的表達式中,就帶有所有訓練數據的信息。通過這種方式建立的模型就是非參數模型。非參數模型的一個很重要的特點就是:let the data speak for itself. 正因為如此,非參數模型的存儲開銷、計算開銷都會比參數模型大的多。但是,由于不存在模型的錯誤假定問題,可以證明,當訓練數據量趨于無窮大的時候,非參數模型可以逼近任意復雜的真實模型。這正是非參數模型誘人的一點。另外需要說明的一點是,非參數模型之所以叫做非參數,并不是因為模型中沒有參數。實際上,非參數模型中一般會含有一個或多個超參數,外加無窮多個普通的參數。k近鄰就是典型的非參數模型。
時下流行的深度學習,其本質是一個半參數模型的神經網絡。通過加大網絡的深度(加大隱層數目)以及寬度(增加每一層神經元的個數),使假設空間的復雜度得到極大的提高。復雜的假設空間有極強的表達能力,當訓練數據量很大的時候,不會陷入過擬合。所以,深度學習的成功,從理論上講,一方面來源于海量的訓練數據,另一方面來源于其復雜的網絡結構。
參考文獻
[1] On Discriminative vs. Generative classifiers: A comparison of logistic regression and naive Bayes. nips2002
[2] 《統計學習方法》 李航
[3] Label-Free Supervision of Neural Networks with Physics and Domain Knowledge. AAAI2016
[4] 監督學習分類:https://blog.csdn.net/qq_39521554/article/details/79134274
————————————————
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ??
?