成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度學習庫 TensorFlow (TF) 中的候選采樣

開發 開發工具
在從事深度學習過程中, 如果我們想訓練一個類別非常多的分類器 (比如一個擁有巨大詞匯庫的語言模型), 正常的訓練過程將非常緩慢。深度學習庫 TensorFlow (TF) 實現了候選采樣技巧, 并提供了一些 API。

在從事深度學習過程中,如果我們想訓練一個類別非常多的分類器 (比如一個擁有巨大詞匯庫的語言模型),正常的訓練過程將非常緩慢。這是由于在訓練過程中,所有的類別都需要進行評估。為了解決這個問題,人們發明了候選采樣的技巧,每次只評估所有類別的一個很小的子集。深度學習庫 TensorFlow (TF) 實現了候選采樣技巧,并提供了一些 API。

深度學習庫

一、候選采樣函數

候選采樣函數,從巨大的類別庫中,按照一定原則,隨機采樣出類別子集。TF 提供下面幾個候選采樣函數, 其中前面三個的參數和返回值是一致的,第四個也很類似。具體參數和返回值可以移步 TF 文檔。

1. tf.nn.uniform_candidate_sampler

均勻地采樣出類別子集。

2. tf.nn.log_uniform_candidate_sampler

按照 log-uniform (Zipfian) 分布采樣。

候選采樣函數

這個函數主要用于處理詞作類別的情況。在語言學中,詞按照出現頻率從大到小排序之后,服從 Zipfian 分布。在使用這個函數之前,需要對類別按照出現頻率從大到小排序。

3. tf.nn.learned_unigram_candidate_sampler

按照訓練數據中類別出現分布進行采樣。具體實現方式:1)初始化一個 [0, range_max] 的數組, 數組元素初始為1; 2) 在訓練過程中碰到一個類別,就將相應數組元素加 1;3) 每次按照數組歸一化得到的概率進行采樣。

4. tf.nn.fixed_unigram_candidate_sampler

按照用戶提供的概率分布進行采樣。

如果類別服從均勻分布,我們就用uniform_candidate_sampler;如果詞作類別,我們知道詞服從 Zipfian, 我們就用 log_uniform_candidate_sampler; 如果我們能夠通過統計或者其他渠道知道類別滿足某些分布,我們就用 nn.fixed_unigram_candidate_sampler; 如果我們實在不知道類別分布,我們還可以用 tf.nn.learned_unigram_candidate_sampler。

其實我蠻好奇 tf 內部怎么實現快速采樣的,特別是 tf.nn.learned_unigram_candidate_sampler 概率分布在變的情況下,我知道最快的采樣算法也是 O(n) 的。不知道 tf 有沒有更快的算法。

二、候選采樣損失函數

候選采樣函數生成類別子集。類別子集需要送給候選采樣損失函數計算損失,最小化候選采樣損失便能訓練模型。TF 提供下面兩個候選采樣損失函數。這兩個采樣損失函數的參數和返回值是一致的, 具體參數和返回值可以移步 TF 文檔。

1. tf.nn.sampled_softmax_loss

這個函數通過 模型的交叉熵損失。候選類別子集由采樣類別 和真實類別 組成,即 。模型***一層輸出是 , 經過 softmax 激活函數轉成模型輸出的概率得出 。

因為只有候選類別子集 , 沒有類別全集 L,我們無法計算 ,進而計算交叉熵損失。通過候選類別子集,我們只能計算 。那么怎么優化相關的損失函數,我們又得到什么呢?。

其中 K 是和 y 無關的數。我們得到概率計算公式和交叉熵損失。

最小化 J 訓練模型。

2. tf.nn.nce_loss

NCE Loss 和 Sampled Softmax Loss 的出發點是一致, 都是想使得模型輸出 。它們的不同點在于 Sampled Softmax Loss 只支持 Single-Label 分類,而 NCE 支持 Multi-Label 分類。候選類別子集 由采樣類別 和真實類別 組成,即 。對于候選類別子集中的每一個類別,都建立一個 Logistic 二分類問題,其損失函數為

最小化 J 訓練模型。

三、候選采樣限制

很多時候, 負類別由問題給定。比如我們訓練分類器玩斗地主撲克, 下面幾個性質:

  1. 斗地主中所有可能的出牌動作非常多;
  2. 對于一副牌局, 所有可選動作至多只有幾百個;
  3. 對于一副牌局, 我們選擇人類高手出牌動作為正類別,我們將人類高手沒有選擇的出牌動作作為負樣本;
  4. 按照當前牌局構建出的訓練樣本, 正類別只有一個, 負類別至多幾百個而且由當前牌局決定。

在上述問題中, 不同牌局的候選動作的個數不一樣, 我們無法使用候選采樣的方法進行訓練。候選采樣只能采樣出相同個數的類別。一方面 TF 的基本單元是 Tensor, 要求各個維度一致。另一方面是由于候選采樣為了 Word2Vec 中的 Negative sampling 等場景設計, 這些場景只需要挑選一些負類別反映非正類別的特性。

四、總結

候選采樣加速了類別數量巨大的訓練過程。TF 提供了候選采樣相關 API,方便人們使用。

【本文為51CTO專欄作者“李立”的原創稿件,轉載請通過51CTO獲取聯系和授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-05-30 16:16:38

TensorFlow候選采樣深度學習

2018-09-06 08:00:00

深度學習TensorFlowPython

2017-09-21 12:29:58

深度學習TensorFlow智能終端

2017-12-01 15:24:04

TensorFlow深度學習教程

2018-01-26 14:55:43

TensorFlow深度學習演進

2017-05-22 13:15:45

TensorFlow深度學習

2017-02-08 17:08:32

谷歌深度學習計算圖

2017-08-16 10:57:52

深度學習TensorFlowNLP

2016-12-23 09:09:54

TensorFlowKubernetes框架

2017-05-12 16:25:44

深度學習圖像補全tensorflow

2021-05-28 17:18:44

TensorFlow數據機器學習

2017-08-10 15:31:57

Apache Spar TensorFlow

2022-11-13 08:11:03

TensorFlow人工智能開源

2018-04-11 17:50:14

深度學習PyTorchTensorFlow

2017-03-01 19:58:00

深度學習TensorFlow

2017-08-22 16:20:01

深度學習TensorFlow

2016-12-21 16:40:22

TensorFlow深度學習算法大數據

2018-04-09 10:20:32

深度學習

2016-12-06 08:51:48

深度學習TensorFlow機器學習

2020-05-19 14:29:50

機器學習TensorFlow
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线视频a | 亚洲在线 | 国产japanhdxxxx麻豆 | 欧美一级久久精品 | 中日韩毛片 | 成人无遮挡毛片免费看 | 国产一区二区精 | 蜜桃av鲁一鲁一鲁一鲁 | 亚洲天堂精品久久 | 国产精品亚洲综合 | 国产精品国产三级国产a | 精品一区二区三区视频在线观看 | 亚洲国产欧美国产综合一区 | 精品国产一区二区三区日日嗨 | 国产精品视频不卡 | 国产综合久久久久久鬼色 | 成人黄色网址大全 | 精品www| 91av视频在线 | 国产精品自拍av | 欧美一区二区黄 | 久久日本| 黄a网| 国产精品成av人在线视午夜片 | 精品国产一区二区在线 | 国产做a爱片久久毛片 | 99精品欧美一区二区三区 | 国产精品视频久久 | 欧美激情久久久久久 | 亚洲 欧美 日韩在线 | 色婷婷亚洲一区二区三区 | 一级a性色生活片久久毛片 午夜精品在线观看 | 国产一二三区精品视频 | 欧美久久久久久久久中文字幕 | 一区视频 | 天天射视频 | 久久av一区二区三区 | 欧美一级淫片免费视频黄 | 欧美一区二区三区精品免费 | 91麻豆精品国产91久久久资源速度 | 久久精品亚洲欧美日韩久久 |