目錄
兩者所屬范疇
生成模型定義
為什么叫生成模型?
判別模型定義
一個例子通俗解釋兩者
判別模型 VS 生成模型優缺點
參考資料
兩者所屬范疇 |
生成模型定義 |
生成方法由數據可以學習到一個聯合概率分布P(X,Y),然后通過一定方式,就可以轉為一個預測模型,即生成模型:
典型的生成模型有:朴素貝葉斯模型(NB)和隱馬爾科夫模型(HMM)。
下面解釋為什么NB模型是生成模型:
■ 由朴素貝葉斯法的定義可知:朴素貝葉斯法是通過訓練數據集學習聯合概率分布P(X,Y)的。
■ 根據乘法公式可知,為了求P(X,Y)可以利用訓練數據學習P(X|Y)和P(Y)。
■ 得到聯合概率分布P(X,Y)后,利用貝葉斯定理,便可得到一個預測模型,即
那HMM模型呢?
HMM模型是關於時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態序列X,再由各個狀態隨機生成一個可觀測的觀測序列Y的過程。X和Y就是由一個聯合概率分布P(X,Y)產生的(回憶HMM模型,,先由π產生X1,再根據X1由B產生Y1,然后根據X1由A產生X2,最后根據X2由B產生Y2,以此類推),該聯合概率分布就是HMM模型。
為什么叫生成模型? |
從朴素貝葉斯模型和HMM模型可以看出,這兩種模型都含有一種本領:可以表示出數據和標簽共同出現的概率。因為他們中都有聯合概率分布P(X,Y),那就擁有了生成一組新的數據的能力,這個也就是名稱中的生成式模型的來源。
當然,生成模型也可以做判別(預測),上一節已經闡述。順便再說一句,判別模型只能做判別,不能生成數據。
判別模型定義 |
判別模型比較簡單,就是由數據直接學習決策函數f(X)比如決策樹,KNN等,或者直接學習條件概率分布P(Y|X),比如邏輯回歸、感知機等。
典型的判別模型有:KNN、感知機、決策樹、邏輯回歸、最大熵模型、SVM、提升方法和CRF等。
一個例子通俗解釋兩者 |
假設在一個大學里,有男有女,並且不同性別的人都有自己的穿衣打扮的風格。
■ 當有一個【長頭發,穿短裙】的人過來的時候,生成模型和判別模型都可以對這個人的性別進行預測,並且大概率這兩個模型都會將這個人預測為【女性】。這就說明了生成模型和判別模型都可以做判別(預測)。
■ 假設每一個人都是一個數據,如果想按照大學原本的分布增加一些學生的時候,生成模型可以做到,因為他深諳該大學里男女比例以及他們穿衣打扮的信息;而判別模型做不到。這就說明了生成模型掌握着整體數據的分布。
判別模型 VS 生成模型優缺點 |
■ 生成模型可以還原出聯合概率分布,而判別模型不能。
■ 生成模型收斂速度更快。
■ 當存在隱變量時,可以使用生成模型,不能使用判別模型。
■ 生成模型在做預測的時候准確率往往較低,李航老師給出的解釋是
這里從另一個角度定性來分析可以這樣解釋(以朴素貝葉斯為例):
由
$$\[\sqrt {{a^2} + {b^2}} \]$$
$$\[a + b = 3\]$$
可以看到,相對於條件概率,在計算聯合概率的時候引入了輸入數據的概率分布P(X),而這並不是我們關心的(我們只關心給定X的情況下Y的分布),於是這個就相對削弱了模型的預測能力。
參考資料 |
《統計學習方法》李航
《深入淺出PyTorch:從模型到源碼》張校捷