本文主要用于理解數(shù)據(jù)平滑的原理,并且重點(diǎn)介紹了幾種數(shù)據(jù)平滑的方法~
基本目錄如下:
數(shù)據(jù)平滑的本質(zhì)理解
1.1 為什么需要數(shù)據(jù)平滑拔稳?數(shù)據(jù)平滑的方法
2.1 加法平滑方法
2.2 Good-Turing估計(jì)法
2.3 Katz平滑方法
------------------第一菇 - 數(shù)據(jù)平滑的本質(zhì)理解------------------
1.1 為什么需要數(shù)據(jù)平滑?
在傳統(tǒng)AI領(lǐng)域,數(shù)據(jù)的平滑處理一般都是數(shù)據(jù)的預(yù)處理階段的核心步驟。簡單來說乃摹,平滑的本質(zhì)就是用來解決零概率問題的。這里跟衅,以自然語言處理中的語言模型為例孵睬,進(jìn)行展開理解。
當(dāng)我們構(gòu)建一個(gè)Bi-Gram的語言模型的時(shí)候伶跷,假設(shè)我們的語料庫為(參考《統(tǒng)計(jì)自然語言處理》第5章):
(“ BROWN READ HOLY BIBLE”,
“ MARK READ A TEXT BOOK”,
“HE READ A BOOK BY DAVID”)
則此時(shí)對(duì)于句子“BROWN READ A BOOK”掰读,我們可以利用最大似然的方法估計(jì)該句子的概率為,
根據(jù)上述語料庫叭莫,我們可以計(jì)算得到蹈集,
但如果我們對(duì)于一個(gè)句子“BROWN READ A PAPER”,我們同樣可以利用上述的思路去計(jì)算雇初,但是顯然拢肆,訓(xùn)練語料庫中,沒有一句話是以PAPER結(jié)尾的靖诗,那也就會(huì)造成該句的概率為善榛,
但這顯然不是我們希望看到的,因?yàn)樯牖琍APER這個(gè)詞作為結(jié)尾確實(shí)在訓(xùn)練語料庫中模型沒有見到移盆,但并不代表這句話的概率就應(yīng)該是0,或者說伤为,由于連乘的緣故咒循,凡是有一種情況不符合語料庫,那我們都會(huì)得到概率為0的情況绞愚,這其實(shí)是我們?cè)谟?xùn)練模型的時(shí)候不希望看到的事情(在其他自然語言處理任務(wù)中也會(huì)頻繁出現(xiàn)這樣的問題)叙甸,因此,我們必須分配給可能出現(xiàn)的情況一個(gè)非0的概率值來規(guī)避這種錯(cuò)誤的發(fā)生位衩。
而本文所要介紹的平滑就是用來解決這類零概率問題的裆蒸。其本質(zhì)核心就是“劫富濟(jì)貧”,即提高低概率糖驴,降低高概率僚祷,盡量使概率分布趨于均勻。
------------------第二菇 - 數(shù)據(jù)平滑的方法------------------
數(shù)據(jù)平滑由于其重要性贮缕,也是學(xué)界的重點(diǎn)研究方向辙谜。本文接下來就重點(diǎn)介紹一些方法。
2.1 加法平滑方法
在上述語言模型利用最大似然的思想來計(jì)算條件概率的時(shí)候感昼,我們可以總結(jié)出計(jì)算公式即為装哆,
而對(duì)于加法平滑方法,其本質(zhì)思想很簡單,就是假設(shè)每個(gè)二元語法出現(xiàn)的次數(shù)都比實(shí)際語料庫中出現(xiàn)的次數(shù)多k次蜕琴,其中當(dāng)k=1的時(shí)候萍桌,我們又稱為加一平滑或是拉普拉斯平滑,則上式就會(huì)改進(jìn)為凌简,
其中上炎。該平滑方法比較容易理解,也比較簡單号醉,但其實(shí)際的使用效果還要依使用場(chǎng)景而看反症。
2.2 古德-圖靈估計(jì)法
該種平滑方法是由I.J.Good引用圖靈(Turing)的方法提出來的。在介紹這個(gè)方法之前畔派,首先介紹一個(gè)概念铅碍,出現(xiàn)
次的單詞的個(gè)數(shù)。
舉個(gè)例子:Sam I am I am Sam I do not eat线椰。我們可以統(tǒng)計(jì)出單詞出現(xiàn)的個(gè)數(shù)為:
Sam - 2次
I - 3次
am - 2次
do - 1次
not - 1次
eat - 1次
那么我們可以統(tǒng)計(jì)出胞谈,
即出現(xiàn)3次的單詞有1個(gè)
即出現(xiàn)2次的單詞有2個(gè)
即出現(xiàn)1次的單詞有3個(gè)
介紹完了上面這個(gè)例子,我們?cè)賮斫榻BGood-Turning平滑方法憨愉。這里需要分兩種情況來討論烦绳,
1)對(duì)于沒有出現(xiàn)過的單詞,其計(jì)算方法為:
2)對(duì)于已經(jīng)出現(xiàn)過的單詞配紫,其計(jì)算方法為:
這里將繼續(xù)舉例為大家解釋径密。假設(shè)我們正在釣魚,而且已經(jīng)抓到來18只魚躺孝,其中10條鯉魚享扔,3條黑魚,2條刀魚植袍,1條鯊魚惧眠,1條草魚,1條鰻魚于个。
那么再試問下一條釣上來草魚的概率為多少氛魁?此時(shí)草魚為當(dāng)前出現(xiàn)過的魚,統(tǒng)計(jì)出出現(xiàn)次數(shù)為1的魚有3種厅篓,出現(xiàn)次數(shù)為2的魚有1種秀存,則利用上述公式可計(jì)算得出,
那么再試問下一條釣上來飛魚的概率為多少贷笛?此時(shí)飛魚為當(dāng)前未出現(xiàn)過的魚应又,統(tǒng)計(jì)出出現(xiàn)次數(shù)為1的魚有3種,則利用上述公式可計(jì)算得出乏苦,
因此,我們可以看出,如果是MLE的思想汇荐,則顯然草魚的概率為而飛魚的概率為0洞就。因?yàn)閷?duì)于一般的情況(之前出現(xiàn)過的事件),我們可以看到掀淘,
這也符合預(yù)期旬蟋,因?yàn)椋摲N平滑方法正是有的概率剩余量用于分配給了之前沒有發(fā)生過的情況革娄。
為了加深大家的理解倾贰,這邊我再多貼一張圖,用以表示在構(gòu)建語言模型的時(shí)候統(tǒng)計(jì)出來的一張表格拦惋,
這里其實(shí)就是統(tǒng)計(jì)了一份訓(xùn)練數(shù)據(jù)的結(jié)果匆浙,我們可以清晰看到大部分的單詞其實(shí)是沒有出現(xiàn)在訓(xùn)練語料之中的(7,514,941,065)的,而如果將這些統(tǒng)統(tǒng)置為0顯然是不合理的厕妖,因此利用上述古德-圖靈的平滑方法首尼,我們可以看到調(diào)整后的預(yù)期的count還是比較符合預(yù)期的(與后一列的測(cè)試數(shù)據(jù)基本出入不大)。
當(dāng)然整個(gè)古德-圖靈的方法并不是完美的言秸,其最大的缺點(diǎn)就是软能,如果我的為0咋辦?就比如計(jì)算上式的
為0举畸,則我們的
計(jì)算就會(huì)有問題查排。因此,當(dāng)實(shí)際的應(yīng)用場(chǎng)景中碰到這樣的情況時(shí)抄沮,我們一般會(huì)采用另一種曲線平滑(比如機(jī)器學(xué)習(xí)算法去擬合)的方法跋核,來彌補(bǔ)上缺陷值,然后再通過古德-圖靈的方法去繼續(xù)數(shù)據(jù)處理的工作合是。
2.3 Katz平滑方法
這種方法其本質(zhì)是一種后備的平滑方法了罪。其基本的思路就是當(dāng)事件在樣本中出現(xiàn)的頻次大于某一數(shù)值的時(shí)候,運(yùn)用最大似然估計(jì)方法聪全,通過減值來估計(jì)其概率值泊藕,而當(dāng)事件的頻次小于
的時(shí)候,使用低階的語法模型作為代替高階語法模型的后備难礼,但這種代替受歸一化因子的約束【1】娃圆。簡單來講,該方法仍是古德-圖靈方法的延伸蛾茉,其本質(zhì)思想依然是將一部分的概率剩余量分配給未知事件讼呢,但與上一種平均分配的思想不同,該方法認(rèn)為我們可以通過低階的模型(語言模型里面就由2階降為1階等)來近似擬合每一個(gè)未知事件的權(quán)重谦炬,從而重新分配概率剩余量悦屏。具體的數(shù)學(xué)公式理解本文將不作展開节沦,而與之相關(guān)的平滑方法還包括比如Kneser-Ney, Witten-Bell等。有興趣的同學(xué)可以翻閱宗成慶老師的《統(tǒng)計(jì)自然語言處理》一書础爬,來仔細(xì)研讀甫贯。
簡單總結(jié)一下本文,先是講述了一些數(shù)據(jù)平滑處理的背景看蚜,幫助大家理解認(rèn)識(shí)到數(shù)據(jù)平滑的必要性叫搁。隨后,又附上了多種現(xiàn)今流行的數(shù)據(jù)處理的平滑方法供炎。希望大家讀完本文后對(duì)機(jī)器學(xué)習(xí)中的數(shù)據(jù)平滑處理這一塊有全新的認(rèn)識(shí)渴逻。有說的不對(duì)的地方也請(qǐng)大家指出,多多交流音诫,大家一起進(jìn)步~??
參考文獻(xiàn):
【1】《統(tǒng)計(jì)自然語言處理-第五章》