生成模型學習筆記:從高斯判別分析到樸素貝葉斯

2021-02-08 機器之心


本文是哥倫比亞大學研究生張威在生成模型上的學習筆記,由畢業於紐西蘭奧克蘭理工大學的燕子石翻譯。機器之心之前曾介紹過張威所寫的吳恩達《機器學習》課程的學習筆記。



1 判別模型


判別模型是一種對觀測數據進行直接分類的模型,常見的模型有邏輯回歸和感知機學習算法等。此模型僅對數據進行分類,並不能具象化或者量化數據本身的分布狀態,因此也無法根據分類生成可觀測的圖像。


定義上,判別模型通過構建條件概率分布 p(y|x;θ) 預測 y,即在特徵 x 出現的情況下標記 y 出現的概率。此處 p 可以是邏輯回歸模型。


2 生成模型


與判別模型不同,生成模型首先了解數據本身分布情況,並進一步根據輸入 x,給出預測分類 y 的概率。該模型有著研究數據分布形態的概念,可以根據歷史數據生成新的可觀測圖像。


貝葉斯分類就是一個典型的例子。在這個例子中,我們有一個先驗分類,根據這個先驗分類,我們可以使用貝葉斯原理計算每個分類的概率,然後取概率最高的概率。同時,我們還可以根據特定的先驗生成特徵。這就是一個生成過程。


3 高斯判別分析


高斯判別分析(GDA)是一個生成模型,其中 p(x|y) 是多元高斯正態分布。


3.1 多元高斯正態分布


在多元正態分布中,一個隨機變量是一個在維度為 n 的 Rn 空間中的矢量值。因此,多元高斯的均值向量 μ∈Rn,協方差矩陣Σ∈Rn x n,其中$ \ Sigma 是對稱的半正定矩陣。其概率密度函數為:

 



如上所述,μ是期望值。


向量值隨機變量 Z 的協方差為:

 


下圖顯示了均值為零但不同協方差的幾個密度函數。

 


以下為上圖的協方差(從左到右):

 


4 高斯判別分析和邏輯回歸


4.1 高斯判別分析


我們再來談談二元分類的問題,我們可以用多元高斯模型對 p(x|y) 進行建模。總的來講,我們有:

 


其中φ,μ0,μ1,Σ是我們想要找出的參數。請注意,雖然我們對不同的類有不同的均值,但我們在不同的類之間有著共享的協方差。


為什麼它是一個生成模型?簡而言之,我們有一個類的先驗概率,這個類是伯努利分布。生成過程是(1)從伯努利分布中抽樣。(2)基於類標籤,我們從相應的分布中抽取 x。


所以,該數據的對數似然函數值是:

 


在上面的等式中,我們插入各個分布而不指明任何類,我們僅將它們抽象為 k。所以我們有:

 


現在,我們需要對每個參數進行取導,然後將它們設為零找到 argmax(函數值最大時對應的輸入值 x)。一些可能對推導有用的公式列舉如下:


(如果 A 是對稱的並且與 x 相互獨立)

 


證明: 矩陣 A 是對稱矩陣,所以 A= AT 並假設空間維度為 n。


 

雅可比公式:


 

證明:

 


證明:


這個證明有些複雜。你應該事先了解克羅內克函數和 Frobenius 內部乘積。對於矩陣 X,我們可以寫成:

 


你可以將 H 視為 Frobenius 內積的標識元素。在開始證明之前,讓我們準備好去找逆矩陣的導數。也就是說,∂X-1/∂X。

 


所以我們可以這麼解:

 


接著,讓我們回到正題:

 


其中 F 表示 Frobenius 內積。


接著,帶回到原始公式:

 


現在,我們已經有足夠的準備去找到每個參數的梯度了。


對ϕ取導並設為 0:

 


對 μk 取導並設為 0:

 


對 Σ 取導並設為 0:

 


結果如圖所示:

 


請注意,由於有著共享協方差,因此上圖兩個輪廓的形狀是相同的,但均值則不同。在邊界線上(自左上到右下的直線),每個類的概率為 50%。


4.2 高斯判別分析(GDA)和邏輯回歸


高斯判別分析是如何與邏輯回歸相關聯的呢?我們可以發現如果上述 p(x|y) 是具有共享協方差的多元高斯,我們就可以計算 p(x|y) 然後發現它是遵循邏輯函數的。要證明這一點,我們可以:

 


由於高斯屬於指數族,我們最終可以將分母中的比率轉換為 exp(θTx),其中 θ 是φ,μ0,μ1,Σ的函數。


同樣的,如果 p(x|y) 是具有不同 λ 的泊松分布,則 p(x|y) 也遵循邏輯函數。這意味著 GDA 模型本身有一個強假設,即每個類的數據都可以用具有共享協方差的高斯模型建模。但是,如果這個假設是正確的話,GDA 將可以更好並且更快地訓練模型。

另一方面,如果不能做出假設,邏輯回歸就不那麼敏感了。因此,你可以直接使用邏輯回歸,而無需接觸高斯假設或 Possion 假設。


5 樸素貝葉斯


在高斯判別分析中,隨機變量應使用具有連續值特徵的數據。而樸素貝葉斯則用於學習離散值隨機變量,如文本分類。在文本分類中,模型基於文本中的單詞將文本標記為二進位類,單詞被向量化並用於模型訓練。一個單詞向量就像一本字典一樣,其長度是字典中單詞儲存的數量,其二進度值則代表著是否為某個詞。一個單詞在單詞向量中由 1 表示「是」,而單詞向量中的其他位置則是 0。


然而,這可能並不起作用。比方說,如果我們有 50,000 個單詞並嘗試將其建模為多項式,則參數的維數為 250,000-1,250,000-1,這太大了。因此,為了解決這個問題,我們做出了


樸素貝葉斯假設:


基於給定分類下,每個詞彼此間條件獨立。


於是,我們有: 



我們對第一步應用概率論中的鏈式法則,對第二步應用樸素貝葉斯假設。


找到對數似然函數值的最大值:



其中 ϕj|y=1 = P (xj=1|y=1),ϕ j|y=1 = P(xj=1|y=1), ϕj|y=0 = P(xj=1|y=0) 並且 ϕy= p(y=1)。這些是我們需要訓練的參數。


我們可以對其求導:

 


為了預測新樣本,我們可以使用貝葉斯法則來計算 P(y = 1 | x)並比較哪個更高。

 



延伸: 在這種情況下,因為 y 是二進位值(0,1),我們將 P(xi | y)建模為伯努利分布。也就是說,它可以是「有那個詞」或「沒有那個詞」。伯努利將類標籤作為輸入並對其概率進行建模,前提是它必須是二進位的。如果是處理非二進位值 Xi,我們可以將其建模為多項式分布,多項式分布可以對多個類進行參數化。


總結: 樸素貝葉斯適用於離散空間,高斯判別分析適用於連續空間。我們任何時候都能將其離散化。


6 拉普拉斯平滑處理


上面的示例通常是好的,不過當新郵件中出現過去訓練樣本中不存在的單詞時,該模型將會預測失敗。在這種情況下,它會因為模型從未看到過這個詞而導致兩個類的φ變為零,以至於無法進行預測。


這時我們則需要另一個解決方案,其名為拉普拉斯平滑,它將每個參數設置為:

 


其中 k 是類的數量。在實際操作中,拉普拉斯平滑並沒有太大的區別,因為我們的模型中通常包含了所有的單詞,但有一個備用計劃總是極好的!



本文為機器之心專欄,轉載請聯繫本公眾號獲得授權

✄---

加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com

投稿或尋求報導:content@jiqizhixin.com

廣告 & 商務合作:bd@jiqizhixin.com

相關焦點

  • 機器學習中的判別式模型和生成式模型
    山羊綿羊的例子判別式模型:要確定一個羊是山羊還是綿羊,用判別式模型的方法是從歷史數據中學習到模型,然後通過提取這隻羊的特徵來預測出這隻羊是山羊的概率,是綿羊的概率。則學習到的條件概率分布(判別式模型)如下:而學習到的聯合概率分布(生成式模型)如下:在實際分類問題中,判別式模型可以直接用來判斷特徵的類別情況;而生成式模型需要加上貝葉斯公式,然後應用到分類中。但是,生成式模型的概率分布可以有其他應用,就是說生成式模型更一般更普適。
  • 樸素貝葉斯詳解及中文輿情分析(附代碼實踐)
    GaussianNB(高斯樸素貝葉斯)MultinomialNB(多項式樸素貝葉斯)BernoulliNB(伯努利樸素貝葉斯)1.高斯樸素貝葉斯調用方法為:sklearn.naive_bayes.GaussianNB(priors=None)。
  • 樸素貝葉斯分類器詳解及中文文本輿情分析(附代碼實踐)
    GaussianNB(高斯樸素貝葉斯)MultinomialNB(多項式樸素貝葉斯)BernoulliNB(伯努利樸素貝葉斯)1.高斯樸素貝葉斯調用方法為:sklearn.naive_bayes.GaussianNB(priors=None)。
  • scikit-learn—樸素貝葉斯
    和平滑因子(smoothing priors)α≥0 考慮了學習樣本中不存在的特徵,並防止進一步計算中出現零概率。設置α=1稱為Laplace(拉普拉斯)平滑,而α<1稱為Lidstone平滑。3. 補充(Complement)樸素貝葉斯ComplementNB實現了補充樸素Bayes(CNB)算法。
  • 模式識別與機器學習(教學大綱)|向量|貝葉斯|算法|神經網絡_網易訂閱
    首先介紹貝葉斯學習基礎、邏輯回歸、概率圖模型基礎、隱馬爾可夫模型和條件隨機場,接著介紹支持向量機、人工神經網絡與深度學習、高斯過程、聚類、主成分分析與相關的譜方法,最後介紹確定性近似推理、隨機近似推理和強化學習。附錄包括傳統的模式識別與機器學習方法,即近鄰法和決策樹,還有向量微積分和隨機變量的變換等與本學科強相關的重要知識點。
  • 機器學習 | Sklearn中的樸素貝葉斯全解
    類含義naive_bayes.BernoulliNB伯努利分布下的樸素貝葉斯naive_bayes.GaussianNB高斯分布下的樸素貝葉斯naive_bayes.MultinomialNB多項式分布下的樸素貝葉斯naive_bayes.ComplementNB補集樸素貝葉斯雖然樸素貝葉斯使用了過於簡化的假設,這個分類器在文檔分類和垃圾郵件過濾等領域中都運行良好
  • 【機器學習】樸素貝葉斯算法(Naive Bayes,NB)
    樸素貝葉斯是貝葉斯分類算法中的一種,是對貝葉斯的一個改進。樸素貝葉斯與貝葉斯顯著的不同之處在於,樸素貝葉斯進行了獨立性假設,假設各個特徵之間相互獨立不相關。下面就看一下利用貝葉斯來分類的效果。1 高斯分布樸素貝葉斯(Gaussian Naive Bayes)數據分布滿足高斯分布(正態分布)
  • 機器學習算法集錦:從貝葉斯到深度學習及各自優缺點
    它比使用單個模型預測出來的結果要精確的多缺點:需要大量的維護工作決策樹算法(Decision Tree Algorithm)決策樹學習使用一個決策樹作為一個預測模型,它將對一個 item(表徵在分支上)觀察所得映射成關於該 item 的目標值的結論(表徵在葉子中)。
  • 樸素貝葉斯(Naive Bayes)和校正曲線(Calibration Curve)
    算法回顧圖片來源:medium.com貝葉斯分類算法屬於有監督機器學習(Supervised Learning)。貝葉斯分類器是一類分類算法的總稱,這類算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。在機器學習中,樸素貝葉斯分類器是基於貝葉斯理論(該理論中有很強的特徵間獨立性假設)的一個簡單「概率分類」的家族。因此,樸素貝葉斯分類算法屬於概率的機器學習(probabilistic machine learning),並且可應用於很多分類的任務中。
  • 科普| 貝葉斯概率模型一覽
    雷鋒網按:本文出自美圖數據研究院什麼是貝葉斯概率模型?機器學習狹義上是指代統計機器學習,如圖 1 所示,統計學習根據任務類型可以分為監督學習、半監督學習、無監督學習、增強學習等。圖 1在每類任務中,又可以將各類模型歸結為概率模型和非概率模型,以下以監督學習為例說明。概率模型(生成模型)通過函數 F 來描述 X 和 Y 的聯合概率或者條件概率分布,如 P(X|Y);非概率模型(判別模型)通過函數 F 來直接描述 X 到 Y 的映射,如 Y=f(X)。
  • 實戰|樸素貝葉斯分類對文檔進行分類
    樸素貝葉斯對文檔進行分類主要使用sklearn這個機器學習包完成對文檔的分類sklearn機器學習包sklearn提供了三個樸素貝葉斯分類算法
  • 貝葉斯機器學習路線圖
    如果您希望使用這些工具, 建議您學習本章的所有內容.中心問題什麼是貝葉斯機器學習? 一般來說, 貝葉斯方法旨在解決下面給出的某一個問題:參數估計(parameter estimation)假設您已經建好了一個統計模型, 並且希望用它來做預測. 抑或您認為模型中的參數很有意義, 所以希望擬合這些參數來學習到某些東西.
  • 基於深度學習的三大生成模型:VAE、GAN、GAN的變種模型
    如果想用生成式模型去解決判別問題,就需要利用貝葉斯公式把這個問題轉換成適合自己處理的樣子:對於一些簡單的問題,上面的公式還是比較容易解出的,但對於一些複雜的問題,找出從隱含變量到觀察變量之間的關係是一件很困難的事情,生成式模型的建模過程會非常困難,所以對於判別類問題,判別式模型一般更適合。
  • 樸素貝葉斯算法——以20Newsgroups數據集為例
    樸素貝葉斯分類器是由英國數學家託馬斯·貝葉斯提出的。該模型使用概率統計的知識對樣本數據集進行分類,通過計算條件概率進行最終決策。樸素貝葉斯分類器的基本思想是,若在給定條件下,預測的某個樣本屬於某個類別的條件概率最大,則將該樣本判定為該類別。樸素貝葉斯分類器在數據集較大的情況下表現出較高的準確率,同時算法本身也較為簡單。
  • 模式識別與機器學習(教學大綱)
    二、課程目標通過本課程的學習,使學生掌握模式識別與機器學習領域中的基本概念和典型算法,如貝葉斯機器學習、概率圖模型、支持向量機、深度學習、聚類、強化學習等,掌握從事模式識別與機器學習研究的基本理念,提高學生綜合運用所學知識解決問題的能力,特別是對數據進行處理和分析的能力。
  • VAE、GAN、Info-GAN:全解深度學習三大生成模型
    在深度學習之前已經有很多生成模型,但苦於生成模型難以描述難以建模,科研人員遇到了很多挑戰,而深度學習的出現幫助他們解決了不少問題。本章介紹基於深度學習思想的生成模型——VAE和GAN,以及GAN的變種模型。本節將為讀者介紹基於變分思想的深度學習的生成模型——Variational autoencoder,簡稱VAE。
  • 【冷知識】基本無害量化金融:判別式和生成式學習算法
    【前期精彩內容】 生成對抗網絡模型(GAN)是當下機器學習理論的研究主流,如果要學習該模型,我們會不斷看到判別式學習(discriminative)vs生成式學習(generative approach)的概念。
  • [PRML]回歸模型--貝葉斯線性回歸
    一個正則化項添加到對數似然函數意味著有效的模型複雜性可以由正則化係數的值控制,但基函數的數目和形式的選擇在決定模型的整體行為時仍然很重要。這就留下了為特定問題確定適當的模型複雜度的問題,這不能簡單地通過最大化似然函數來決定,因為這總是導致模型過於複雜和過擬合。
  • 基於貝葉斯定理的算法——樸素貝葉斯分類
    不過今天我們介紹的樸素貝葉斯分類器通過獨立假設簡化了概率的計算,節省了內存,可以很好地用於數據量大的情況。下面我們首先來了解這一算法的數理背景——貝葉斯定理。這一算法是由我們在概率論中學到的貝葉斯定理延伸出來的。我們知道貝葉斯公式為:其中,
  • [PRML]線性分類模型--概率判別模型
    間接來找到一個廣義線性模型的參數的方法,通過擬合類條件密度和類先驗分開,然後應用貝葉斯定理,代表生成(generative)模型的一個例子,因為我們可能需要這樣一個模型並通過從邊際分布4 迭代加權最小二乘在線性回歸模型的情況下,在高斯噪聲模型的假設下的最大似然解導致一個封閉形式的解。