贝叶斯和EM算法简介
文章目錄
- 一、貝葉斯決策論
- 1.1 簡介
- 1.2 簡單認識
- 1.3 當我們啥也不知道的時候咋辦
- 1.4 當我們得到觀測的數據咋個整呢
- 1.5 貝葉斯公式
- 1.6 如何決策最優
- 二、樸素貝葉斯分類器
- 2.1 概述
- 2.2 貝葉斯分類器
- 2.3 例題解析
- 2.4 何為樸素
- 2.5 為什么需要特征之間的相互獨立呢?
- 2.6 總結
- 三、半樸素貝葉斯分類器
- 3.1 概述
- 3.2 核心思想
- 3.3 基本構造
- 四、貝葉斯網
- 4.1 概述
- 4.2 實例
- 4.3 分析
- 4.4 特殊貝葉斯
- 五、EM算法
- 5.1 EM簡介
- 5.2 極大似然估計
- 5.3 jensen不等式
- 5.3.1 定義
- 5.3.2 eg
- 5.4 算法推導
一、貝葉斯決策論
1.1 簡介
? 我們可能都知道貝葉斯決策論(ayes Decision Rule),雖然我們可能能背誦出來,但我們要對他正確理解卻不容易。
在這里我們需要知道的是:
1.2 簡單認識
? 通常在機器學習的時候我們一般通過觀測數據 X 來推斷 Y。在這個過程中我們學習我們的推算的過程,使得我們后面進行估計的時候我們的推算過程是對于正確的結果最優的。舉個例子,我們有一個硬幣,我們觀察到了他的尺寸大小是多少,我們就可以通過一個規則(運算或推算過程)來計算我們的投出后的結果是什么。在這里我們可以得到,我們得到的數據是:硬幣的大小 X,結果(0,1),運算過程。
1.3 當我們啥也不知道的時候咋辦
? 當我們什么都不知道的時候,按照我們正常的思維我們的概率都是五五開。巧了,這時候一個人托夢告訴你正面的結果是0.8,這時候我們就得到了反面的概率 1-0.8=0.2 。對于他們的概率結果分布的不一樣,我們的結果更加趨向概率高的那一個,這時候我們可以計算出來我們出錯的概率是0.2。
? 在上面我們計算出來的我們稱之為先驗概率(prior probability)就是說的是我們通過觀測得到的已知的概率分布,在后面的推算中,我們可以不用去管他的大小,我們直接大膽的推測,在后面我們會介紹后驗概率posterior probability)
后驗概率指的是我們通過觀測對結果的估計。(前面的啥也不知道的時候我們是沒有進行觀測的,我們把結果交給了一個叫神的家伙)。
1.4 當我們得到觀測的數據咋個整呢
? 在前面的計算中我們只是把我們的結果交給了神,這是不科學的,我們在這里要引入科學的辦法。在這里我們得到了硬幣的尺寸 X ,然后我們就可以估計我們的概率咯,在這里我們引入數學的表達就是估計
。相反的我們的
就是表達的我們的結果是反的概率,在這里我們可以理解為我們代表當我們觀測到硬幣屬性 X 時概率正為1,反之為0。我們在這里給這兩個數學表達式起個名字,就是我們先前提出的后驗概率,和我們直接估計的結果0和1是不一樣的,這個是我們計算僅當*X*被觀測到時y=1的概率。
? 到了這里,大家都應該有了自己的理解,先驗概率就是對結果直接進行估計,我們的后驗概率就是對結果加入觀測量使他更加的準確,就是對原有的計算概率方式的一種更新,使得它更加的優化,更加的完美。這就是所謂的相信科學。
? 后驗概率對于機器學習來講是最好的,也是大部分的學習模型希望得到的。
1.5 貝葉斯公式
? 后驗概率我們是沒辦法直接得到的,因此我們需要找到方法來計算,這里我們就引入了貝葉斯公式。后驗概率的表達方法我們稱之為條件概率(conditional probability)一般寫作p(a|b),即僅當事件B發生的時候A發生的概率,假設兩種概率(A 或 B)都大于零,我們得到:
化簡得到:
化簡得到:
? 我們可以通過我們的觀察發現概率
和
是等價的,所以他們的右邊也是等價的,我們得到
。于是我們就得到了貝葉斯公式:
,將它帶入我們上面提到的后驗概率中去就有了:
公式1:正面朝上的后驗概率------>
公式2:反面朝上的后驗概率------>
**我們發現,在通過貝葉斯公式變形后,后驗概率變得可以計算了。**觀察公式1和2的等號右邊,發現這些概率都可以通過觀測獲得。
貝葉斯決策的預測值是選取后驗概率最大的結果。
1.6 如何決策最優
因為
,也就是“觀測到X并預測為反面的錯誤概率“就是“觀測到X并預測為正面的后驗概率”。
因此只要觀測到X,并選擇后驗概率最大的結果,就可以最小化預測的錯誤概率。這個結論對所有觀測值X均成立,因此只要按照這個預測邏輯,那么就可以保證預測的錯誤概率最小化,所以才叫做“最優”。
二、樸素貝葉斯分類器
? 在我們的生活中,很多時候我們都會用到分類,比如在你旁邊走過了一個人,你會判斷他是不是學生還是精神小伙,這一類的東西就是對生活中的東西進行分類。然后我們還有一種分類方法我們稱之為樸素貝葉斯分類器,也是我們分類過程中的一種分類方法。
2.1 概述
? 在數學的角度中,分類問題可做如下定義:已知集合 C=y1,y2,y3,y4…和 I=x1,x2,x3,x4…,確定映射規則y = f(x),使得任意 Xi屬于I有且僅有一個 ,使得 Yi屬于F(Xi)成立。
? 我們稱之為c為我們的類別,對應每一個x;而眾多的x構成的 I 我們稱之為特征集合,其中每一個元素都是一個待分類項,f是分類器。分類算法的目的是來構造這個F。
? 我們都知道分類算法就是特征值到類別的映射關系,所以我們要做的就是找到這一層的關系。
2.2 貝葉斯分類器
在我們的第一個部分中我們得到了我們的貝葉斯公式:
我們換一種表現形式就是:
我們只要計算出了 p 我們的工作就完成了。
2.3 例題解析
我們首先給出我們的數據:
我們的問題是討論我們用貝葉斯方法,看能不能計算出來女生嫁不嫁這個男生的概率,在這里我們給出一個數學問題的表示方法:p(嫁|(不帥、性格不好、身高矮、不上進))與p(不嫁|(不帥、性格不好、身高矮、不上進))的概率,誰的概率大我們的結果就是什么。
我們聯系我們的貝葉斯方程式:
那么我只要求得p(不帥、性格不好、身高矮、不上進|嫁)、p(不帥、性格不好、身高矮、不上進)、p(嫁)即可,好的,下面我分別求出這幾個概率,最后一比,就得到最終結果。
p(不帥、性格不好、身高矮、不上進|嫁) = p(不帥|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上進|嫁),那么我就要分別統計后面幾個概率,也就得到了左邊的概率!
在這里我們需要注意的是,我們的等式成立的條件需要特征之間相互獨立。
2.4 何為樸素
? 為什么會有樸素貝葉斯分類器的樸素這兩個字呢,樸素貝葉斯算法是假設各個特征之間相互獨立,那么我們就可以解釋了,為什么我們的等式可以成立。
2.5 為什么需要特征之間的相互獨立呢?
? 就像我們例子中的一樣,我們的例子中有四個特征,其中就是帥不帥,性格如何,升高,是不是上進,那么如果我們四個特征之間各自分類類別相乘我們得到一個四維的空間,總個數就會變得多了起來。在我們的象是生活中我們往往有特別多的特征,比如你估計一個人的家庭生活水平,你要了解到他的服飾牌子,消費水準,常去什么地方,生活費用一些,我們會有大量的特征,如果通過統計來估計后面概率的值,這就顯示了不獨立的弊端,所以這也是為什么我們要假設他是獨立的原因。
2.6 總結
*樸素貝葉斯法對條件概率分布做了條件獨立性的假設,由于這是一個較強的假設,樸素貝葉斯也由此得名!這一假設使得樸素貝葉斯法變得簡單,但有時會犧牲一定的分類準確率。*
三、半樸素貝葉斯分類器
3.1 概述
? 在樸素貝葉斯的問題上,我們知道了他的特征屬性是存在“獨立性”的,也就是屬性條件獨立性的設想,那么我們就會存在一個問題,如果我們的屬性之間有依賴呢,那如果這樣想的話我們就不難看出我們的貝葉斯算法”草率了“,那么隨著這種構想的提出,所以半樸素貝葉斯算法就出現了,他們之間的區別是對于假設獨立特征之間的絕對獨立性的一種放松,體現在適當的考慮一部分的依賴關系。
3.2 核心思想
? 半樸素貝葉斯算法的核心思想是考慮一部分的依賴關系,獨依賴估計(One-Dependent Estimator,簡稱ODE)是半樸素貝葉斯分類器最常用的一種策略。也就是我們說的考慮一部分的依賴關系。
獨依賴估計:每個其他屬性最多只依賴一個屬性,即:
3.3 基本構造
? 對于父屬性已知的計算,可采用式子9的計算方式進行計算。我們的問題在于如何確認父屬性,最簡單的方式是如果 b 所示,SPODE,稱為超父屬性,X1為超父屬性。
TAN樹則是在最大帶權生成樹算法的基礎上,通過一下步驟獲得(c)的樹形結構:
(1) 計算任意兩個屬性之間的條件互信息
2) 以屬性為節點構造完全圖,兩節點之間的權值為互信息,即:
(3) 構建此完全圖的最大帶權生成樹,挑選根變量,將邊設置為有向的;
(4) 加入類別節點y,增加從y到每個屬性xi的有向邊;
通過條件互信息就刻畫了屬性之間的依賴關系,然后基于互信息計算屬性之間的權值,從而實現半樸素貝葉斯網絡的構建。
AODE是一種基于集成學習的方法、更為強大的獨依賴分類器為基礎進行構造。與SPODE確定超父屬性的方法有一點的不同,AODE嘗試將每個屬性都作為超父屬性來構建SPODE,然后將具有足夠訓練支撐的SPODE集成起來作為最終結果,即:
四、貝葉斯網
4.1 概述
? 簡單來說,貝葉斯網絡就是將某一個研究系統按照設計的隨機變量,感覺不是或者是的條件獨立都繪制在一個有向圖。
? 貝葉斯網絡是一個有向無環圖,是一種概率圖模型,根據概率圖拓撲結構,考察隨機變量{x1x2,x3…xn},也就是它N組的條件概率的分布性質。
? 其中有向無環圖的節點表示的是隨機變量,兩個節點之間的連接箭頭就是表示之間的因果關系,所以這兩個節點就構成一個條件概率,也就是他們之間的映射組成一個整體。
4.2 實例
這是一個簡單的貝葉斯網絡:
P(a,b,c)=P(c|b,a)P(b|a)P(a)
我們通過他們之間的箭頭可以看見a是b和c的因,b是c的因,a有兩個果b和c,c同時也是b的果,所以我們可以通過他們連接線的方向來判斷他們之間的相互關系(通過推導)。
? 但是我們需要注意的是,在我們的貝葉斯中有的隨機變量會出現缺失,也就是沒有因或者沒有果,這是正常的現象。
在我們的這個圖中,我們可以直接看出來我們的x1和x2還有x3獨立,x6,x7在條件的約束下獨立,我們也可以直接看出來整個組的隨機變量的全分布:P(x4|x1x2x3)P(x5|x1x3)P(x6|x4)P(x7|x4,x5)P(x1)P(x2)P(x3)
4.3 分析
對于一個實際的貝葉斯網絡的分析如下:
我們的分析首先看的是CPD圖,在這個圖里面我們可以看出來D以來的是c和b,在這個概率分布中我們看出來當c和b不發生的時候,不是呼吸困難的概率是0.9,得了的概率是0.1;當c發生b不發生的時候,是呼吸困難的概率是0.3,不是的概率是0.7…以此類推,我們也就明白了貝葉斯圖所表達的是什么意思。
<br
4.4 特殊貝葉斯
看出,此處節點形成一條鏈式網絡,這有個很著名的名稱叫做馬爾科夫模型.即其中Ai+1只和Ai有關。
五、EM算法
5.1 EM簡介
? EM算法是一種迭代的算法,用于含隱變量(latent Variable)求概率模型參數的極大估似然估計,或極大后驗概率估計EM算法由兩個步驟組成,求期望的E步和求極大的M步。
EM算法可以看作是一種特殊情況下的極大似然的一種算法,因為在處理數據的時候有可能我們們的數據會出現缺失數據,含有隱變量等問題,當我們遇到這種問題,計算極大似然函數通常是比較復雜的,這時候我們的em算法恰好能解決這個問題。
5.2 極大似然估計
它可以理解為極大似然原理上的統計犯法,在這里有可能大家對極大似然估計不太明白,我這里說明原理,我們有一組數據,我們對他進行計算的結果可能有x1,x2,x3,x4…等等,但是再一次計算的過程中,我們發現我們計算的結果中出現了x3,那么我們就認為我們的實驗條件對于x3這個結果是比較好的,也就是因為x3作為結果的概率比較大。
舉個例子:
? 我們設甲箱中有99個白球,1個黑球;乙箱中有1個白球.99個黑球。現隨機取出一箱,再從抽取的一箱中隨機取出一球,結果是黑球,這一黑球從乙箱抽取的概率比從甲箱抽取的概率大得多,這時我們自然更多地相信這個黑球是取自乙箱的。一般說來,事件A發生的概率與某一未知參數θ有關,θ 取值不同,則事件A發生的概率
也不同,當我們在一次試驗中事件A發生了,則認為此時的θ 值應是t的一切可能取值中使
達到最大的那一個,極大似然估計法就是要選取這樣的t值作為參數t的估計值,使所選取的樣本在被選的總體中出現的可能性為最大。
5.3 jensen不等式
5.3.1 定義
設f是定義域為實數的函數,如果對于所有的實數X,f(x)的二次導數大于等于零,那么f是凸函數。Jensen不等式表述如下:如果f是凸函數,x是隨機變量,那么:E[f(X)]>=f(E[X]) 。當且僅當X是常量時,上式取等號。
5.3.2 eg
圖中,實線f是凸函數,X是隨機變量,有0.5的概率是a,有0.5的概率是b。X的期望值就是a和b的中值了,圖中可以看到E[f(X)]>=f(E[X])成立。 Jensen不等式應用于凹函數時,不等號方向反向。
5.4 算法推導
具體的計算過程如下:
固定好了Q(z),再去調整參數 Θ ,使得下界最大。
個人學習,借鑒如下文獻,在這里對原作者感到感謝。
致謝:https://www.zhihu.com/question/27670909
致謝:https://www.zhihu.com/question/20138060
致謝:https://blog.csdn.net/cxjoker/article/details/81878037
致謝:https://blog.csdn.net/weixin_41575207/article/details/82077800
致謝:https://baike.baidu.com/item/極大似然估計/3350286?fr=aladdin
致謝:https://blog.csdn.net/qq_39521554/article/details/79248993
致謝:https://www.cnblogs.com/vincentbnu/p/9503284.html
總結
以上是生活随笔為你收集整理的贝叶斯和EM算法简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas学习之df.sample
- 下一篇: qq2009 好像和金山词霸屏幕取词有冲