天天看點

【論文筆記】Accelerated Training for Massive Classification via Dynamic Class Selection

衆所周知,類别較多的時候深度學習中無論是計算量還是參數都是巨大的,訓練效率也随之降低,是以本文介紹高效訓練網絡。

觀察發現:

【論文筆記】Accelerated Training for Massive Classification via Dynamic Class Selection

        active class:對于一個輸入樣本,其輸出機率隻集中在少量的類别中;

        在softmax loss回傳梯度中:

【論文筆記】Accelerated Training for Massive Classification via Dynamic Class Selection

        在疊代過程中,回傳梯度主要受這些活躍類(active class)影響,其他類别的貢獻很小。

是以前向和反向過程中隻計算和這些活躍類相關的東西便能達到少量資源高效訓練。

選擇活躍類:

提出哈希森林的方法來選擇活躍類,下面介紹一下一棵哈希樹的建構:

     設N為softmax分類的類别數,則可以将參數矩陣看作N個D維向量空間,目的是遞歸式的分割來将權重向量空間分割為小單元。

具體來說,開始整個參數空間隻是一個單元,選擇一個帶有超過 B 個點的單元,然後在其中随機選擇兩個點,然後使用最大邊界計算出所選兩點的分割超平面。該超平面會将這個單元一分為二。重複進行上述操作,直到任何單元内的點都不超過 B 個。

【論文筆記】Accelerated Training for Massive Classification via Dynamic Class Selection

因為建構哈希數的時候每個單元中的兩個點是随機擷取的,是以存在随機因素,是以建構多個哈希樹,組成森林以提高可靠性。

哈希森林使用:

      輸入新的特征向量,被根結點的超平面分到左子樹或者右子樹,接着被相應的子樹的根節點繼續往下分類,直到落入一個葉子結點中。那麼葉子結點中所包含的類别就被認為是和這個特征向量相似的類别,對于森林中的每一棵樹,都會重複這個過程,最終會得到一個類别的候選集合,如果候選集合中的類别超出了我們所需的類别數目,我們再通過計算其餘弦距離,最終選取餘弦距離相對小的那些類别作為active class。

其他活躍類别選擇方法對比:

(1)Softmax:完整版本的 softmax,在每次疊代中所有類别都是活躍類别。

(2)Random:一種樸素的方法,會在每次疊代中随機選擇固定數量的類别來進行 softmax 計算。

(3)PCA:一種簡單的哈希方法。它會将權重向量投射到一個低維空間,并會根據被投射向量的每個條目的極性将其編碼成二值哈希碼。對于來自類别 c 的樣本,會選擇具有相同哈希碼的類别。

(4)KMeans:另一種用于尋找活躍類别的簡單方法。它會根據對應的權重向量将所有類别聚類成 1024 組。對于來自類别 c 的樣本,會選擇包含 c 的組。

(5)Optimal:最優選擇方案,它會完整計算 Wx 并選擇具有最高響應的類别作為活躍類别。這能提供表現的上限,但成本非常高昂。

(6)HF:本文提出的方法的基本版本,它使用一個會定期更新的哈希森林來近似最優選擇方案。

(7)HF-A:本文提出的方法的一個改進版本,使用了自适應配置設定方案來調節計算資源的使用,以便實作更好的平衡。

繼續閱讀