機器學習 生成模型與判別模型詳解

2021-10-07 03:51:43 字數 3471 閱讀 4738

3.如何選擇哪種模型

生成模型(generative model, gm):先對聯合概率p(x

)p(x, ω)

p(x,ω)

建模,然後再求取後驗概率模型。

判別模型(discriminative model, dm):從資料集d中直接估計後驗概率模型:

p (ω

1∣x)

,p(ω

2∣x)

,...

,p(ω

n∣x)

p(ω_1 | x),p(ω_2 | x),...,p(ω_n | x)

p(ω1​∣

x),p

(ω2​

∣x),

...,

p(ωn

​∣x)

判別模型的經典演算法:邏輯回歸,svm,crf

生成模型的經典演算法:hmm,樸素貝葉斯

生成模型的特點:生成式模型關注結果是如何產生的。但是生成式模型需要非常充足的資料量以保證取樣到了資料本來的面目,所以速度相比會慢。

判別模型的特點:對資料量要求沒生成式的嚴格,速度也會快,小資料量下準確率也會好些。

生成模型:在弄清楚是什麼之前,先弄清楚為什麼。

判別模型:不太在乎為什麼,只管是什麼。

判別模型的方法是:

從大量貓狗資料中學習到貓的叫聲和狗的叫聲不一樣,對新的樣本,我看看他的叫聲更像誰,就認為他是誰。

生成模型的方法是:

從訓練集中學到了貓的特徵(比如叫聲,毛色,毛長,大小,臉型等等),然後也學到了狗的這些特徵。

最後對新樣本,提取出這些特徵後,拿去和貓的比較,得到乙個概率,再去和狗的比較,得到乙個概率,最後誰大就認為是誰。

判別模型的方法是:

先從歷史資料中學習到乙個統一的模型,然後通過提取這只羊的特徵來**出這只羊是山羊的概率,是綿羊的概率。我只要學會綿羊和山羊某個特殊差別就好。

比如山羊更擅長攀岩,按照岩壁坡度進行判別,能在45度以上山坡行走的就是山羊,以下是綿羊。

而眼前這個羊走85度山坡如履平地,所以它是山羊。

生成模型的方法:

根據山羊的特徵首先學習出乙個山羊模型(軀體瘦,角三菱型,呈鐮刀狀彎曲,一般毛粗而短,毛色多為白色,也有黑色、青色、褐色或雜色的,尾巴往上翹,膽子大,採食灌木嫩枝條)。

根據綿羊的特徵學習出乙個綿羊模型(軀體豐滿,頭短,公羊有螺旋狀大角,母羊無角或只有細而小的角。毛細蜜、多為白色。 綿羊的嘴唇薄而靈活,適於啃食很短的牧草,性情溫順,膽小,主要吃草)。

然後從這只羊中提取各種特徵,放到山羊模型中看概率是多少,再放到綿羊模型中看概率是多少,哪個大就是哪個。

在這個問題中,第乙個判別模型方法中你只記住了山羊和綿羊之間的不同之處。第二個生成模型的思路中,你實際上學習了什麼是綿羊,什麼是山羊。

例如對面乙個人走過來,和你說了一句話,你需要識別出她說的到底是漢語、英語還是法語等。那麼你可以有兩種方法達到這個目的:

生成模型的方法:

學習每一種語言,你花了大量精力把漢語、英語和法語等都學會了,我指的學會是你知道什麼樣的語音對應什麼樣的語言。然後再有人過來對你說話,你就可以知道他說的是什麼語音。這就是gm。

判別模型的方法:

不去學習每一種語言,你只學習這些語言模型之間的差別,然後再分類。意思是指我學會了漢語和英語等語言的發音是有差別的,我學會這種差別就好了。這就是dm。

生成模型:

一般是學習乙個代表目標的模型,然後通過它去搜尋影象區域,然後最小化重構誤差。類似於生成模型描述乙個目標,然後就是模式匹配了,在影象中找到和這個模型最匹配的區域,就是目標了。

判別模型:

將跟蹤問題看成乙個二分類問題,然後找到目標和背景的決策邊界。它不管目標是怎麼描述的,那只要知道目標和背景的差別在哪,然後你給乙個影象,它看它處於邊界的那一邊,就歸為哪一類。

一般來說,生成式模型需要非常充足的資料量以保證取樣到了資料本來的面目。判別模型對資料量要求沒生成式的嚴格。但是也要具體情況具體分析。

比如根據貝葉斯公式,我們知道p(x

,y)=

p(x∣

y)p(

y)=p

(y∣x

)p(x

)p(x,y)=p(x|y)p(y)=p(y|x)p(x)

p(x,y)

=p(x

∣y)p

(y)=

p(y∣

x)p(

x), 所以生成模型也可以表示成:p(y

∣x)=

p(x∣

y)p(

y)/p

(x

)p(y|x)=p(x|y)p(y)/p(x)

p(y∣x)

=p(x

∣y)p

(y)/

p(x)

。而我們現在用p(y

∣x)=

p(x∣

y)p(

y)/p

(x

)p(y|x)=p(x|y)p(y)/p(x)

p(y∣x)

=p(x

∣y)p

(y)/

p(x)

這個公式,首先求解的是p(x

∣y

)p(x|y)

p(x∣y)

,所以有些地方也說對p(x

∣y

)p(x|y)

p(x∣y)

建模為gm(當然也要求p(y

)p(y)

p(y)

和p (x

)p(x)

p(x)

),對p(y

∣x

)p(y|x)

p(y∣x)

直接建模為dm;意思其實是一樣的,因為gm中先對p(x

∣y

)p(x|y)

p(x∣y)

建模後,可以求出聯合分布p(x

,y)=

p(x∣

y)p(

y)

p(x,y)=p(x|y)p(y)

p(x,y)

=p(x

∣y)p

(y),仍可以說是求聯合分布為gm。

例如:x=吸菸的人,y=得肺癌的機率,對p(y

∣x

)p(y|x)

p(y∣x)

建模可能非常複雜。而對p(x

∣y

)p(x|y)

p(x∣y)

建模就比較容易,因為對p(x

∣y

)p(x|y)

p(x∣y)

建模就好像在得肺癌的人裡面看吸菸人的情況。我們都知道吸菸的人數億計,但得肺癌的人畢竟是少數,建模從得肺癌的人出發,更加容易,比如10萬個得肺癌的,抽樣1000個就差不多了。

機器學習 生成模型和判別模型

摘要 判別式模型,就是只有乙個模型,你把測試用例往裡面一丟,label就出來了,如svm。生成式模型,有多個模型 一般有多少類就有多少個 你得把測試用例分別丟到各個模型裡面,最後比較其結果,選擇最優的作為label,如樸素貝葉斯。本文將從生成式模型與判別式模型的概念,適用環境以及具體模型三個方面分析...

機器學習基礎 生成模型和判別模型

決策函式y f x 你輸入乙個x,它就輸出乙個y,這個y與乙個閾值比較,根據比較結果判定x屬於哪個類別。例如兩類 w1和w2 分類問題,如果y大於閾值,x就屬於類w1,如果小於閾值就屬於類w2。這樣就得到了該x對應的類別了。你輸入乙個x,它通過比較它屬於所有類的概率,然後輸出概率最大的那個作為該x對...

生成模型與判別模型

監督學習的任務就是學習乙個模型,應用這個模型,對給定的輸入 相應的輸出。這個模型一般為決策函式 y f x 或 條件概率分布 p y x 生成方法 定義 由資料學習聯合概率分布 p x,y 然後由p y x p x,y p x 求出概率分布p y x 基本思想是首先建立樣本的聯合概率密度模型p x,...