判別模型與生成模型,概率模型與非概率模型、參數模型與非參數模型總結
來自專欄 Eureka機器學習讀書筆記
Eureka:專欄文章匯總
原文:監督學習的分類:判別模型與生成模型,概率模型與非概率模型、參數模型與非參數模型
文章結構如下:
1: 判別模型 VS 生成模型
- 1.1 判別模型
- 1.2 生成模型
2: 非概率模型 VS 概率模型
- 2.1 非概率模型
- 2.2 概率模型
3: 參數模型 VS 非參數模型
- 3.1 參數模型
- 3.2 非參數模型
問題設定:
假設輸入空間(特徵空間)為歐幾里得空間 ,維數是 ,我們主要考慮二分類問題,所以輸出空間設定為 。 代表輸入空間中的一個隨機向量, 代表輸出空間中的一個隨機變數。 是 與 的聯合分布,我們並不知道這個聯合分布的形式,但由這個分布產生了 個樣例,構成我們的訓練集 ,
1: 判別模型 VS 生成模型
1.1 判別模型
判別模型分為兩種:
(1)直接對輸入空間到輸出空間的映射進行建模,也就是學習函數 :
(2)對條件概率 進行建模,然後根據貝葉斯風險最小化的準則進行分類:
感知機、邏輯斯特回歸、支持向量機、神經網路、k近鄰都屬於判別學習模型。
1.2 生成模型
生成模型是間接地,先對 進行建模,再根據貝葉斯公式:
算出 ,最後根據 來做分類 (由此可知,判別模型實際上不需要對 進行建模)。
2: 非概率模型 VS 概率模型
2.1 非概率模型
非概率模型指的是直接學習輸入空間到輸出空間的映射 ,學習的過程中基本不涉及概率密度的估計,概率密度的積分等操作,問題的關鍵在於最優化問題的求解。通常,為了學習假設 ,我們會先根據一些先驗知識(prior knowledge) 來選擇一個特定的假設空間 (函數空間),例如一個由所有線性函數構成的空間,然後在這個空間中找出泛化誤差最小的假設出來,
其中 是我們選取的損失函數,選擇不同的損失函數,得到假設的泛化誤差就會不一樣。由於我們並不知道 ,所以即使我們選好了損失函數,也無法計算出假設的泛化誤差,更別提找到那個給出最小泛化誤差的假設。於是,我們轉而去找那個使得經驗誤差最小的假設,
這種學習的策略叫經驗誤差最小化(ERM),理論依據是大數定律:當訓練樣例無窮多的時候,假設的經驗誤差會依概率收斂到假設的泛化誤差。要想成功地學習一個問題,必須在學習的過程中注入先驗知識。前面,我們根據先驗知識來選擇假設空間,其實,在選定了假設空間後,先驗知識還可以繼續發揮作用,這一點體現在為我們的優化問題加上正則化項上,例如常用的 正則化, 正則化等。
正則化項一般是對模型的複雜度進行懲罰,例如我們的先驗知識告訴我們模型應當是稀疏的,這時我們會選擇 範數。當然,加正則化項的另一種解釋是為了防止對有限樣例的過擬合,但這種解釋本質上還是根據先驗知識認為模型本身不會太複雜。在經驗誤差的基礎上加上正則化項,同時最小化這兩者,這種學習的策略叫做結構風險最小化(SRM)。最後,學習演算法 根據訓練數據集 ,從假設空間中挑出一個假設 ,作為我們將來做預測的時候可以用。具體來說,學習演算法 其實是一個映射,對於每一個給定的數據集 ,對於選定的學習策略(ERM or SRM),都有確定的假設與 對應
感知機、支持向量機、神經網路、k近鄰都屬於非概率模型。線性支持向量機可以顯式地寫出損失函數——hinge損失。神經網路也可以顯式地寫出損失函數——平方損失。
時下流行的遷移學習,其中有一種遷移方式是基於樣本的遷移。這種方式最後要解決的問題就是求解一個加權的經驗誤差最小化問題,而權重就是目標域與源域的邊際密度之比。所以,線性支持向量機在遷移學習的環境下可以進行直接的推廣。
2.2 概率模型
概率模型指出了學習的目的是學出 或 ,但最後都是根據 來做判別歸類。對於 的估計,一般是根據乘法公式 將其拆解成 分別進行估計。無論是對 還是 的估計,都是會先假設分布的形式,例如邏輯斯特回歸就假設了 服從伯努利分布。分布形式固定以後,剩下的就是分布參數的估計問題。常用的估計有極大似然估計(MLE)和極大後驗概率估計(MAP)等。其中,極大後驗概率估計涉及到分布參數的先驗概率,這為我們注入先驗知識提供了途徑。邏輯斯特回歸、高斯判別分析、樸素貝葉斯都屬於概率模型。
在一定的條件下,非概率模型與概率模型有以下對應關係:
3: 參數模型 VS 非參數模型
3.1 參數模型
如果我們對所要學習的問題有足夠的認識,具備一定的先驗知識,此時我們一般會假定要學習的目標函數 或分布 的具體形式。然後,通過訓練數據集,基於ERM、SRM、MLE、MAP等學習策略,可以估計出 或 中含有的未知參數。一旦未知參數估計完畢,訓練數據一般來說,就失去其作用了,因為這些估計出來的參數就是訓練數據的濃縮。通過這種方式建立起來的模型就是參數模型。參數模型的一個很重要的特點是,如果對於模型的假設正確,那麼只需要很少的訓練數據就可以從假設空間中學出一個很好的模型。但是,如果模型的假設錯誤,那麼無論訓練的數據量有多大,甚至趨於無窮大,學出的模型都會與實際模型出現不可磨滅的偏差。感知機、邏輯斯特回歸、高斯判別分析、樸素貝葉斯、線性支持向量機都屬於參數模型。對於神經網路來說,當固定了隱層的數目以及每一層神經元的個數,它也屬於參數模型。但由於隱層數目與每一層神經元個數的不確定性,很多時候,神經網路都被歸類為半參數模型。
3.2 非參數模型
當我們對所要學習的問題知之甚少,此時我們一般不會對潛在的模型做過多的假設。在面對預測任務的時候,我們通常會用上所有的訓練數據。例如簡單的核密度估計(KDE)的表達式中,就帶有所有訓練數據的信息。通過這種方式建立的模型就是非參數模型。非參數模型的一個很重要的特點就是:let the data speak for itself. 正因為如此,非參數模型的存儲開銷、計算開銷都會比參數模型大的多。但是,由於不存在模型的錯誤假定問題,可以證明,當訓練數據量趨於無窮大的時候,非參數模型可以逼近任意複雜的真實模型(在評論區周天元指出沒有普世的非參數模型的任意逼近性質的證明,在這方面作者並沒有深入了解,因此讀者還請自己查詢相關資料,對周天元表示感謝)。這正是非參數模型誘人的一點。另外需要說明的一點是,非參數模型之所以叫做非參數,並不是因為模型中沒有參數。實際上,非參數模型中一般會含有一個或多個超參數,外加無窮多個普通的參數。 近鄰就是典型的非參數模型。
時下流行的深度學習,其本質是一個半參數模型的神經網路。通過加大網路的深度(加大隱層數目)以及寬度(增加每一層神經元的個數),使假設空間的複雜度得到極大的提高。複雜的假設空間有極強的表達能力,當訓練數據量很大的時候,不會陷入過擬合。所以,深度學習的成功,從理論上講,一方面來源於海量的訓練數據,另一方面來源於其複雜的網路結構。
推薦閱讀:
※反向傳播演算法的理解
※Recognant創始人:神經網路其實很簡單,所以,別假裝你是個天才
※無人駕駛汽車決策規則提取演算法和換道策略匯總
※從結構、原理到實現,Faster R-CNN全解析(原創)
※僅使用NumPy完成卷積神經網路CNN的搭建(附Python代碼)
TAG:神經網路 | 深度學習DeepLearning | 機器學習 |