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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Candidate sampling:NCE loss和negative sample

發布時間:2023/11/29 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Candidate sampling:NCE loss和negative sample 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在工作中用到了類似于negative sample的方法,才發現我其實并不了解candidate sampling。于是看了一些相關資料,在此簡單總結一些相關內容。

主要內容來自tensorflow的candidate_sampling和卡耐基梅隆大學一個學生寫的一份notesNotes on Noise Contrastive Estimation and Negative Sampling,還有一部分參考了tensorflow的nce_loss和sampled_softmax_loss的文檔。

What is Candidate Sampling

首先,什么是candidate sampling呢?假設我們有這樣一個問題,給定一個樣本集,其中每個樣本由,其中是輸入特征,是一個target小集合,滿足。我們的目標是學習一個,使得給定一個,我們可以預測出類別為正的可能性。

如果我們使用正常的softmax方法,那么在計算每一個sample時,我們都需要遍歷整個集合,對每一個可能的計算一次,這是非常昂貴的操作。尤其是在NLP的相關預測中,這一操作代價更加高昂。所以candidate sampling的方法被提了出來:在計算每一個sample時,我們從整個標簽集合或者負標簽集合中隨機采樣出一個小的candidate集合,將和一起組成當前的candidate集合,并在上計算。

常見的candidate sampling方法的特性可以見下表:

在這個表中,是一個不依賴于候選類的任意函數。 由于Softmax涉及歸一化,因此添加這樣的函數不會影響計算的概率。是中類y的期望概率或者期望個數。

NCE和nagetive sample可以適應于是multiset的情況,在這種情況下,等于中類y的期望個數。NCE,negative sampling和sampled logistic可以適應于是multiset的情況,在這種情況下,等于中類y的期望個數。

Noise Contrastive Estimation (NCE)

我們考慮一種簡單的也是最常用的情況,。以經典的word預測為例,此時。我們給定經驗分布和,則每一個訓練集中的正樣本都相當于從采樣出一個,并在這個的基礎上在上采樣出,并標定label 。同時我們從分布中采樣出個noise samples,則

那么使用條件概率公式,我們就可以寫出:

在神經網絡算法中,我們使用來代替,并試圖用梯度下降法來訓練。

Negative Sampling

Negative Sampling是NCE的一種近似,比較值得注意的是,negative sampling對于分布Q有強依賴,NCE則沒有這個問題。

tensorflow實現

NCE loss在tensorflow中的文檔可以參考tf.nn.nce_loss。要注意的是,使用這種方法時,標簽必須按照frequency的降序排序,因為默認的采樣方法是tf.nn.log_uniform_candidate_sampler。當然我們也可以實現自己的采樣方法。

Negative sampling則用sampled_softmax_loss來實現,注意sampled_softmax_loss只能處理一個正label的情況。

總結

以上是生活随笔為你收集整理的Candidate sampling:NCE loss和negative sample的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。