????????大家好,歡迎來到《分享本周所學》第六期。本人是一名人工智能初學者,因為馬上要上大學了嘛,就想著提前稍微預習一下大一課程。我預習的這門課叫Mathematical Techniques for Computer Science,是一門針對計算機的數(shù)學課,所以這里面有很多內容會面向數(shù)學在計算機當中的實際應用。最近一周我學了一下基礎的概率論,然后發(fā)現(xiàn)這里面有貝葉斯更新這個內容。我一想,這不是機器學習的內容嗎,就覺得好像挺有意思還有點用,所以想把學到的東西分享給大家。
????????這篇文章主要參考了曼徹斯特大學一年級課程Mathematical Techniques for Computer Science的教材。教材是公開的,鏈接如下:
目錄
一、學貝葉斯更新需要知道點啥啊
1. 條件概率
2. 全概率公式
二、啥是貝葉斯更新啊
1. 先驗概率
2. 似然
3. 證據(jù)因子
4. 后驗概率
5. 復習一遍貝葉斯更新流程
????????2023年5月10日更新:其實應該早點在這更新一下的。目前爐石傳說和絕大部分其他暴雪游戲的國服都已經(jīng)停服幾個月了,之后看到這篇文章的人里面可能玩過爐石傳說的會越來越少,大家可以帶入一下自己喜歡的其他卡牌游戲的職業(yè)和牌名。委屈大家了。
????????9月20日更新:很抱歉,教材現(xiàn)在似乎只對在讀學生公開了,根據(jù)學校的教學內容版權要求,我不得不移除文章內的所有教材鏈接,請大家諒解。
上期文章鏈接:https://blog.csdn.net/weixin_48978134/article/details/125770821https://blog.csdn.net/weixin_48978134/article/details/125770821
本期封面:
?一、學貝葉斯更新需要知道點啥啊
? ? ? ? 貝葉斯更新是需要一點點前置知識的,但僅僅是一點點。你只需要知道什么是條件概率和全概率公式就可以了。如果你已經(jīng)知道了的話,可以直接看第二章。
1. 條件概率
? ? ? ? 顧名思義,條件概率就是滿足一些條件的情況下,某個事件發(fā)生的概率。什么意思呢?舉個非常常見的例子。有一天,我閑的沒事,決定讓你猜我的電腦多少錢,然后給了你兩個選項:5000塊左右和10000塊左右。
? ? ? ? 我們假設世界上所有的電腦都只有5000塊左右和10000塊左右這兩個價位,有70%的人用5000塊左右的電腦,剩下30%的人用10000塊左右的電腦。我們可以根據(jù)這個數(shù)據(jù)來畫一個非常簡陋的表格:
? ? ? ? 我們用P(A)來表示一個事件A發(fā)生的概率。根據(jù)這個表格,你可以輕易的推斷出P(我的電腦5000塊左右)>P(我的電腦10000塊左右),所以,你理所當然會猜我的電腦5000塊左右。
? ? ? ? 但是,這時我們給表格引入一個新的維度:
? ? ? ? 此時,你得知我開的車在一百萬以上,那么也許你就要改變自己的猜測了,因為你要比較的兩個概率從P(我的電腦5000塊左右)和P(我的電腦10000塊左右)變成了P(我的電腦5000塊左右|我開一百萬以上的車)和P(我的電腦10000塊左右|我開一百萬以上的車)。P(A|B)表示A在B發(fā)生的條件下發(fā)生的概率,我們把這種概率稱作條件概率。
? ? ? ? 那怎么計算條件概率呢?其實就是用一個非常簡單公式:
? ? ? ? 這里表示A和B同時發(fā)生的概率,稱作A和B的聯(lián)合概率。
? ? ? ? 這個公式其實很好理解,A在B發(fā)生的條件下發(fā)生的概率,其實就是A和B同時發(fā)生的概率在B發(fā)生的概率里所占的比例。根據(jù)上面的表格,我們知道P(我的電腦5000塊左右我開一百萬以上的車)是0.002,而P(我的電腦10000塊左右|我開一百萬以上的車)是0.008。
? ? ? ? 根據(jù)這個公式,我們可以計算出了P(我的電腦5000塊左右|我開一百萬以上的車)是0.2,而P(我的電腦10000塊左右|我開一百萬以上的車)是0.8。因此,顯然猜我的電腦在10000左右是更好的選擇。
? ? ? ? 然而現(xiàn)實中我既沒有10000左右的電腦也沒有一百萬的車。唉……
2. 全概率公式
? ? ? ? 什么是全概率公式呢?我們再看一個例子。
? ? ? ? 你現(xiàn)在想計算我出門帶傘的概率。不管是晴天、陰天還是雨天,我都有可能出門帶傘。但是顯然啊,在不同的天氣下我出門帶傘的概率是不同的。假設我晴天有1%的概率帶傘、陰天有30%的概率帶傘、雨天有90%的概率帶傘。另外,你還知道,我住的城市有50%的概率是晴天,有30%的概率是陰天,有20%的概率是雨天。那么,綜合以上這些信息,我在任意一天出門帶傘的概率是多少呢?
? ? ? ? 這就要用到全概率公式了:
? ? ? ? 如果寫得簡潔一點就是:
? ? ? ? 這里面,A是我們要計算概率的事件,,,,…,是兩兩互斥的事件,并且它們的概率之和為1。為了以防有人不知道,這里提一句,如果兩個事件是互斥事件,說明它們不可能同時發(fā)生。
? ? ? ? 這個公式也很好理解。我們要計算一個事件發(fā)生的概率,可以把這個事件拆分成不同的情況,每種情況下A發(fā)生的概率就是公式中的,然后再乘上發(fā)生這種情況的可能性,也就是。
? ? ? ? 我們這里要計算的是P(我出門帶傘),那么我們可以把它拆分成P(我出門帶傘|今天是晴天)×P(今天是晴天)+P(我出門帶傘|今天是陰天)×P(今天是陰天)+P(我出門帶傘|今天是雨天)×P(今天是雨天)。晴天、陰天、雨天顯然是互斥事件,而且它們的概率之和為1,因此我們可以使用全概率公式。我們把上面的條件帶入公式,就可以得到我任何一天出門帶傘的概率是0.275。
二、啥是貝葉斯更新啊
? ? ? ? 要想搞清楚貝葉斯更新,我們要先搞清楚四個概念:先驗概率、后驗概率、證據(jù)和似然。這四個概念聽起來很高級,但其實很好理解。為了方便理解,我們設想這樣一個場景。你正在玩一個叫作《爐石傳說》的卡牌游戲,這個卡牌游戲允許你選擇一些卡牌來組成一個套牌,然后再用這個套牌去與其他玩家對戰(zhàn)。對戰(zhàn)過程中,雙方并不能知道對方的套牌,但是可以根據(jù)對方使用的卡牌來進行猜測。作為一個新手,你總是被一些自己預料不到的牌扭轉局勢,因此,你認為在對戰(zhàn)中猜測對手的套牌是很有必要的。在一場對戰(zhàn)中,你決定要用貝葉斯更新來猜測對方的套牌。
1. 先驗概率
????????在開始測之前,你覺得自己應該先預估一下對方有可能使用什么套牌。這個卡牌游戲有10個職業(yè),每個職業(yè)能夠使用的套牌都不同。在對戰(zhàn)開始前,你可以看到對方的職業(yè),所以你也可以根據(jù)對方的職業(yè)來預估對方的套牌。假設你看到對方是德魯伊,德魯伊常見的套牌有:亡語德魯伊(亡語德)、快攻德魯伊(快攻德)、德納修斯大帝德魯伊(大帝德)和超凡之盟德魯伊(超凡德)(數(shù)據(jù)來源于2022年9月標準天梯)。但是,你并不能確定對方到底是這四個套牌中的哪一個。因此,你將這四個套牌的預估概率全部設為0.25。
? ? ? ? 這樣以來,我們就得到了一個概率表。這個概率表就是先驗概率,表示進行貝葉斯更新之前預估的概率。
2. 似然
? ? ? ? 第一回合,你的對手使用了一張卡牌,是暗礁德魯伊!可惡,竟然在第一回合就使用了如此強大的卡牌,看來對手的實力不容小覷。你并沒有被這張暗礁德魯伊打得不知所措,而是冷靜下來,開始分析對手的套牌。你將“對手第一回合使用了暗礁德魯伊”這個事件記為事件。
????????快攻德、大帝德和超凡德都有可能攜帶暗礁德魯伊,但這三個套牌第一回合打出暗礁德魯伊的概率并不是均等的。而亡語德則不太可能攜帶暗礁德魯伊。我們可以根據(jù)下面的表格來描述不同套牌第一回合打出暗礁德魯伊的概率。?
? ? ? ? 這個表格就是我們的似然。那具體什么是似然呢?可以說似然是一個和概率相反的概念。概率是根據(jù)已知的條件計算某個事件發(fā)生的可能性,而似然則是通過發(fā)生的事件去反推概率。比如,在我們的例子中,發(fā)生的事件是“對手第一回合使用暗礁德魯伊”,而大帝德第一回合使用暗礁德魯伊的概率是最大的,我們就可以反推出對方的套牌有較大概率是大帝德。
? ? ? ? 有的朋友可能要問了,這個似然是怎么算出來的呢?嗯,這個是我根據(jù)這四個德魯伊套牌攜帶暗礁德魯伊的情況和一般情況下的出牌思路估出來的,不一定準。如果你認為我給出的似然有問題,以你為準。
3. 證據(jù)因子
? ? ? ? 得到先驗概率和似然之后,我們還差一步就可以進行貝葉斯更新了。我們現(xiàn)在需要計算證據(jù)因子。
? ? ? ? 什么是證據(jù)因子呢?我們在根據(jù)觀察到的某個事件去估計其他事件發(fā)生的概率時,我們觀察到的事件發(fā)生的概率就是證據(jù)因子。比如在這個例子中,我們根據(jù)事件估計“對方的套牌是亡語德/快攻德/大帝德/超凡德”的概率,那么P()就是證據(jù)因子。
? ? ? ? 那怎么計算對方第一回合使用暗礁德魯伊的概率呢?這里可以使用全概率公式,把P()轉化成P(|亡語德)×P(亡語德)+P(|快攻德)×P(快攻德)+P(|大帝德)×P(大帝德)+P(|超凡德)×P(超凡德)。我們可以計算出結果為0.13。
4. 后驗概率
? ? ? ? 現(xiàn)在,我們已經(jīng)有了先驗概率、似然和證據(jù)因子,可以計算用貝葉斯更新來計算后驗概率了。我們先來看一下貝葉斯更新的公式:
? ? ? ? 這里面,Φ是我們要使用貝葉斯更新計算概率的事件,也就是“對方的套牌是亡語德/快攻德/大帝德/超凡德”,而a是我們觀察到的事件,也就是“第一回合使用暗礁德魯伊”。相信大家可以看出來,等式右側的P(a|Φ)是似然,P(Φ)是先驗概率,而P(a)是證據(jù)因子。等式左側的P(Φ|a)就是后驗概率,也是我們要計算的概率。
? ? ? ? 我們以亡語德為例。對方套牌是亡語德的后驗概率P(亡語德|)=P(|亡語德)×P(亡語德)÷P()=0.019。我們也可以用同樣的方法算出P(快攻德|)=0.138、P(大帝德|)=0.549、P(超凡德|)=0.294。我們可以驗算一下,0.019+0.138+0.549+0.294剛好等于1。
????????這樣,根據(jù)對手第一回合使用了暗礁德魯伊這一事件,我們就可以推出對手的套牌為亡語德、快攻德、大帝德和超凡德的概率分別為:
? ? ? ? 這就是一次完整的貝葉斯更新的流程:估計先驗概率、計算似然和證據(jù)因子、利用貝葉斯更新公式計算后驗概率。
? ? ? ? 雖然我們現(xiàn)在還沒有足夠的證據(jù)來證明對手使用的具體是什么套牌,但已經(jīng)基本能夠排除對方不是亡語德了。為了進一步確定對手使用的套牌,我們還需要繼續(xù)觀察對手出的牌,并使用貝葉斯更新計算新的概率。注意,我們前一次貝葉斯更新中算出的后驗概率,會在下一次貝葉斯更新中作為先驗概率。
5. 復習一遍貝葉斯更新流程
? ? ? ? 第二回合,你的對手使用了應急木工!不妙,又是一張如此強力的卡牌,僅僅花費兩點法力水晶,就獲得了兩張額外的卡牌,還在戰(zhàn)場上召喚了一個足足有兩點攻擊力的可怕怪物!
? ? ? ? 沉著冷靜的你將對手第二回合使用應急木工記為事件。你腦中飛快地將似然計算了出來:
? ? ? ? 隨后,將之前計算出的后驗概率作為新的一次貝葉斯更新的先驗概率,又計算出了證據(jù)因子:P()=P(|亡語德)×P(亡語德)+P(|快攻德)×P(快攻德)+P(|大帝德)×P(大帝德)+P(|超凡德)×P(超凡德)=0.3。
? ? ? ? 最后,根據(jù)貝葉斯更新公式,你計算出了新的后驗概率:
文章來源:http://www.zghlxwxcb.cn/news/detail-799104.html
????????你可以認為對手的套牌有很大概率是大帝德了(唉,怎么又是大帝德啊)。文章來源地址http://www.zghlxwxcb.cn/news/detail-799104.html
到了這里,關于分享本周所學——概率論:貝葉斯更新詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!