猛然間回顧,發現自己對原來覺得理解的概念產生了疑惑,就包括這個負取樣。
tf.nn.nce_loss(weights=nce_weights,
biases=nce_biases,
labels=y,
inputs=x_embed,
num_sampled=num_sampled,
num_classes=vocabulary_size)) # 說白了共現過的足夠近,未共現過的足夠遠
word2vec訓練的時候有大量的單詞對,我們的需求就是訓練乙個好的詞向量,那什麼是好的詞向量呢,就是說共現次數多的,這兩個向量的相似度就越高。記住word2vec的本質不是像分類那樣**出某個類別,而是想要得到中間訓練的w,這樣任何乙個單詞的onehot進行look up就可以得到詞向量,然後通過這個詞向量比較單詞的相似性。
拋開別的,如果我們把這個看作分類問題,我們希望輸入love這個one-hot變數,最後只在me這個one-hot變數上的值為1,其他接近0,但是這對於數量巨大的vocab_dict來說,直接softmax是不可接受的,於是,負取樣就是隨機選幾個負樣本。舉個栗子。選擇pig,cat這兩個單詞作為負樣本,在每個負樣本上異化為1-0這樣的二分類,及用乙個黑盒的model,**這個值是不是me,是不是cat,是不是pig,然後把這些loss值聚合進行回傳。
當然了,上一次我實現的skip-gram,其實是偷了個懶,直接呼叫了tensorflow中的embedding,然後後期使用embedding_lookup函式取到訓練好的embeddng。但是原文中不是這麼弄的,他是訓練了乙個w,然後利用單詞的one-hot,拿著個one-hot和w相乘得到embedding。
迷迷糊糊的把CentOS7在新機器上安裝成功了
今天使用光碟神奇的完美安裝了centos7,之所以說神奇,是因為前幾次都沒有成功,而這一次安裝的很奇怪,沒遇到什麼問題 之前安裝出現的問題主要有兩個問題,第乙個是網絡卡驅動問題,第二個是亮度調節問題 網絡卡驅動問題詳情 第一次安裝後,發現沒法使用wlan,找到的第乙個解決方法是關閉電腦自帶的藍芽功能...
迷糊的多維陣列的位址
為什麼要寫這個?因為這個東西有點混亂,至少我第一次接觸的時候是這樣的。或許以後還會,所以記下來需要的人一起看吧。直接上主題,我做事就是很直接,當然也會很囉嗦,下面你將會一併體驗到。int count 2 3 count 陣列count 0 0 的位址。count 1 陣列count 0 0 行數的偏...
令人迷糊的define和typedef
1.剛接觸mfc時會看到很多陌生的資料型別,關鍵字.一開始會特別反感,不適應.比如uint,dword.不過你右擊一點它們選擇跳轉到定義.就會發現有這樣的定義 typedef unsigned int uint typedef unsigned long dword 另外還有一些巨集比如on com...