日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生成学习算法Generative Learning algorithms

發(fā)布時間:2025/7/25 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生成学习算法Generative Learning algorithms 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載時請注明來源:http://www.cnblogs.com/jerrylead
1判別模型與生成模型

上篇報告中提到的回歸模型是判別模型,也就是根據(jù)特征值來求結(jié)果的概率。形式化表示為,在參數(shù)確定的情況下,求解條件概率。通俗的解釋為在給定特征后預(yù)測結(jié)果出現(xiàn)的概率。

比如說要確定一只羊是山羊還是綿羊,用判別模型的方法是先從歷史數(shù)據(jù)中學(xué)習(xí)到模型,然后通過提取這只羊的特征來預(yù)測出這只羊是山羊的概率,是綿羊的概率。換一種思路,我們可以根據(jù)山羊的特征首先學(xué)習(xí)出一個山羊模型,然后根據(jù)綿羊的特征學(xué)習(xí)出一個綿羊模型。然后從這只羊中提取特征,放到山羊模型中看概率是多少,再放到綿羊模型中看概率是多少,哪個大就是哪個。形式化表示為求(也包括,y是模型結(jié)果,x是特征。

利用貝葉斯公式發(fā)現(xiàn)兩個模型的統(tǒng)一性:

由于我們關(guān)注的是y的離散值結(jié)果中哪個概率大(比如山羊概率和綿羊概率哪個大),而并不是關(guān)心具體的概率,因此上式改寫為:

其中稱為后驗概率,稱為先驗概率。

由,因此有時稱判別模型求的是條件概率,生成模型求的是聯(lián)合概率。

常見的判別模型有線性回歸、對數(shù)回歸、線性判別分析、支持向量機、boosting、條件隨機場、神經(jīng)網(wǎng)絡(luò)等。

常見的生產(chǎn)模型有隱馬爾科夫模型、樸素貝葉斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

這篇博客較為詳細(xì)地介紹了兩個模型:

http://blog.sciencenet.cn/home.php?mod=space&uid=248173&do=blog&id=227964

2高斯判別分析(Gaussian discriminant analysis)

1) 多值正態(tài)分布

多變量正態(tài)分布描述的是n維隨機變量的分布情況,這里的變成了向量,也變成了矩陣。寫作。假設(shè)有n個隨機變量X1,X2,…,Xn。的第i個分量是E(Xi),而。

概率密度函數(shù)如下:

其中|是的行列式,是協(xié)方差矩陣,而且是對稱半正定的。

當(dāng)是二維的時候可以如下圖表示:

其中決定中心位置,決定投影橢圓的朝向和大小。

如下圖:

對應(yīng)的都不同。

2) 模型分析與應(yīng)用

如果輸入特征x是連續(xù)型隨機變量,那么可以使用高斯判別分析模型來確定p(x|y)。

模型如下:

輸出結(jié)果服從伯努利分布,在給定模型下特征符合多值高斯分布。通俗地講,在山羊模型下,它的胡須長度,角大小,毛長度等連續(xù)型變量符合高斯分布,他們組成的特征向量符合多值高斯分布。

這樣,可以給出概率密度函數(shù):

最大似然估計如下:

注意這里的參數(shù)有兩個,表示在不同的結(jié)果模型下,特征均值不同,但我們假設(shè)協(xié)方差相同。反映在圖上就是不同模型中心位置不同,但形狀相同。這樣就可以用直線來進(jìn)行分隔判別。

求導(dǎo)后,得到參數(shù)估計公式:

是訓(xùn)練樣本中結(jié)果y=1占有的比例。

是y=0的樣本中特征均值。

是y=1的樣本中特征均值。

是樣本特征方差均值。

如前面所述,在圖上表示為:

直線兩邊的y值不同,但協(xié)方差矩陣相同,因此形狀相同。不同,因此位置不同。

3) 高斯判別分析(GDA)與logistic回歸的關(guān)系

將GDA用條件概率方式來表述的話,如下:

y是x的函數(shù),其中都是參數(shù)。

進(jìn)一步推導(dǎo)出

這里的是的函數(shù)。

這個形式就是logistic回歸的形式。

也就是說如果p(x|y)符合多元高斯分布,那么p(y|x)符合logistic回歸模型。反之,不成立。為什么反過來不成立呢?因為GDA有著更強的假設(shè)條件和約束。

如果認(rèn)定訓(xùn)練數(shù)據(jù)滿足多元高斯分布,那么GDA能夠在訓(xùn)練集上是最好的模型。然而,我們往往事先不知道訓(xùn)練數(shù)據(jù)滿足什么樣的分布,不能做很強的假設(shè)。Logistic回歸的條件假設(shè)要弱于GDA,因此更多的時候采用logistic回歸的方法。

例如,訓(xùn)練數(shù)據(jù)滿足泊松分布,

,那么p(y|x)也是logistic回歸的。這個時候如果采用GDA,那么效果會比較差,因為訓(xùn)練數(shù)據(jù)特征的分布不是多元高斯分布,而是泊松分布。

這也是logistic回歸用的更多的原因。

3樸素貝葉斯模型

在GDA中,我們要求特征向量x是連續(xù)實數(shù)向量。如果x是離散值的話,可以考慮采用樸素貝葉斯的分類方法。

假如要分類垃圾郵件和正常郵件。分類郵件是文本分類的一種應(yīng)用。

假設(shè)采用最簡單的特征描述方法,首先找一部英語詞典,將里面的單詞全部列出來。然后將每封郵件表示成一個向量,向量中每一維都是字典中的一個詞的0/1值,1表示該詞在郵件中出現(xiàn),0表示未出現(xiàn)。

比如一封郵件中出現(xiàn)了“a”和“buy”,沒有出現(xiàn)“aardvark”、“aardwolf”和“zygmurgy”,那么可以形式化表示為:

假設(shè)字典中總共有5000個詞,那么x是5000維的。這時候如果要建立多項式分布模型(二項分布的擴展)。

多項式分布(multinomial distribution)

某隨機實驗如果有k個可能結(jié)局A1,A2,…,Ak,它們的概率分布分別是p1,p2,…,pk,那么在N次采樣的總結(jié)果中,A1出現(xiàn)n1次,A2出現(xiàn)n2次,…,Ak出現(xiàn)nk次的這種事件的出現(xiàn)概率P有下面公式:(Xi代表出現(xiàn)ni次)

對應(yīng)到上面的問題上來,把每封郵件當(dāng)做一次隨機試驗,那么結(jié)果的可能性有種。意味著pi有個,參數(shù)太多,不可能用來建模。

換種思路,我們要求的是p(y|x),根據(jù)生成模型定義我們可以求p(x|y)和p(y)。假設(shè)x中的特征是條件獨立的。這個稱作樸素貝葉斯假設(shè)。如果一封郵件是垃圾郵件(y=1),且這封郵件出現(xiàn)詞“buy”與這封郵件是否出現(xiàn)“price”無關(guān),那么“buy”和“price”之間是條件獨立的。

形式化表示為,(如果給定Z的情況下,X和Y條件獨立):

也可以表示為:

回到問題中

這個與NLP中的n元語法模型有點類似,這里相當(dāng)于unigram。

這里我們發(fā)現(xiàn)樸素貝葉斯假設(shè)是約束性很強的假設(shè),“buy”從通常上講與“price”是有關(guān)系,我們這里假設(shè)的是條件獨立。(注意條件獨立和獨立是不一樣的)

建立形式化的模型表示:


那么我們想要的是模型在訓(xùn)練數(shù)據(jù)上概率積能夠最大,即最大似然估計如下:

注意這里是聯(lián)合概率分布積最大,說明樸素貝葉斯是生成模型。

求解得:

最后一個式子是表示y=1的樣本數(shù)占全部樣本數(shù)的比例,前兩個表示在y=1或0的樣本中,特征Xj=1的比例。

然而我們要求的是

實際是求出分子即可,分母對y=1和y=0都一樣。

當(dāng)然,樸素貝葉斯方法可以擴展到x和y都有多個離散值的情況。對于特征是連續(xù)值的情況,我們也可以采用分段的方法來將連續(xù)值轉(zhuǎn)化為離散值。具體怎么轉(zhuǎn)化能夠最優(yōu),我們可以采用信息增益的度量方法來確定(參見Mitchell的《機器學(xué)習(xí)》決策樹那一章)。

比如房子大小可以如下劃分成離散值:

4拉普拉斯平滑

樸素貝葉斯方法有個致命的缺點就是對數(shù)據(jù)稀疏問題過于敏感。

比如前面提到的郵件分類,現(xiàn)在新來了一封郵件,郵件標(biāo)題是“NIPS call for papers”。我們使用更大的網(wǎng)絡(luò)詞典(詞的數(shù)目由5000變?yōu)?5000)來分類,假設(shè)NIPS這個詞在字典中的位置是35000。然而NIPS這個詞沒有在訓(xùn)練數(shù)據(jù)中出現(xiàn)過,這封郵件第一次出現(xiàn)了NIPS。那我們算概率的時候如下:

由于NIPS在以前的不管是垃圾郵件還是正常郵件都沒出現(xiàn)過,那么結(jié)果只能是0了。

顯然最終的條件概率也是0。

原因就是我們的特征概率條件獨立,使用的是相乘的方式來得到結(jié)果。

為了解決這個問題,我們打算給未出現(xiàn)特征值,賦予一個“小”的值而不是0。

具體平滑方法如下:

假設(shè)離散型隨機變量z有{1,2,…,k}個值,我們用來表示每個值的概率。假設(shè)有m個訓(xùn)練樣本中,z的觀察值是其中每一個觀察值對應(yīng)k個值中的一個。那么根據(jù)原來的估計方法可以得到

說白了就是z=j出現(xiàn)的比例。

拉普拉斯平滑法將每個k值出現(xiàn)次數(shù)事先都加1,通俗講就是假設(shè)他們都出現(xiàn)過一次。

那么修改后的表達(dá)式為:

每個z=j的分子都加1,分母加k。可見。

這個有點像NLP里面的加一平滑法,當(dāng)然還有n多平滑法了,這里不再詳述。

Technorati 標(biāo)簽:?Machine Learning

回到郵件分類的問題,修改后的公式為:

5文本分類的事件模型

回想一下我們剛剛使用的用于文本分類的樸素貝葉斯模型,這個模型稱作多值伯努利事件模型(multi-variate Bernoulli event model)。在這個模型中,我們首先隨機選定了郵件的類型(垃圾或者普通郵件,也就是p(y)),然后一個人翻閱詞典,從第一個詞到最后一個詞,隨機決定一個詞是否要在郵件中出現(xiàn),出現(xiàn)標(biāo)示為1,否則標(biāo)示為0。然后將出現(xiàn)的詞組成一封郵件。決定一個詞是否出現(xiàn)依照概率p(xi|y)。那么這封郵件的概率可以標(biāo)示為。

讓我們換一個思路,這次我們不先從詞典入手,而是選擇從郵件入手。讓i表示郵件中的第i個詞,xi表示這個詞在字典中的位置,那么xi取值范圍為{1,2,…|V|},|V|是字典中詞的數(shù)目。這樣一封郵件可以表示成,n可以變化,因為每封郵件的詞的個數(shù)不同。然后我們對于每個xi隨機從|V|個值中取一個,這樣就形成了一封郵件。這相當(dāng)于重復(fù)投擲|V|面的骰子,將觀察值記錄下來就形成了一封郵件。當(dāng)然每個面的概率服從p(xi|y),而且每次試驗條件獨立。這樣我們得到的郵件概率是。居然跟上面的一樣,那么不同點在哪呢?注意第一個的n是字典中的全部的詞,下面這個n是郵件中的詞個數(shù)。上面xi表示一個詞是否出現(xiàn),只有0和1兩個值,兩者概率和為1。下面的xi表示|V|中的一個值,|V|個p(xi|y)相加和為1。是多值二項分布模型。上面的x向量都是0/1值,下面的x的向量都是字典中的位置。

形式化表示為:

m個訓(xùn)練樣本表示為:

表示第i個樣本中,共有ni個詞,每個詞在字典中的編號為。

那么我們?nèi)匀话凑諛闼刎惾~斯的方法求得最大似然估計概率為

解得,

與以前的式子相比,分母多了個ni,分子由0/1變成了k。

舉個例子:

X1

X2

X3

Y

1

2

-

1

2

1

-

0

1

3

2

0

3

3

3

1

假如郵件中只有a,b,c這三詞,他們在詞典的位置分別是1,2,3,前兩封郵件都只有2個詞,后兩封有3個詞。

Y=1是垃圾郵件。

那么,


假如新來一封郵件為b,c那么特征表示為{2,3}。

那么

那么該郵件是垃圾郵件概率是0.6。

注意這個公式與樸素貝葉斯的不同在于這里針對整體樣本求的,而樸素貝葉斯里面針對每個特征求的,而且這里的特征值維度是參差不齊的。

這里如果假如拉普拉斯平滑,得到公式為:

表示每個k值至少發(fā)生過一次。

另外樸素貝葉斯雖然有時候不是最好的分類方法,但它簡單有效,而且速度快。

總結(jié)

以上是生活随笔為你收集整理的生成学习算法Generative Learning algorithms的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。