0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探索A/B測(cè)試的貝葉斯方法背后的理論

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-08-14 09:40 ? 次閱讀

編者按:和Google產(chǎn)品分析Zlatan Kremonic一起探索A/B測(cè)試的貝葉斯方法背后的理論。

本文將探索A/B測(cè)試的貝葉斯方法背后的理論。這一方法最近得到了廣泛認(rèn)同,并在一些情形下取代了流行的頻率方法。在講述理論之后,我們將查看一個(gè)實(shí)例。

頻率統(tǒng)計(jì)

頻率統(tǒng)計(jì)以收集數(shù)據(jù)、測(cè)試假設(shè)這一傳統(tǒng)方法為中心。頻率統(tǒng)計(jì)分為以下步驟:

形式化假設(shè)。

收集數(shù)據(jù)。

計(jì)算基本的測(cè)試統(tǒng)計(jì),包括p值和置信區(qū)間。

決定是否駁回零假設(shè)(null hypothesis)。

頻率統(tǒng)計(jì)的重要假定是參數(shù)是確定的,不過我們并不知曉。我們接下來收集的數(shù)據(jù)是那些參數(shù)及其分布的一個(gè)函數(shù)。用數(shù)學(xué)可以表達(dá)為:

其中X是數(shù)據(jù)樣本,θ是零假設(shè)下的數(shù)據(jù)分布,戴帽θ是觀測(cè)到的參數(shù)。

總結(jié)科研報(bào)告的數(shù)據(jù)時(shí),這一方法非常有用。置信區(qū)間的應(yīng)用為我們提供了非常直觀地理解觀測(cè)到的參數(shù)的方式。不過,這一頻率方法有一些缺陷:

當(dāng)我們發(fā)現(xiàn)p值明顯增加時(shí),較早停止測(cè)試會(huì)增加得到假陽性結(jié)果的幾率。

我們無法測(cè)量研究結(jié)論為真的概率。

p值容易被誤解。

試驗(yàn)必須全部事先指定,這可能導(dǎo)致看起來自相矛盾的結(jié)果。

多臂老虎機(jī)問題

在我們跳到貝葉斯推理之前,先在一個(gè)有用(且經(jīng)典)的場(chǎng)景下考察我們的問題,這很重要。在多臂老虎機(jī)問題中,我們?cè)谝患屹€場(chǎng)玩老虎機(jī)。給定不是所有的老虎機(jī)返水率相同這一條件,如果我們同時(shí)玩兩臺(tái)老虎機(jī),我們將開始發(fā)現(xiàn)兩臺(tái)老虎機(jī)的結(jié)果不同。這導(dǎo)致了“探索v.s.利用困境”,迫使我們決定到底是利用高返水的機(jī)器,還是探索(隨機(jī))選項(xiàng)以收集更多數(shù)據(jù)。不管我們選擇利用的程度如何,我們都在讓我們的行為適應(yīng)觀測(cè)數(shù)據(jù),這正是強(qiáng)化學(xué)習(xí)的一般假定之一。我們的目標(biāo)是通過提高我們正做出正確決策的確定性,最大化返水,最小化損失。

處理多臂老虎機(jī)問題有很多策略,包括Epsilon-Greedy算法和UCB1算法,不過,也該讓貝葉斯推理出場(chǎng)了。

貝葉斯統(tǒng)計(jì)

貝葉斯統(tǒng)計(jì)以貝葉斯定理為中心:

在我們?cè)噲D得出關(guān)于給定數(shù)據(jù)集的參數(shù)的結(jié)論的科研問題中,我們可以將參數(shù)視作隨機(jī)變量(有自己的分布):

這里,

P(θ|X)稱為后驗(yàn),意為給定數(shù)據(jù)X,關(guān)于參數(shù)θ的新信念。

P(X|θ)稱為似然,回答給定當(dāng)前參數(shù)θ有多大可能觀測(cè)到我們的數(shù)據(jù)。

P(θ)是先驗(yàn),意為我們關(guān)于θ的舊信念。

P(X)是P(X|θ)P(θ)dθ的積分,但因?yàn)樗⒉话?,可以直接忽略這一點(diǎn),將它作為一個(gè)歸一化常量。

現(xiàn)在我們看到了貝葉斯范式轉(zhuǎn)變。和頻率方法不同,這里我們收集數(shù)據(jù)的前后都考慮到了參數(shù)的分布。知曉參數(shù)的分布讓我們可以給參數(shù)估計(jì)分配給定的置信度。

但我們?nèi)绾沃獣院篁?yàn)分布呢?答案在“共軛先驗(yàn)”這一概念之中:如果先驗(yàn)概率分布和后驗(yàn)概率分布同屬一個(gè)家族,那么它們稱為共軛分布,且先驗(yàn)稱為似然函數(shù)的共軛先驗(yàn)。簡(jiǎn)單來說,如果我們知道似然函數(shù)的分布,我們就可以確定后驗(yàn)和先驗(yàn)的分布。

讓我們來看一個(gè)例子,假設(shè)我們正測(cè)量點(diǎn)擊率(某人是否點(diǎn)擊一則廣告)。因?yàn)槲覀儨y(cè)量的是二值輸出(點(diǎn)擊、沒點(diǎn)擊),所以我們處理的是伯努利分布,這意味著似然為:

伯努利分布的共軛先驗(yàn)是貝塔分布:

其中B(a, b)為貝塔函數(shù)。

我們需要求解后驗(yàn),首先結(jié)合似然和后驗(yàn):

上式可以簡(jiǎn)化為:

因此,我們可以看到,事實(shí)上P(θ|X)確實(shí)屬于貝塔分布,只不過超參數(shù)略有變動(dòng)。由此我們得到:

其中,

在我們的點(diǎn)擊率問題中,a' = a + 點(diǎn)擊數(shù),b' = b + 未點(diǎn)擊數(shù)。

直覺上,這很合理。因?yàn)樗嬖V我們,后驗(yàn)分布是收集數(shù)據(jù)的函數(shù),且后驗(yàn)分布可以用作更多樣本的先驗(yàn),其中的超參數(shù)直接加上新得到的額外信息。

進(jìn)一步查看下貝塔分布,我們注意到這一分布的均值為:

這和最大化似然時(shí)得到的值相同。最后,當(dāng)a和b增加時(shí),貝塔分布的方差遞減,可類比頻率方法中置信區(qū)間的表現(xiàn):

例子:湯普森采樣

在這個(gè)例子中,我們將演示如何使用湯普森采樣基于貝葉斯推理解決多臂老虎機(jī)問題。我們將使用2000次測(cè)試,而三臂的返水率為0.2、0.5、0.75. 首先,我們定義具有給定概率的Bandit(老虎機(jī))類。該類提供一個(gè)pull(拉)方法,基于其概率返回獎(jiǎng)勵(lì)或損失(1或0)。我們也能更新a、b,并使用這些值從所得貝塔分布中取樣。

importmatplotlib.pyplotasplt

importnumpyasnp

fromscipy.statsimportbeta

NUM_TRIALS =2000

BANDIT_PROBABILITIES = [0.2,0.5,0.75]

classBandit(object):

def__init__(self, p):

self.p = p

self.a =1

self.b =1

defpull(self):

return1ifnp.random.random() < self.pelse0

defsample(self):

returnnp.random.beta(self.a, self.b)

defupdate(self, x):

self.a += x

self.b +=1- x

下面,我們將定義一個(gè)函數(shù)繪制老虎機(jī)的貝塔分布:

defplot(bandits, trial):

x = np.linspace(0,1,200)

forbinbandits:

y = beta.pdf(x, b.a, b.b)

plt.plot(x, y, label="real p: %.4f"% b.p)

plt.title("Bandit distributions after %s trials"% trial)

plt.legend()

plt.show()

現(xiàn)在,開始我們的試驗(yàn)。首先,我們初始化三臺(tái)老虎機(jī)。我們將根據(jù)預(yù)先確定的sample_points繪制它們的分布。每次測(cè)試時(shí),我們從每臺(tái)老虎機(jī)的分布中取樣,并選擇返水率最高的老虎機(jī)。被選中的老虎機(jī)將有機(jī)會(huì)拉動(dòng)它的拉桿,進(jìn)而更新其a、b值。

defexperiment():

bandits = [Bandit(p)forpinBANDIT_PROBABILITIES]

sample_points = [5,50,100,500,1999]

foriinxrange(NUM_TRIALS):

# 從每個(gè)老虎機(jī)取樣

bestb =None

maxsample = -1

allsamples = []# 收集這些數(shù)據(jù)以便調(diào)試時(shí)打印

forbinbandits:

sample = b.sample()

allsamples.append("%.4f"% sample)

ifsample > maxsample:

maxsample = sample

bestb = b

ifiinsample_points:

print"current samples: %s"% allsamples

plot(bandits, i)

# 拉動(dòng)樣本最大的老虎機(jī)的拉桿

x = bestb.pull()

# 更新剛剛拉動(dòng)拉桿的老虎機(jī)的分布

bestb.update(x)

調(diào)用experiment()函數(shù)可以進(jìn)行測(cè)試。

測(cè)試5次后

測(cè)試50次后

測(cè)試100次后

測(cè)試500次后

測(cè)試1999次后

從試驗(yàn)中,我們可以觀察到一些有趣的東西。我們注意到每個(gè)分布的均值逐漸向真值收斂。不過我們看到,高返水的老虎機(jī)的方差最低,這反映了它具有最高的N。然而,這未必是一個(gè)問題,因?yàn)樽詈蠓邓罡叩姆植己推渌麅蓚€(gè)較低的分布幾乎沒有重疊的部分,這意味著從較差的老虎機(jī)取樣將產(chǎn)生較高返水的概率是最小的。

結(jié)果概率

基于湯普森采樣的貝葉斯推斷的另一優(yōu)勢(shì)是我們可以計(jì)算給定結(jié)果優(yōu)于替代選擇的概率。例如,如果我們正測(cè)量?jī)蓚€(gè)競(jìng)爭(zhēng)頁面的點(diǎn)擊率,期望回報(bào)將是后驗(yàn)分布的均值。那么,給定均值高于另一均值的概率,可以通過計(jì)算兩者的聯(lián)合概率分布函數(shù)之下的面積得到。假設(shè)均值二高于均值一,則:

結(jié)論

就A/B測(cè)試問題而言,貝葉斯推理和頻率方法之間沒有明顯的贏家,在選擇一種方法之前最好首先評(píng)估場(chǎng)景。參考鏈接部分的最后一個(gè)鏈接提供了關(guān)于何處適用老虎機(jī)測(cè)試(包括湯普森采樣)的一些要領(lǐng)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 貝葉斯
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    12579
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24730

原文標(biāo)題:基于湯普森采樣的貝葉斯A/B測(cè)試

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常用的分類方法:樸素

    統(tǒng)計(jì)學(xué)習(xí)方法樸素
    發(fā)表于 11-05 09:24

    對(duì)樸素算法的理解

    我對(duì)樸素算法的理解
    發(fā)表于 05-15 14:13

    使用PyMC3包實(shí)現(xiàn)線性回歸

    1、如何使用PyMC3包實(shí)現(xiàn)線性回歸  PyMC3(現(xiàn)在簡(jiǎn)稱為PyMC)是一個(gè)建模包
    發(fā)表于 10-08 15:59

    基于應(yīng)變模態(tài)和方法的桿件損傷識(shí)別

    基于應(yīng)變模態(tài)和方法的桿件損傷識(shí)別 提出了一種基于空間桿系結(jié)構(gòu)應(yīng)變模態(tài)和
    發(fā)表于 10-24 15:02 ?15次下載

    網(wǎng)絡(luò)精確推理算法的研究

    網(wǎng)絡(luò)是以概率理論為基礎(chǔ)的不確定知識(shí)表示模型,
    發(fā)表于 08-15 09:34 ?38次下載

    算法(bayesian)介紹

    是基于概率的一種算法,是Thomas Bayes:一位偉大的數(shù)學(xué)大師所創(chuàng)建的。
    發(fā)表于 06-01 17:58 ?0次下載

    基于壓縮感知理論的超寬帶通信信道估計(jì)

    基于壓縮感知理論的超寬帶通信信道估計(jì)_王蔚東
    發(fā)表于 01-07 16:00 ?0次下載

    網(wǎng)絡(luò)分析

    網(wǎng)絡(luò)
    發(fā)表于 03-31 10:40 ?2次下載

    如何理解公式

    前言 大家經(jīng)??吹降?b class='flag-5'>貝公式(Bayes)是寫成如下圖的形式,通常以P(A|B),P(B|
    發(fā)表于 02-02 14:13 ?3932次閱讀
    如何理解<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>公式

    基于概率的常見的分類方法--樸素

    本文介紹機(jī)器學(xué)習(xí)中一種基于概率的常見的分類方法,樸素,之前介紹的KNN, decision tree 等方法是一種 hard deci
    的頭像 發(fā)表于 02-03 14:37 ?5248次閱讀
    基于概率的常見的分類<b class='flag-5'>方法</b>--樸素<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>

    樸素NB經(jīng)典案例

    分類算法是統(tǒng)計(jì)學(xué)的一種分類方法,其分類原理就是利用
    發(fā)表于 02-28 10:17 ?2次下載

    統(tǒng)計(jì)的一個(gè)實(shí)踐案例讓你更快的對(duì)算法有更多的了解

    為了大家可以對(duì)算法有更多的了解,為大家整理過一篇關(guān)于算法的文章。今天將為大家介紹利用
    的頭像 發(fā)表于 07-16 17:15 ?1.5w次閱讀

    一文秒懂優(yōu)化/Bayesian Optimization

    ,大神/優(yōu)化專家們求輕噴,覺得不錯(cuò)的記得幫點(diǎn)贊/在看/轉(zhuǎn)發(fā)幫擴(kuò)散哦!謝謝。 梳理這個(gè)問題有這么兩個(gè)原因: 1、在工業(yè)界,最近我看到不少同學(xué)在探索并使用
    的頭像 發(fā)表于 04-09 11:26 ?1.7w次閱讀
    一文秒懂<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>優(yōu)化/Bayesian Optimization

    樸素分類 樸素算法的優(yōu)點(diǎn)

    樸素方法是在算法的基礎(chǔ)上進(jìn)行了相應(yīng)的簡(jiǎn)化
    的頭像 發(fā)表于 10-02 17:14 ?9354次閱讀

    濾波和卡爾曼濾波的區(qū)別

    濾波和卡爾曼濾波是兩種常用的濾波方法,它們?cè)谛盘?hào)處理、導(dǎo)航、機(jī)器人定位等領(lǐng)域有著廣泛的應(yīng)用。
    的頭像 發(fā)表于 08-01 15:25 ?702次閱讀