2016-11-24 80 views
0

我目前正在使用TensorFlow在RNN LM上工作。我從TensorFlow教程開始(tuto; sources),並自定義腳本(https://github.com/pltrdy/tf_rnnlm/)。什麼時候NCE是比softmax更好的選擇(訓練RNN LM)

我似乎普遍認爲噪聲對比估計(NCE)運行速度更快。所以我運行了4個配置的基準測試,使用4個丟失函數(我特別想測試softmax vs NCE)。結果顯示爲here

速度(每秒字數)的差異不足以得出任何結論。

我不知道該怎麼想:NCE是非常強大的嗎?我錯過了什麼嗎?

請告訴我,如果您有任何線索, THX

pltrdy 

編輯:?取樣SOFTMAX]
tensorflow refersthis paper (sec. 3)其中指出「隨着該方法,計算訓練的複雜性變爲常數相對於目標詞彙的大小「

在我們的基準測試中,這不是(完全)情況。

回答

0

對於訓練具有大詞彙表的LM,NCE或採樣的softmax是必不可少的。如果你增加詞彙量來說500k,你將會看到NCE和softmax之間的顯着差異。您的基準測試鏈接似乎已被打破。但是,如果你使用大量的詞彙,你應該看到差異。

相關問題