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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生成学习算法Generative Learning algorithms

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

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

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

利用貝葉斯公式發現兩個模型的統一性:

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

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

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

常見的判別模型有線性回歸、對數回歸、線性判別分析、支持向量機、boosting、條件隨機場、神經網絡等。

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

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

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

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

1) 多值正態分布

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

概率密度函數如下:

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

當是二維的時候可以如下圖表示:

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

如下圖:

對應的都不同。

2) 模型分析與應用

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

模型如下:

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

這樣,可以給出概率密度函數:

最大似然估計如下:

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

求導后,得到參數估計公式:

是訓練樣本中結果y=1占有的比例。

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

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

是樣本特征方差均值。

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

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

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

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

y是x的函數,其中都是參數。

進一步推導出

這里的是的函數。

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

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

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

例如,訓練數據滿足泊松分布,

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

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

3樸素貝葉斯模型

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

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

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

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

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

多項式分布(multinomial distribution)

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

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

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

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

也可以表示為:

回到問題中

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

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

建立形式化的模型表示:


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

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

求解得:

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

然而我們要求的是

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

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

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

4拉普拉斯平滑

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

比如前面提到的郵件分類,現在新來了一封郵件,郵件標題是“NIPS call for papers”。我們使用更大的網絡詞典(詞的數目由5000變為35000)來分類,假設NIPS這個詞在字典中的位置是35000。然而NIPS這個詞沒有在訓練數據中出現過,這封郵件第一次出現了NIPS。那我們算概率的時候如下:

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

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

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

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

具體平滑方法如下:

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

說白了就是z=j出現的比例。

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

那么修改后的表達式為:

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

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

Technorati 標簽:?Machine Learning

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

5文本分類的事件模型

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

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

形式化表示為:

m個訓練樣本表示為:

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

那么我們仍然按照樸素貝葉斯的方法求得最大似然估計概率為

解得,

與以前的式子相比,分母多了個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值至少發生過一次。

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。