前 言
如今機器學習和深度學習如此火熱,相信很多像我一樣的普通程序猿或者還在大學校園中的同學,一定也想參與其中。不管是出于好奇,還是自身充電,跟上潮流,我覺得都值得試一試。對于自己,經歷了一段時間的系統學習(參考《機器學習/深度學習入門資料匯總》),現在計劃重新閱讀《機器學習》[周志華]和《深度學習》[Goodfellow et al]這兩本書,并在閱讀的過程中進行記錄和總結。這兩本是機器學習和深度學習的入門經典。筆記中除了會對書中核心及重點內容進行記錄,同時,也會增加自己的理解,包括過程中的疑問,并盡量的和實際的工程應用和現實場景進行結合,使得知識不只是停留在理論層面,而是能夠更好的指導實踐。記錄筆記,一方面,是對自己先前學習過程的總結和補充。 另一方面,相信這個系列學習過程的記錄,也能為像我一樣入門機器學習和深度學習同學作為學習參考。
章節目錄
貝葉斯決策論
極大似然估計
樸素貝葉斯分類器
半樸素貝葉斯分類器
貝葉斯網
EM算法
1 貝葉斯決策
貝葉斯決策論(Bayesian decision theory)是概率框架下的基本方法。
假設有N種可能的類別標記,即y={c1,c2,...,cN},λij是一個將真實標記為cj的樣本誤分類為ci產生的期望損失(expected loss),即在樣本x上的“條件風險”(conditional rsik),
我們的任務是尋找一個判斷準則,以最小化總體風險。
欲使用貝葉斯判定準則來最小化決策風險,首先要獲得后驗概率P(c|x)。然而,在現實任務中這通常難以直接獲得。從這個角度來看,機器學習所要實現的是基于有限的訓練樣本盡可能準確的估計出后驗證概率P(c|x)。大體來說主要有兩種策略:
給定x,可通過直接建模P(c|x)來預測c,這樣得到的是“判別式模型”(discriminative models)
-
先對聯合概率分布P(x,c)建模,然后再由此獲得P(c|x),這樣得到的是“生成式模型”(generative models)。 顯然,前面介紹的決策樹、BP神經網絡、支持向量機等,都可歸入判別式模型的范疇。對于生成式模型來說,必然考慮,
image基于貝葉斯定理可寫成,
image對給定樣本x,證據因子P(x)與類標記無關。根據大數定理,先驗概率P(c)可通過各類樣本出現的頻率來進行估計。因此,估計P(x|c)的問題就主要轉換為如何基于訓練樣本D來估計似然P(x|c)。
2 極大似然估計
估計類條件概率的一種常見策略是先假定其具有某種確定的概率分布形式,再基于訓練樣本對概率分布的參數進行估計。 概率模型的訓練過程就是參數估計(parameter estimation)過程。對于參數估計,統計學界的兩個學派分別提供了不同的解決方案:
頻率主義學派(Frequentist)認為參數雖然未知,但確實客觀存在的固定值,因此,可通過優化似然函數等準則來確定參數值。
貝葉斯學派(Bayesian)則認為參數是未觀察到的隨機變量,其本身也有分布,因此,可假設參數服從一個先驗分布,然后基于觀測到的數據來計算參數的后驗分布。 書中的介紹來自頻率主義學派的極大似然估計(Maximum Likelihood Estimation,簡稱MLE),這是根據數據采樣來估計概率分布參數的經典方法。
3 樸素貝葉斯分類器
基于貝葉斯公式來估計后驗概率P(c|x)的主要困難在于,類條件概率P(x|c)是所有屬性上的聯合概率,難以從有限的訓練樣本直接估計而得。為了避開這個障礙,樸素貝葉斯分類器(naive Bayes classifier)采用了“屬性條件獨立性假設”(attribute conditional independence assumption)。即對已知類別,假設所有屬性相互獨立。換言之,假設每個屬性獨立地對分類結果發生影響。
基于屬性條件獨立性假設,條件概率P(c|x)可重寫為,
其中d為屬性數目,xi為x在第i個屬性上的取值。
由于對所有類別來說P(x)相同,因此貝葉斯判定準則可寫為,
這就是樸素貝葉斯分類器的表達式。4
半樸素貝葉斯分類器
為了降低貝葉斯公式中估計后驗概率P(c|x)的困難,樸素貝葉斯分類器采用了屬性條件獨立性假設,但在現實任務中這個假設往往很難成立。于是,人們嘗試對屬性條件獨立性假設進行一定程度的放松,因此產生了一類稱為“半樸素貝葉斯分類器”(semi-naive Bayes classifiers)的學習方法。
5 貝葉斯網
貝葉斯網(Bayesian network)亦稱“信念網”(belief network),它借助有向無環圖(Directed Acyclic Graph,簡稱DAG)來刻畫屬性之間的依賴關系,并使用條件概率表(Conditional Probability Table,簡稱CPT)來描述屬性的聯合概率分布。6
EM算法
在前面的討論中,我們一直假設訓練樣本所有屬性變量的值都已被觀測到,即訓練樣本是“完整”的。但現實應用中往往遇到“不完整”的訓練樣本。在存在“未觀測”變量的情況下,是否仍能對模型參數進行估計呢?
EM(Expectation-Maximization)算法就是常用的估計參數隱變量的利器。