日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“噪声对比估计”杂谈:曲径通幽之妙

發(fā)布時(shí)間:2024/10/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “噪声对比估计”杂谈:曲径通幽之妙 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


作者丨蘇劍林

單位丨廣州火焰信息科技有限公司

研究方向丨NLP,神經(jīng)網(wǎng)絡(luò)

個(gè)人主頁丨kexue.fm


說到噪聲對比估計(jì),或者“負(fù)采樣”,大家可能立馬就想到了 Word2Vec。事實(shí)上,它的含義遠(yuǎn)不止于此,噪音對比估計(jì)(NCE, Noise Contrastive Estimation)是一個(gè)迂回但卻異常精美的技巧,它使得我們在沒法直接完成歸一化因子(也叫配分函數(shù))的計(jì)算時(shí),就能夠去估算出概率分布的參數(shù)。本文就讓我們來欣賞一下 NCE 的曲徑通幽般的美妙。?


注:由于出發(fā)點(diǎn)不同,本文所介紹的“噪聲對比估計(jì)”實(shí)際上更偏向于所謂的“負(fù)采樣”技巧,但兩者本質(zhì)上是一樣的,在此不作區(qū)分。


問題起源


問題的根源是難分難舍的指數(shù)概率分布。


指數(shù)族分布


在很多問題中都會(huì)出現(xiàn)指數(shù)族分布,即對于某個(gè)變量 x 的概率 p(x),我們將其寫成:



其中 G(x) 是 x 的某個(gè)“能量”函數(shù),而則是歸一化常數(shù),也叫配分函數(shù)。這種分布也稱為“玻爾茲曼分布”。


在機(jī)器學(xué)習(xí)中,指數(shù)族分布的主要來源有兩個(gè)。第一個(gè)來源是 softmax:我們做分類預(yù)測時(shí),通常最后都會(huì)將全連接層的結(jié)果用 softmax 激活,這就是一個(gè)離散的、有限個(gè)點(diǎn)的玻爾茲曼分布了;第二個(gè)則是來源于最大熵原理:當(dāng)我們引入某個(gè)特征并且已經(jīng)能估算出特征的期望時(shí),最大熵模型告訴我們其分布應(yīng)該是特征的指數(shù)形式。


難算的配分函數(shù)


總的來說,指數(shù)族分布是非常實(shí)用的一類分布,不論是機(jī)器學(xué)習(xí)、數(shù)學(xué)還是物理領(lǐng)域,都能夠碰見它。然而,它卻有一個(gè)比較大的問題:不容易算,準(zhǔn)確來說是配分函數(shù)不容易算。


具體來說,不好算的原因可能有兩個(gè)。一個(gè)是計(jì)算量太大,比如語言模型(包括 Word2Vec)的場景,因?yàn)橐ㄟ^上下文來預(yù)測當(dāng)前詞的分布情況,這就需要對幾十萬甚至幾百萬項(xiàng)(取決于詞表大小)進(jìn)行求和來算歸一化因子,這種情況下不是不能算,而是計(jì)算量大到難以承受了。


另一種情況是根本算不出來,比如假設(shè)那么就有:



這積分根本就沒法簡單地算出來呀,更不用說更加復(fù)雜的函數(shù)了。現(xiàn)在我們也許能從這個(gè)角度感受到為什么高斯分布那么常用了,因?yàn)?#xff0c;因?yàn)?#xff0c;因?yàn)?#xff0c;換個(gè)分布就沒法算下去了……


在機(jī)器學(xué)習(xí)中,如果只是分類、預(yù)測,那么歸一化因子算不算出來都無所謂,因?yàn)槲覀冎灰鄬Ρ容^取出最大的那個(gè)。但是在預(yù)測之前,我們還面臨著訓(xùn)練的問題,也就是參數(shù)估計(jì),具體來說,G(x) 其實(shí)是含有一些位置參數(shù) θ 的,準(zhǔn)確來說要寫成 G(x;θ),那么概率分布就是:



我們要從 x 的樣本中推算出 θ 來,通常我們會(huì)用最大似然,但是不算出 Z(θ) 來我們就沒法算似然函數(shù),也就沒法做下去了。

NCE登場


非常幸運(yùn)的是,NCE 誕生了,它成功地繞開了這個(gè)困難。對于配分函數(shù)算不出來的情形,它提供了一種算下去的可能性;對于配分函數(shù)計(jì)算量太大的情形,它還提供了一種降低計(jì)算量的方案。?


變成二分類問題


NCE 的思想很簡單,它希望我們將真實(shí)的樣本和一批“噪聲樣本”進(jìn)行對比,從中發(fā)現(xiàn)真實(shí)樣本的規(guī)律出來。?


具體來說,能量還是原來的能量 G(x;θ),但這時(shí)候我們不直接算概率 p(x) 了,因?yàn)闅w一化因子很難算。我們?nèi)ニ?#xff1a;



這里的 θ 還是原來的待優(yōu)化參數(shù),而 γ 則是新引入的要優(yōu)化的參數(shù)。


然后,NCE 的損失函數(shù)變?yōu)?#xff1a;



其中 p?(x) 是真實(shí)樣本,U(x) 是某個(gè)“均勻”分布或者其他的、確定的、方便采樣的分布。?


說白了,NCE 的做法就是將它轉(zhuǎn)化為二分類問題,將真實(shí)樣本判為 1,從另一個(gè)分布采樣的樣本判為 0


等價(jià)于原來分布?


現(xiàn)在的問題是,從 (5) 式估算出來的 θ,跟直接從 (3) 式的最大似然估計(jì)(理論上是可行的)出來的結(jié)果是不是一樣的。?


答案是基本一樣的。我們將 (5) 式中的 loss 改寫為:



因?yàn)?p?(x) 和 U(x) 都跟參數(shù) θ,γ 沒關(guān),因此將 loss 改為下面的形式,不會(huì)影響優(yōu)化結(jié)果:



其中:



(7) 式是 KL 散度的積分,而 KL 散度非負(fù),那么當(dāng)“假設(shè)的分布形式是滿足的、并且充分優(yōu)化”時(shí),(7) 式應(yīng)該為 0,從而我們有 p?(y|x)=p(y|x),也就是:



從中可以解得:



如果 U(x) 取均勻分布,那么 U(x) 就只是一個(gè)常數(shù),所以最終的效果表明 γ?logU(x) 起到了 logZ 的作用,而分布還是原來的分布 (3),θ 還是原來的 θ。


這就表明了 NCE 就是一種間接優(yōu)化 (3) 式的巧妙方案:看似迂回,實(shí)則結(jié)果等價(jià),并且 (5) 式的計(jì)算量也大大減少,因?yàn)橛?jì)算量就只取決于采樣的數(shù)目了。


一些插曲


一些跟 NCE 相關(guān)的話題,就都放在這里了。?


NCE與負(fù)采樣簡述


NCE 的系統(tǒng)提出是在 2010 年的論文 Noise-contrastive estimation: A new estimation principle for unnormalized statistical models 中,后面訓(xùn)練大規(guī)模的神經(jīng)語言模型基本上都采用 NCE 或者類似的 loss 了。

論文的標(biāo)題其實(shí)就表明了 NCE 的要點(diǎn):它是“非歸一化模型”的一個(gè)“參數(shù)估計(jì)原理”,專門應(yīng)對歸一化因子難算的場景。?


但事實(shí)上,“負(fù)采樣”的思想其實(shí)早就被使用了,比如就在 2008 年的 ICML 上,Ronan Collobert 和 Jason Weston 在發(fā)表的 A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning 中已經(jīng)用到了負(fù)采樣的方法來訓(xùn)練詞向量。


要知道,那時(shí)候距離 Word2Vec 發(fā)布還有四五年。關(guān)于詞向量和語言模型的故事,請參考 licstar 的《詞向量和語言模型》[1]。?


基于同樣的為了降低計(jì)算量的需求,后來Google的Word2Vec也用上了負(fù)采樣技巧,在很多任務(wù)下,它還比基于Huffman Softmax的效果要好,尤其是那個(gè)“詞類比(word analogy)”實(shí)驗(yàn)。這里邊的奧妙,我們馬上就來分析。?


Word2Vec


現(xiàn)在我們落實(shí)到 Word2Vec 來分析一些事情。以 Skip Gram 模型為例,Word2Vec 的目標(biāo)是:



其中 ui,vj 都是待優(yōu)化參數(shù),代表著上下文和中心詞的兩套不同的詞向量空間。顯然地,這里的問題就是歸一化因子計(jì)算量大,其中應(yīng)對方案有 Huffman Softmax 和負(fù)采樣。


這里我們不關(guān)心 Huffman Softmax,只需要知道它就是原來標(biāo)準(zhǔn) Softmax 的一種近似就行了。我們來看負(fù)采樣的,Word2Vec 將優(yōu)化目標(biāo)變?yōu)榱?#xff1a;



這個(gè)式子看著有點(diǎn)眼花,總之它就是表達(dá)了“語料出現(xiàn)的 Skip Gram 視為正樣本,隨機(jī)采樣的詞作為負(fù)樣本”的意思。?


首先最明顯的是,(12) 式相比 (4),(5) 式,少引入了 γ 這個(gè)訓(xùn)練參數(shù),或者就是說默認(rèn)了 γ=0,這允許嗎?據(jù)說確實(shí)有人做過對比實(shí)驗(yàn),結(jié)果顯示訓(xùn)練出來的 γ 確實(shí)在 0 上下浮動(dòng),因此這個(gè)默認(rèn)操作基本上是合理的。?


其次,對于負(fù)樣本,Word2Vec 可不是“均勻地采樣每一個(gè)詞”,而是按照每個(gè)詞本身的總詞頻來采樣的。這樣一來,(10) 式就變成了:



也就是說,最終的擬合效果是:



大家可以看到,左邊就是兩個(gè)詞的互信息。本來我們的擬合目標(biāo)是兩個(gè)詞的內(nèi)積等于條件概率 p?(wj|wi)(的對數(shù)),現(xiàn)在經(jīng)過負(fù)采樣的 Word2Vec,兩個(gè)詞的內(nèi)積就是兩個(gè)詞的互信息。?


現(xiàn)在大概就可以解釋為什么 Word2Vec 的負(fù)采樣會(huì)比 Huffman Softmax 效果要好些了。Huffman Softmax 只是對 Softmax 做了近似,它本質(zhì)上還是在擬合 p?(wj|wi),而負(fù)采樣技巧則是在擬合互信息


我們之后,Word2Vec 是靠詞的共現(xiàn)來反應(yīng)詞義的,互信息比條件概率 p?(wj|wi)更能反映詞與詞之間“真正的”共現(xiàn)關(guān)系。換言之,p?(wj|wi) 反映的可能是“我認(rèn)識(shí)周杰倫,周杰倫卻不認(rèn)識(shí)我”的關(guān)系,而互信息反映的是“你認(rèn)識(shí)我,我也認(rèn)識(shí)你”的關(guān)系,后者更能體現(xiàn)出語義關(guān)系。?


我之前構(gòu)造的另一個(gè)詞向量模型《更別致的詞向量模型(三):描述相關(guān)的模型》[2] 中也表明了,基于互信息出發(fā)構(gòu)造的模型,能理論上解釋“詞類比(word analogy)”等很多實(shí)驗(yàn)結(jié)果,這也間接證實(shí)了,基于互信息的“Skip Gram + 負(fù)采樣”組合,是 Word2Vec 的一個(gè)絕佳組合。


所以,根本原因不是 Huffman Softmax 和負(fù)采樣本身誰更優(yōu)的問題,而是它們的優(yōu)化目標(biāo)就已經(jīng)不同。


列車已到終點(diǎn)站


本文的目的是介紹 NCE 這種精致的參數(shù)估算技巧,指出它可以在難以為完成歸一化時(shí)來估算概率分布中的參數(shù),原則上這是一種通用的方法,而且很可能,在某些場景下它是唯一可能的方案。


最后我們以 Word2Vec 為具體例子進(jìn)行簡單的分析,談及了使用 NCE 時(shí)的一些細(xì)節(jié)問題,并且順帶解釋了負(fù)采樣為什么好的這個(gè)問題。


相關(guān)鏈接


[1]. 詞向量和語言模型

http://licstar.net/archives/328

[2].?更別致的詞向量模型(三):描述相關(guān)的模型

https://kexue.fm/archives/4671



點(diǎn)擊以下標(biāo)題查看作者其他文章:?


  • 從無監(jiān)督構(gòu)建詞庫看「最小熵原理」

  • 基于CNN的閱讀理解式問答模型:DGCNN

  • 再談最小熵原理:飛象過河之句模版和語言結(jié)構(gòu)

  • 再談變分自編碼器VAE:從貝葉斯觀點(diǎn)出發(fā)

  • 變分自編碼器VAE:這樣做為什么能成?

  • 簡明條件隨機(jī)場CRF介紹 | 附帶純Keras實(shí)現(xiàn)


?戳我查看招募詳情


#作 者 招 募#


讓你的文字被很多很多人看到,喜歡我們不如加入我們



關(guān)于PaperWeekly


PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。


▽ 點(diǎn)擊 |?閱讀原文?| 進(jìn)入作者博客

總結(jié)

以上是生活随笔為你收集整理的“噪声对比估计”杂谈:曲径通幽之妙的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。