前言
如果你能找到這里恋捆,真是我的幸運(yùn)~這里是藍(lán)白絳的學(xué)習(xí)筆記东亦,本集合主要針對(duì)《百面機(jī)器學(xué)習(xí)——算法工程師帶你去面試》這本書。主要記錄我認(rèn)為重要的知識(shí)點(diǎn)扒披,希望對(duì)大家有幫助。
第八章 采樣
引導(dǎo)語(yǔ)
采樣圃泡,是從特定概率分布中抽取相應(yīng)樣本點(diǎn)的過(guò)程碟案。它可以將復(fù)雜的分布簡(jiǎn)化為離散的樣本點(diǎn);可以用重采樣對(duì)樣本集進(jìn)行調(diào)整以更好地適應(yīng)后期的模型學(xué)習(xí)颇蜡;可以用于隨機(jī)模擬以進(jìn)行復(fù)雜模型的近似求解或推理价说。另外辆亏,采樣在數(shù)據(jù)可視化方面也有很多應(yīng)用,可以幫助人們快速熔任、直觀地了解數(shù)據(jù)的結(jié)構(gòu)和特性。
1唁情、采樣的作用
- 采樣本質(zhì)上是對(duì)隨機(jī)現(xiàn)象的模擬疑苔,根據(jù)給定的概率分布,來(lái)模擬產(chǎn)生一個(gè)對(duì)應(yīng)的隨機(jī)事件甸鸟。采樣可以讓人們對(duì)隨機(jī)事件及其產(chǎn)生過(guò)程有更直觀的認(rèn)識(shí)惦费。例如通過(guò)對(duì)二項(xiàng)分布的采樣,可以模擬“拋硬幣出現(xiàn)正面還是反面”這個(gè)隨機(jī)事件抢韭,進(jìn)而模擬產(chǎn)生一個(gè)多次拋硬幣出現(xiàn)的結(jié)果序列薪贫,或者計(jì)算多次拋硬幣后出現(xiàn)正面的頻率。
另一方面刻恭,采樣得到的樣本集也可以看作是一種非參數(shù)模型瞧省,即用較少量的樣本點(diǎn)(經(jīng)驗(yàn)分布)來(lái)近似總體分布,并刻畫總體分布中的不確定性鳍贾。從這個(gè)角度來(lái)說(shuō)鞍匾,采樣其實(shí)也是一種信息降維,可以起到簡(jiǎn)化問(wèn)題的作用骑科。例如在訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí)橡淑,一般想要優(yōu)化的是模型在總體分布上的期望損失(期望風(fēng)險(xiǎn)),但訓(xùn)練時(shí)用上全部的數(shù)據(jù)集是不可能的咆爽,采集和存儲(chǔ)樣本的代價(jià)也非常大梁棠。因此一般采用總體分布的一個(gè)樣本集來(lái)作為總體分布的近似,稱為訓(xùn)練集斗埂。同理符糊,評(píng)估模型是看模型在另外一個(gè)樣本集(測(cè)試集)上的效果。這種信息降維的特性呛凶,使得采樣在數(shù)據(jù)可視化方面也有很多應(yīng)用濒蒋,它可以幫助人們快速、直觀地了解總體分布中數(shù)據(jù)的結(jié)構(gòu)和特性把兔。 - 重采樣可以充分利用現(xiàn)有數(shù)據(jù)集沪伙,挖掘更多信息,如自助法和刀切法(Jack knife)县好,通過(guò)對(duì)樣本多次重采樣來(lái)估計(jì)統(tǒng)計(jì)量的偏差围橡、方差等。
另外缕贡,利用重采樣技術(shù)翁授,可以在保持特定的信息下(目標(biāo)信息不丟失)拣播,有意識(shí)地改變樣本的分布,以更適應(yīng)后續(xù)的模型訓(xùn)練和學(xué)習(xí)收擦,例如利用重采樣來(lái)處理分類模型的訓(xùn)練樣本不均衡問(wèn)題贮配。 - 很多模型由于結(jié)構(gòu)復(fù)雜、含有隱變量等原因塞赂,導(dǎo)致求解公式比較復(fù)雜泪勒,沒(méi)有顯式解析解,難以進(jìn)行精確求解或推理宴猾。這時(shí)候可以用采樣方法進(jìn)行隨機(jī)模擬圆存,從而對(duì)復(fù)雜模型進(jìn)行近似求解或推理。這一般會(huì)轉(zhuǎn)化為某些函數(shù)在特定分布下的積分或期望仇哆,或者是求某些隨機(jī)變量或參數(shù)在給定數(shù)據(jù)下的后驗(yàn)分布等沦辙。
例如在隱狄利克雷模型和深度波爾茲曼機(jī)的求解過(guò)程中,由于含有隱變量讹剔,直接計(jì)算比較困難油讯,可以用吉布斯采樣對(duì)因變量的分布進(jìn)行采樣。如果對(duì)于貝葉斯模型延欠,還可以將因變量和參數(shù)變量放在一起撞羽,對(duì)他們的聯(lián)合分布進(jìn)行采樣。注意衫冻,不同于一些確定性的近似求解方法(如變分貝葉斯方法诀紊、期望傳播等),基于采樣的隨機(jī)模擬方法是數(shù)值型的近似求解方法隅俘。
2邻奠、均勻分布隨機(jī)數(shù)
- 均勻分布是指整個(gè)樣本空間中每個(gè)樣本點(diǎn)對(duì)應(yīng)的概率(密度)都是相等的。根據(jù)樣本空間是否連續(xù)为居,分為離散均勻分布和連續(xù)均勻分布碌宴。
計(jì)算機(jī)程序都是確定性的,因此并不能產(chǎn)生真正意義上的完全均勻分布隨機(jī)數(shù)蒙畴,只能產(chǎn)生偽隨機(jī)數(shù)(偽隨機(jī)數(shù)是指這些數(shù)字雖然是通過(guò)確定性的程序產(chǎn)生的贰镣,但是它們能通過(guò)近似的隨機(jī)性測(cè)試)。另外由于計(jì)算機(jī)的存儲(chǔ)和計(jì)算單元只能處理離散狀態(tài)值膳凝,因此也不能產(chǎn)生連續(xù)均勻分布隨機(jī)數(shù)碑隆,只能通過(guò)離散分布來(lái)逼近連續(xù)分布(用很大的離散空間來(lái)提供足夠的精度)。
一般可采用線性同余法(Linear Congruential Generator)來(lái)生成離散均勻分布偽隨機(jī)數(shù)蹬音,計(jì)算公式為也就是根據(jù)當(dāng)前生成的隨機(jī)數(shù)
來(lái)進(jìn)行適當(dāng)變換上煤,進(jìn)而產(chǎn)生下一次隨機(jī)數(shù)
。初始值
稱為隨機(jī)種子著淆,
為乘法因子劫狠。
線性同余法得到的隨機(jī)數(shù)并不是相互獨(dú)立的(下一次的隨機(jī)數(shù)根據(jù)當(dāng)前隨機(jī)數(shù)來(lái)產(chǎn)生)拴疤,且最多只能產(chǎn)生個(gè)不同的隨機(jī)數(shù),對(duì)于特定的種子独泞,很多數(shù)無(wú)法取到呐矾,循環(huán)周期基本達(dá)不到
。如果進(jìn)行多次操作懦砂,得到的隨機(jī)數(shù)序列會(huì)進(jìn)入循環(huán)周期蜒犯。因此,一個(gè)好的線性同余隨機(jī)數(shù)生成器孕惜,要讓其循環(huán)周期盡可能接近
愧薛,需要精心選擇合適的乘法因子
和模數(shù)
晨炕。
3衫画、常見的采樣方法
- 幾乎所有的采樣方法都是以均勻分布隨機(jī)數(shù)作為基本操作。假設(shè)已經(jīng)可以生成
上的均勻分布隨機(jī)數(shù)瓮栗,對(duì)于一些簡(jiǎn)單的分布削罩,可以直接用均勻采樣的一些擴(kuò)展方法來(lái)產(chǎn)生樣本點(diǎn),比如有限離散分布可以用輪盤賭算法來(lái)采樣费奸。很多分布一般不好直接進(jìn)行采樣弥激,可以考慮函數(shù)變換法。
一般地愿阐,如果隨機(jī)變量和
存在變量關(guān)系
微服,則他們的概率密度函數(shù)有如下關(guān)系:
因此,如果從目標(biāo)分布
中不好采樣
缨历,可以構(gòu)造一個(gè)變換
以蕴,使得從變換后的分布
中采樣
比較容易,這樣可以通過(guò)先對(duì)
進(jìn)行采樣辛孵,然后通過(guò)反函數(shù)
來(lái)間接得到
丛肮。如果是高維空間的隨機(jī)向量,則
對(duì)應(yīng)Jacobian行列式魄缚。
-
逆變換采樣(Inverse Transform Sampling):在函數(shù)變換法中宝与,如果變換關(guān)系
是
的累積分布函數(shù)的話,則得到所謂的逆變換采樣冶匹。假設(shè)待采樣的目標(biāo)分布的概率密度函數(shù)為
习劫,它的累積分布函數(shù)為
則逆變換采樣法按如下過(guò)程進(jìn)行采樣:
(1) 從均勻分布產(chǎn)生一個(gè)隨機(jī)數(shù)
;
(2) 計(jì)算嚼隘,其中
是累積分布函數(shù)的逆函數(shù)榜聂。
上述采樣過(guò)程得到的服從
分布,下圖是逆變換采樣法的示意圖嗓蘑。
8-3 逆變換采樣示意圖 - 如果待采樣的目標(biāo)分布的累積分布函數(shù)的逆函數(shù)無(wú)法求解或者不容易計(jì)算须肆,則不適用于逆變換采樣法匿乃。可以構(gòu)造一個(gè)容易采樣的參考分布豌汇,先對(duì)參考分布進(jìn)行采樣幢炸,然后對(duì)得到的樣本進(jìn)行一定的后處理操作,使得最終的樣本服從目標(biāo)分布拒贱。例如拒絕采樣(Rejection Sampling)宛徊、重要性采樣(Importance Sampling)。
-
拒絕采樣(Rejection Sampling):又叫接受/拒絕采樣(Accept-Reject Sampling)逻澳。對(duì)于目標(biāo)分布
闸天,選取一個(gè)容易采樣的參考分布
,使得對(duì)于任意
都有
斜做,則可以按如下過(guò)程進(jìn)行采樣:
(1) 從參考分布中隨機(jī)抽取一個(gè)樣本
苞氮;
(2) 從均勻分布產(chǎn)生一個(gè)隨機(jī)數(shù)
;
(3) 如果瓤逼,則接受樣本
笼吟;否則拒絕,回到(1)繼續(xù)產(chǎn)生樣本霸旗,直到樣本
被接受贷帮。
最終得到的服從目標(biāo)分布
,如下圖(a)所示诱告,拒絕采樣的關(guān)鍵是為目標(biāo)函數(shù)
選取一個(gè)合適的包絡(luò)函數(shù)
撵枢,包絡(luò)函數(shù)越緊,每次采樣時(shí)樣本被接受的概率越大精居,采樣效率越高锄禽。
在實(shí)際應(yīng)用中,為了維持采樣效率箱蟆,有時(shí)很難尋找一個(gè)解析形式的沟绪,因此延伸出了自適應(yīng)拒絕采樣(Adaptive Rejection Sampling),在目標(biāo)函數(shù)是對(duì)數(shù)凹函數(shù)時(shí)空猜,用分段線性函數(shù)來(lái)覆蓋目標(biāo)函數(shù)的對(duì)數(shù)
绽慈,如下圖(b)所示。
8-3 拒絕采樣示意圖 -
重要性采樣(Importance Sampling):很多時(shí)候采樣的最終目的不是為了得到樣本辈毯,而是為了進(jìn)行一些后續(xù)任務(wù)坝疼,如預(yù)測(cè)變量取值,通常表現(xiàn)為一個(gè)求函數(shù)期望的形式谆沃。重要性采樣就是用于計(jì)算函數(shù)
在目標(biāo)分布
上的積分(函數(shù)期望)钝凶,即
首先找一個(gè)比較容易抽樣的參考分布
,并令
唁影,則有
這里
可以看成是樣本
的重要性權(quán)重耕陷。由此可以從參考分布
中抽取
個(gè)樣本
掂名,然后利用如下公式來(lái)估計(jì)
:
下圖是重要性采樣的示意圖。
8-3 重要性采樣示意圖.jpg
如果不需要計(jì)算函數(shù)積分哟沫,只想從目標(biāo)分布中采樣出若干樣本饺蔑,則可以用重要性重采樣(Sampling-Importance Re-sampling,SIR)嗜诀,先在從參考分布
中抽取
個(gè)樣本
猾警,然后按照他們對(duì)應(yīng)的重要性權(quán)重
對(duì)這些樣本進(jìn)行重新采樣(這是一個(gè)簡(jiǎn)單的針對(duì)有限離散分布的采樣),最終得到樣本服從目標(biāo)分布
隆敢。
- 在實(shí)際應(yīng)用中发皿,如果是高維空間的隨機(jī)向量,拒絕采樣和重要性重采樣經(jīng)常難以尋找合適的參考分布拂蝎,采樣效率低下(樣本的接受概率小或重要性權(quán)重低)穴墅,可以考慮馬爾可夫蒙特卡洛采樣法,常見的有Metropolis-Hastings采樣法和吉布斯采樣法匣屡。
小結(jié)
這是本章的第一部分封救,講了采樣的作用拇涤,基本的均勻分布隨機(jī)數(shù)生成(線性同余法)捣作,和一些基本的采樣方法,如逆變換采樣鹅士、拒絕采樣券躁、重要性采樣。對(duì)這節(jié)內(nèi)容不太熟掉盅,基本是把書抄了一遍也拜。后面會(huì)繼續(xù)整理高斯采樣、馬爾可夫蒙特卡洛采樣趾痘、貝葉斯網(wǎng)絡(luò)的采樣以及處理不均衡數(shù)據(jù)集的各種重采樣方法慢哈。
結(jié)尾
如果您發(fā)現(xiàn)我的文章有任何錯(cuò)誤,或?qū)ξ业奈恼掠惺裁春玫慕ㄗh永票,請(qǐng)聯(lián)系我卵贱!如果您喜歡我的文章,請(qǐng)點(diǎn)喜歡~*我是藍(lán)白絳侣集,感謝你的閱讀键俱!