Word Embedding:負樣本損失函式結果異常
實驗環境
框架:tensorflow
模型選擇:CBOW+NCE loss
單詞個數:30000問題描述
NCE損失函式表示如下:
Jθ=−∑w∈V(logP(y=1|x)+∑i=1klogP(y=0|x(w(i))))
該損失函式計算上下文與目標單詞之間的點積,採集每一個正樣本的同時採集k個負樣本。公式的第一項最小化正樣本的損失,第二項最大化負樣本的損失。現在如果將負樣本作為第一項的變數輸入,則損失函式結果應該很大。實驗問題
在訓練5M個batch後,訓練樣本的loss降低到了4左右。
對正樣本測試,loss降低到了4.7。
對隨機產生的負樣本測試,loss同樣降低到了7左右,與預想不符。
從圖中可以看到,在訓練14000個batch後,訓練樣本的loss仍然在27.8,而負樣本的loss已經下降到了6.9。負樣本loss下降比正樣本都快!可能性猜想
可能由於損失函式第二項的存在,即使輸入負樣本,整個損失函式的值還是保持在較低水平。(對公式理解不夠)
對策:使用其他方法進行測試,比如直接計算點積或者。
相關推薦
Word Embedding:負樣本損失函式結果異常
實驗環境 框架:tensorflow 模型選擇:CBOW+NCE loss 單詞個數:30000 問題描述 NCE損失函式表示如下: Jθ=−∑w∈V(logP(y=1|x)+∑i=1klogP(y=0|x(w(i)))) 該損失函式計算上下文與目
關於binary_crossentropy損失函式為負的問題
資料一定要歸一化。 如pandas 這樣進行即可 cdc28_data =(cdc28_data-cdc28_data.min())/(cdc28_data.max()-cdc28_data.min(
Word Embedding的生成
ssi 參考 求導 pap format sha logistic 應該 quest 之前以為直接使用contrib.text.embedding就可以完成學習,後面發現和paper的意思不匹配,這一層是需要單獨獲取的。 先附上可以參考的鏈接: LSTM裏Embeddin
Word Embedding/RNN/LSTM
參考 動態 線性 () 經典的 lda 統計 容易 problem Word Embedding Word Embedding是一種詞的向量表示,比如,對於這樣的“A B A C B F G”的一個序列,也許我們最後能得到:A對應的向量為[0.1 0.6 -0.5],B對應
yolo v2 損失函式原始碼解讀
前提說明: 1, 關於 yolo 和 yolo v2 的詳細解釋請移步至如下兩個連結,或者直接看論文(我自己有想寫 yolo 的教程,但思前想後下面兩個連結中的文章質量實在是太好了_(:з」∠)_) yo
tensflow自定義損失函式
三、自定義損失函式 標準的損失函式並不合適所有場景,有些實際的背景需要採用自己構造的損失函式,Tensorflow 也提供了豐富的基礎函式供自行構建。 例如下面的例子:當預測值(y_pred)比真實值(y_true)大時,使用 (y_pred-y_true)*loss_more 作為 loss,
Tensorflow 兩個交叉熵損失函式的區別
tf.nn.sparse_softmax_cross_entropy_with_logits label:不含獨熱編碼,shape:[batch_size, ] logits:原始預測概率分佈向量,shape:[batch_size, num_classes] logits = np
神經網路的損失函式
損失函式可以分成兩大類:分類和迴歸。這裡我們對這兩類進行了細分和講解。 迴歸損失: L1loss(L1損失) L1損失,也稱平均絕對誤差(MAE),簡單說就是計算輸出值與真實值之間誤差的絕對值大小。這種度量方法在不考慮方向的情況下衡量誤差大小。和MSE的不同之處在於,MA
CS231n——機器學習演算法——線性分類(下:Softmax及其損失函式)
在前兩篇筆記中,基於線性分類上,線性分類中繼續記筆記。 1. Softmax分類器 SVM和Softmax分類器是最常用的兩個分類器,Softmax的損失函式與SVM的損失函式不同。對於學習過二元邏輯迴歸分類器的讀者來說,Softmax分類器就可以理解為邏輯迴歸分類器面對多個分類的一
CS231n——機器學習演算法——線性分類(中:SVM及其損失函式)
損失函式 Loss function 在線性分類(上)筆記中,定義了從影象畫素值到所屬類別的評分函式(score function),該函式的引數是權重矩陣W。 在函式中,資料 (
【機器學習】一文讀懂機器學習常用損失函式
損失函式(loss function)是用來估量模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函式,通常使用L(Y, f(x))來表示,損失函式越小,模型的魯棒性就越好。損失函式是經驗風險函式的核心部分,也是結構風險函式重要組成部分。模型的結構風險函式包括了經驗風險項和正則項,通常可以
損失函式的選擇
github部落格傳送門 csdn部落格傳送門 損失函式的迭取取決於輸入標籤資料的型別:如果輸入的是實數,無界的值,損失函式使用平方差;如果輸入的標籤是位向量(分類標誌)使用交叉熵會更合適 均值平方差(Mean Squared Error, MSE)也稱均方誤差 神經網路中:表達預測值與真實值之間的差異
最大似然損失和交叉熵損失函式的聯絡
在利用深度學習模型解決有監督問題時,比如分類、迴歸、去噪等,我們一般的思路如下: 資訊流forward propagation,直到輸出端; 定義損失函式L(x, y | theta); 誤差訊號back propagation。採用數學理論中的“鏈式法則”,求L(x,
詞嵌入 word embedding
原文連結:https://blog.csdn.net/ch1209498273/article/details/78323478 詞嵌入(word embedding)是一種詞的型別表示,具有相似意義的詞具有相似的表示,是將詞彙對映到實數向量的方法總稱。詞嵌入是自然語言處理的重要突破
Word Embedding理解
一直以來感覺好多地方都吧Word Embedding和word2vec混起來一起說,所以導致對這倆的區別不是很清楚。 其實簡單說來就是word embedding包含了word2vec,word2vec是word embedding的一種,將詞用向量表示。 1.最簡單的word embeddi
損失函式震盪不收斂可能原因:tf.train.shuffle_batch
在製作tfrecords資料集的時候,比如說將cifar資料轉換成tfrecords資料集,一般會用到tf.train.shuffle_batch函式,而損失函式震盪不收斂的原因就可能就是資料集製作出現問題。 Cifar-10資料集包含了airlane、automobile、bi
交叉熵損失函式及Tensorflow實現
一、交叉熵損失原理 一般情況下,在分類任務中,神經網路最後一個輸出層的節點個數與分類任務的標籤數相等。 假設最後的節點數為N,那麼對於每一個樣例,神經網路可以得到一個N維的陣列作為輸出結果,陣列中每一個維度會對應一個類別。在最理想的情況下,如果一個樣本屬於k,那麼這個類別所對應的第k個輸出節
機器學習中常用損失函式
1. 損失函式 損失函式(Loss function)是用來估量你模型的預測值 f(x)f(x)值。 2. 常用損失函式 常見的損失誤差有五種: 1. 鉸鏈損失(Hinge Loss):主要用於支援向量機(SVM) 中
損失函式總結
1. 前言 在機器學習中,不同的問題對應了不同的損失函式,不同的損失函式也直接會影響到收斂的快慢和結果的好壞,下面就從不同的損失函式的角度進行一下梳理。 2. 0-1損失函式 0-1損失是指,預測值和目標值不相等為1,否則為0 3. log對數損失函式 邏輯迴歸的損失函式就是對數損失函式,在邏輯迴歸
Tensorflow 損失函式及學習率的四種改變形式
Reference: https://blog.csdn.net/marsjhao/article/details/72630147 分類問題損失函式-交叉熵(crossentropy) 交叉熵描述的是兩個概率分佈之間的距離,分類中廣泛使用的損失函式