來(lái)源: 生成模型與判別模型
一、決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)
監(jiān)督學(xué)習(xí)的任務(wù)就是從數(shù)據(jù)中學(xué)習(xí)一個(gè)模型(也叫分類(lèi)器),應(yīng)用這一模型,對(duì)給定的輸入X預(yù)測(cè)相應(yīng)的輸出Y。這個(gè)模型的一般形式為決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)。
** 決策函數(shù)Y=f(X):**你輸入一個(gè)X,它就輸出一個(gè)Y,這個(gè)Y與一個(gè)閾值比較,根據(jù)比較結(jié)果判定X屬于哪個(gè)類(lèi)別。例如兩類(lèi)(w1和w2)分類(lèi)問(wèn)題,如果Y大于閾值,X就屬于類(lèi)w1,如果小于閾值就屬于類(lèi)w2。這樣就得到了該X對(duì)應(yīng)的類(lèi)別了。
** 條件概率分布P(Y|X):**你輸入一個(gè)X,它通過(guò)比較它屬于所有類(lèi)的概率,然后輸出概率最大的那個(gè)作為該X對(duì)應(yīng)的類(lèi)別。例如:如果P(w1|X)大于P(w2|X),那么我們就認(rèn)為X是屬于w1類(lèi)的。
所以上面兩個(gè)模型都可以實(shí)現(xiàn)對(duì)給定的輸入X預(yù)測(cè)相應(yīng)的輸出Y的功能。實(shí)際上通過(guò)條件概率分布P(Y|X)進(jìn)行預(yù)測(cè)也是隱含著表達(dá)成決策函數(shù)Y=f(X)的形式的。例如也是兩類(lèi)w1和w2,那么我們求得了P(w1|X)和P(w2|X),那么實(shí)際上判別函數(shù)就可以表示為Y=
P(w1|X)/P(w2|X),如果Y大于1或者某個(gè)閾值,那么X就屬于類(lèi)w1,如果小于閾值就屬于類(lèi)w2。而同樣,很神奇的一件事是,實(shí)際上決策函數(shù)Y=f(X)也是隱含著使用P(Y|X)的。因?yàn)橐话銢Q策函數(shù)Y=f(X)是通過(guò)學(xué)習(xí)算法使你的預(yù)測(cè)和訓(xùn)練數(shù)據(jù)之間的誤差平方最小化,而貝葉斯告訴我們,雖然它沒(méi)有顯式的運(yùn)用貝葉斯或者以某種形式計(jì)算概率,但它實(shí)際上也是在隱含的輸出極大似然假設(shè)(MAP假設(shè))。也就是說(shuō)學(xué)習(xí)器的任務(wù)是在所有假設(shè)模型有相等的先驗(yàn)概率條件下,輸出極大似然假設(shè)。
所以呢,分類(lèi)器的設(shè)計(jì)就是在給定訓(xùn)練數(shù)據(jù)的基礎(chǔ)上估計(jì)其概率模型P(Y|X)。如果可以估計(jì)出來(lái),那么就可以分類(lèi)了。但是一般來(lái)說(shuō),概率模型是比較難估計(jì)的。給一堆數(shù)給你,特別是數(shù)不多的時(shí)候,你一般很難找到這些數(shù)滿(mǎn)足什么規(guī)律吧。那能否不依賴(lài)概率模型直接設(shè)計(jì)分類(lèi)器呢?事實(shí)上,分類(lèi)器就是一個(gè)決策函數(shù)(或決策面),如果能夠從要解決的問(wèn)題和訓(xùn)練樣本出發(fā)直接求出判別函數(shù),就不用估計(jì)概率模型了,這就是決策函數(shù)Y=f(X)的偉大使命了。例如支持向量機(jī),我已經(jīng)知道它的決策函數(shù)(分類(lèi)面)是線(xiàn)性的了,也就是可以表示成Y=f(X)=WX+b的形式,那么我們通過(guò)訓(xùn)練樣本來(lái)學(xué)習(xí)得到W和b的值就可以得到Y(jié)=f(X)了。還有一種更直接的分類(lèi)方法,它不用事先設(shè)計(jì)分類(lèi)器,而是只確定分類(lèi)原則,根據(jù)已知樣本(訓(xùn)練樣本)直接對(duì)未知樣本進(jìn)行分類(lèi)。包括近鄰法,它不會(huì)在進(jìn)行具體的預(yù)測(cè)之前求出概率模型P(Y|X)或者決策函數(shù)Y=f(X),而是在真正預(yù)測(cè)的時(shí)候,將X與訓(xùn)練數(shù)據(jù)的各類(lèi)的Xi比較,和哪些比較相似,就判斷它X也屬于Xi對(duì)應(yīng)的類(lèi)。
實(shí)際上,說(shuō)了那么多,也不知道自己表達(dá)清楚了沒(méi)有。那我們是談生成模型和判別模型,上面到底啰嗦了那么多到底有啥陰謀啊?呵呵,往下說(shuō)就知道了。
二、生成方法和判別方法
監(jiān)督學(xué)習(xí)方法又分生成方法(Generative approach)和判別方法(Discriminative approach),所學(xué)到的模型分別稱(chēng)為生成模型(Generative Model)和判別模型(Discriminative Model)。咱們先談判別方法,因?yàn)樗颓懊嬲f(shuō)的都差不多,比較容易明白。
** 判別方法:**由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)作為預(yù)測(cè)的模型,即判別模型。基本思想是有限樣本條件下建立判別函數(shù),不考慮樣本的產(chǎn)生模型,直接研究預(yù)測(cè)模型。典型的判別模型包括k近鄰,感知級(jí),決策樹(shù),支持向量機(jī)等。
** 生成方法:**由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率密度分布P(X,Y),然后求出條件概率分布P(Y|X)作為預(yù)測(cè)的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。基本思想是首先建立樣本的聯(lián)合概率概率密度模型P(X,Y),然后再得到后驗(yàn)概率P(Y|X),再利用它進(jìn)行分類(lèi),就像上面說(shuō)的那樣。注意了哦,這里是先求出P(X,Y)才得到P(Y|X)的,然后這個(gè)過(guò)程還得先求出P(X)。P(X)就是你的訓(xùn)練數(shù)據(jù)的概率分布。哎,剛才說(shuō)了,需要你的數(shù)據(jù)樣本非常多的時(shí)候,你得到的P(X)才能很好的描述你數(shù)據(jù)真正的分布。例如你投硬幣,你試了100次,得到正面的次數(shù)和你的試驗(yàn)次數(shù)的比可能是3/10,然后你直覺(jué)告訴你,可能不對(duì),然后你再試了500次,哎,這次正面的次數(shù)和你的試驗(yàn)次數(shù)的比可能就變成4/10,這時(shí)候你半信半疑,不相信上帝還有一個(gè)手,所以你再試200000次,這時(shí)候正面的次數(shù)和你的試驗(yàn)次數(shù)的比(就可以當(dāng)成是正面的概率了)就變成5/10了。這時(shí)候,你就覺(jué)得很靠譜了,覺(jué)得自己就是那個(gè)上帝了。呵呵,真啰嗦,還差點(diǎn)離題了。
還有一個(gè)問(wèn)題就是,在機(jī)器學(xué)習(xí)領(lǐng)域有個(gè)約定俗成的說(shuō)法是:不要去學(xué)那些對(duì)這個(gè)任務(wù)沒(méi)用的東西。例如,對(duì)于一個(gè)分類(lèi)任務(wù):對(duì)一個(gè)給定的輸入x,將它劃分到一個(gè)類(lèi)y中。那么,如果我們用生成模型:p(x,y)=p(y|x).p(x)
那么,我們就需要去對(duì)p(x)建模,但這增加了我們的工作量,這讓我們很不爽(除了上面說(shuō)的那個(gè)估計(jì)得到P(X)可能不太準(zhǔn)確外)。實(shí)際上,因?yàn)閿?shù)據(jù)的稀疏性,導(dǎo)致我們都是被強(qiáng)迫地使用弱獨(dú)立性假設(shè)去對(duì)p(x)建模的,所以就產(chǎn)生了局限性。所以我們更趨向于直觀的使用判別模型去分類(lèi)。
這樣的方法之所以稱(chēng)為生成方法,是因?yàn)槟P捅硎玖私o定輸入X產(chǎn)生輸出Y的生成關(guān)系。用于隨機(jī)生成的觀察值建模,特別是在給定某些隱藏參數(shù)情況下。典型的生成模型有:樸素貝葉斯和隱馬爾科夫模型等。
三、生成模型和判別模型的優(yōu)缺點(diǎn)
在監(jiān)督學(xué)習(xí)中,兩種方法各有優(yōu)缺點(diǎn),適合于不同條件的學(xué)習(xí)問(wèn)題。
** 生成方法的特點(diǎn):**上面說(shuō)到,生成方法學(xué)習(xí)聯(lián)合概率密度分布P(X,Y),所以就可以從統(tǒng)計(jì)的角度表示數(shù)據(jù)的分布情況,能夠反映同類(lèi)數(shù)據(jù)本身的相似度。但它不關(guān)心到底劃分各類(lèi)的那個(gè)分類(lèi)邊界在哪。生成方法可以還原出聯(lián)合概率分布P(Y|X),而判別方法不能。生成方法的學(xué)習(xí)收斂速度更快,即當(dāng)樣本容量增加的時(shí)候,學(xué)到的模型可以更快的收斂于真實(shí)模型,當(dāng)存在隱變量時(shí),仍可以用生成方法學(xué)習(xí)。此時(shí)判別方法就不能用。
** 判別方法的特點(diǎn):**判別方法直接學(xué)習(xí)的是決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)。不能反映訓(xùn)練數(shù)據(jù)本身的特性。但它尋找不同類(lèi)別之間的最優(yōu)分類(lèi)面,反映的是異類(lèi)數(shù)據(jù)之間的差異。直接面對(duì)預(yù)測(cè),往往學(xué)習(xí)的準(zhǔn)確率更高。由于直接學(xué)習(xí)P(Y|X)或P(X),可以對(duì)數(shù)據(jù)進(jìn)行各種程度上的抽象、定義特征并使用特征,因此可以簡(jiǎn)化學(xué)習(xí)問(wèn)題。
四、生成模型和判別模型的聯(lián)系
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
五、再形象點(diǎn)可以嗎
例如我們有一個(gè)輸入數(shù)據(jù)x,然后我們想將它分類(lèi)為標(biāo)簽y。(迎面走過(guò)來(lái)一個(gè)人,你告訴我這個(gè)是男的還是女的)
生成模型學(xué)習(xí)聯(lián)合概率分布p(x,y),而判別模型學(xué)習(xí)條件概率分布p(y|x)。
下面是個(gè)簡(jiǎn)單的例子:
例如我們有以下(x,y)形式的數(shù)據(jù):(1,0), (1,0), (2,0), (2, 1)
那么p(x,y)是:
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
而p(y|x) 是:
y=0 y=1
-----------
x=1| 1 0
x=2| 1/2 1/2
我們?yōu)榱藢⒁粋€(gè)樣本x分類(lèi)到一個(gè)類(lèi)y,最自然的做法就是條件概率分布p(y|x),這就是為什么我們對(duì)其直接求p(y|x)方法叫做判別算法。而生成算法求p(x,y),而p(x,y)可以通過(guò)貝葉斯方法轉(zhuǎn)化為p(y|x),然后再用其分類(lèi)。但是p(x,y)還有其他作用,例如,你可以用它去生成(x,y)對(duì)。
再假如你的任務(wù)是識(shí)別一個(gè)語(yǔ)音屬于哪種語(yǔ)言。例如對(duì)面一個(gè)人走過(guò)來(lái),和你說(shuō)了一句話(huà),你需要識(shí)別出她說(shuō)的到底是漢語(yǔ)、英語(yǔ)還是法語(yǔ)等。那么你可以有兩種方法達(dá)到這個(gè)目的:
1、學(xué)習(xí)每一種語(yǔ)言,你花了大量精力把漢語(yǔ)、英語(yǔ)和法語(yǔ)等都學(xué)會(huì)了,我指的學(xué)會(huì)是你知道什么樣的語(yǔ)音對(duì)應(yīng)什么樣的語(yǔ)言。然后再有人過(guò)來(lái)對(duì)你哄,你就可以知道他說(shuō)的是什么語(yǔ)音,你就可以罵他是“米國(guó)人還是小日本了”。(呵呵,切勿將政治摻雜在技術(shù)里面)
2、不去學(xué)習(xí)每一種語(yǔ)言,你只學(xué)習(xí)這些語(yǔ)言模型之間的差別,然后再分類(lèi)。意思是指我學(xué)會(huì)了漢語(yǔ)和英語(yǔ)等語(yǔ)言的發(fā)音是有差別的,我學(xué)會(huì)這種差別就好了。
那么第一種方法就是生成方法,第二種方法是判別方法。
生成算法嘗試去找到底這個(gè)數(shù)據(jù)是怎么生成的(產(chǎn)生的),然后再對(duì)一個(gè)信號(hào)進(jìn)行分類(lèi)。基于你的生成假設(shè),那么那個(gè)類(lèi)別最有可能產(chǎn)生這個(gè)信號(hào),這個(gè)信號(hào)就屬于那個(gè)類(lèi)別。判別模型不關(guān)心數(shù)據(jù)是怎么生成的,它只關(guān)心信號(hào)之間的差別,然后用差別來(lái)簡(jiǎn)單對(duì)給定的一個(gè)信號(hào)進(jìn)行分類(lèi)。
六、對(duì)于跟蹤算法
跟蹤算法一般來(lái)說(shuō)可以分為兩類(lèi):基于外觀模型的生成模型或者基于外觀模型的判別模型。
** 生成模型:**一般是學(xué)習(xí)一個(gè)代表目標(biāo)的模型,然后通過(guò)它去搜索圖像區(qū)域,然后最小化重構(gòu)誤差。類(lèi)似于生成模型描述一個(gè)目標(biāo),然后就是模式匹配了,在圖像中找到和這個(gè)模型最匹配的區(qū)域,就是目標(biāo)了。
** 判別模型:**將跟蹤問(wèn)題看成一個(gè)二分類(lèi)問(wèn)題,然后找到目標(biāo)和背景的決策邊界。它不管目標(biāo)是怎么描述的,那只要知道目標(biāo)和背景的差別在哪,然后你給一個(gè)圖像,它看它處于邊界的那一邊,就歸為哪一類(lèi)。