NCE損失(Noise-Constrastive Estimation Loss)


1.算法概述

假設X是從真實的數據(或語料庫)中抽取的樣本,其服從一個相對可參考的概率密度函數P(d),噪音樣本Y服從概率密度函數為P(n),噪音對比估計(NCE)就是通過學習一個分類器把這兩類樣本區別開來,並能從模型中學到數據的屬性。

模型原始論文:Noise-contrastive estimation: A new estimation principle for unnormalized statistical models
tensorflow引用:Candidate Sampling Algorithms Reference

2.算法要點與推導

2.1損失函數定義:

\[\text{讓$U=X\bigcup Y={u1,u2,⋯,u_{T_d}+u_{T_n}}$,其中$T_d$為數據樣本個數,$T_n$為噪音分布的樣本個數。那么我們認為$u_t$服從(0-1)分布,給每個$u_t$一個標簽$C_t$,則} \]

\[C_t= \begin{cases} 1, & \text{if $u_t \in X$} \\ 0, & \text{if $u_t \in Y$} \end{cases} \]

\[\text{由於$p_d$未知,我們讓$p(⋅|C=1)=p_m(.;θ)$,我們假設存在一個$\theta^*$} \text{使得$p_d(.)=p_m(.;\theta^*)$,那么,就可以認為經驗分布$p_d(.)$為參數分布簇$p_m(.;θ)$中的一員。} \]

給定以上定義,我們得到:

\[\begin{cases} p(u|C=1)=p_m(u;\theta) ,& \text{data} \\ p(u|C=0)=p_n(u) ,& \text{noise} \end{cases} \]

這里時間有限,中間推到步驟先略過。最終得到損失函數公式如下:

\[L(θ)=Σ^{T_d+T_n}_{t=1}[C_tlnP(C_t=1|u_t;\theta)+(1-C_t)lnP(C_t=0|u_t)] =Σ^{T_d}_{t=1}ln[h(x_t;θ)]+Σ^{Tn}_{t=1}ln[1-h(y_t;θ)] \]

注意到,如果給式(9)加上個負號就成為了交叉熵函數了。從結果可以看出,我們進行的無監督學習的密度估計可由監督學習算法logistic regression來學習,這就是監督學習與無監督學習的聯系。

3.算法特性及優缺點

4.實現和具體例子


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM