Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文紹介: tSNE-CUDA

33fca951f15568ea697599c68ebedfeb?s=47 ryoherisson
January 18, 2022

論文紹介: tSNE-CUDA

勉強会での発表資料

33fca951f15568ea697599c68ebedfeb?s=128

ryoherisson

January 18, 2022
Tweet

More Decks by ryoherisson

Other Decks in Research

Transcript

  1. CompML t-SNE-CUDA: GPU-Accelerated t-SNE and its Applications to Modern Data

    - 論⽂紹介 - twitter: @zawatsky_r
  2. CompML TL; DR • 次元削減を⽤いたデータの可視化⼿法であるt-SNEのアルゴリズムの紹介. • t-SNEをGPU上で⾼速に動作させるt-SNE-CUDAの紹介. 1

  3. CompML t-SNEの概要

  4. CompML t-SNEの概要 t-Distributed Stochastic Neighbor Embedding(t-SNE)は,⾼次元データを2次元または3次元 に次元圧縮することで,データを可視化する⼿法. 3 L. v.

    d. Maaten and G. Hinton. Visualizing data using t-sne.Journal ofmachine learning research, 9(Nov):2579–2605, 2008. MNIST Dataset
  5. CompML t-SNEのアルゴリズム ⼊⼒空間 Χ ∈ ℝ! のデータ点を,𝐷より⼩さい𝑑次元(通常2または3次元)の埋め込み空間Y ∈ ℝ" に学習を通じて埋め込む.

    このとき,Χのデータ点𝑥#, 𝑥$ が近いときはYのデータ点𝑦#, 𝑦$ が近くになるように,また,Χ の データ点𝑥# , 𝑥$ が遠いときはYのデータ点𝑦# , 𝑦$ が遠くになるように埋め込む. 全体の流れ 1. ⼊⼒空間を正規分布に従う確率密度に変換 2. 埋め込み後の空間をt分布に従う確率密度で表現 3. 損失関数にKLダイバージェンスを⽤いて,勾配降下法で最適化 4
  6. CompML ⼊⼒空間を確率密度に変換 ⾼次元の⼊⼒空間における類似度を,正規分布に従う確率密度でモデル化. 近さを対称化するため, 条件付き確率を対称化して同時確率を得る. 5 𝑝$|# = exp(− 𝑥#

    − 𝑥$ & 2𝜎# & ) ∑'(# exp(− 𝑥# − 𝑥' & 2𝜎# & ) 𝑝#$ = 𝑝$|# + 𝑝#|$ 2
  7. CompML Perplexity: 𝜎! の設定 ヒューリスティックに指定したPerplexityを持つ確率分布𝑃# を⽣成するような𝜎# を⼆分探索 する. 𝜎# は,データが密な場合は⼩さい値,疎な場合は⼤きい値となるようにする.

    6 𝑃𝑒𝑟𝑝(𝑃#) = 2)(+!) 𝑤ℎ𝑒𝑟𝑒 𝐻 𝑃# 𝑖𝑠 𝑡ℎ𝑒 𝑆ℎ𝑎𝑛𝑛𝑜𝑛 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑜𝑓 𝑃# 𝑚𝑒𝑎𝑠𝑢𝑟𝑒𝑑 𝑖𝑛 𝑏𝑖𝑡𝑠 𝐻(𝑃# ) = − M $ 𝑃$|# log& 𝑃$|#
  8. CompML 次元削減後の埋め込み空間を確率密度で表現 次元削減後の埋め込み空間における類似度を,⾃由度1のスチューデントのt分布に従う確率密 度でモデル化. t分布は正規分布と⽐べて裾が重いため,⼊⼒空間で距離の遠いデータ点のペアを,埋め込み 空間でも距離が遠くなるように埋め込める. 7 𝑞#$ = (1

    + 𝑦# − 𝑦$ & )-. ∑'(/ (1 + 𝑦' − 𝑦/ &)-.
  9. CompML 損失関数 損失関数にKLダイバージェンスを⽤いて,確率分布𝚸と𝐐が近くなるように最⼩化問題を解く. 8 𝐶 = 𝐾𝐿(𝐏||𝐐) = M #$

    𝑝#$ log 𝑝#$ 𝑞#$
  10. CompML 勾配降下法による最適化 KLダイバージェンスの勾配を計算し,勾配降下法により Y を更新. 9 𝜕𝐶 𝜕𝑦# = 4

    M $(# (𝑝#$ −𝑞#$ ) (𝑦# − 𝑦$ ) (1 + 𝑦# − 𝑦$ & )-. 𝑌(0) = 𝑌(0-.) + 𝜂 𝜕𝐶 𝜕𝑌 + 𝛼(𝑡)(𝑌 0-. − 𝑌 0-& )
  11. CompML t-SNE-CUDA

  12. CompML t-SNE-CUDAの概要 • t-SNEをGPU上で⾼速化するための⼿法を提案 ・⾼次元のデータ点の最近傍を近似するために直積量⼦化を使⽤ ・repulsive forcesの勾配計算を近似するためにBarnes-hut法を使⽤ • CIFAR-10とMNISTデータセットで50~700倍の速度向上 •

    ImageNetでのDNNの活性化関数を初めて可視化 11
  13. CompML t-SNEの課題 t-SNEの𝑝#$ と𝑞#$ を計算するためには,各点間の関係を計算する必要があり,その計算量は O(𝑁&). さらに,𝑞#$ はイテレーションごとに計算する必要がある. ⇨ 𝑝#$

    と𝑞#$ の計算を⾼速化したい. 12
  14. CompML 勾配更新の再定式化 勾配更新の式をattractive forcesとrepulsive forcesに分割し,再定式化. ⇨ attractive forcesとrepulsive forces各々に対する最適化⼿法を検討. 13

    𝜕𝐶 𝜕𝑦# = 4 M $(# 𝑝#$ 𝑞#$ 𝑍 𝑦# − 𝑦$ − M $(# 𝑞#$ &𝑍 𝑦# − 𝑦$ attractive forces (𝐹"##$ ) repulsive forces (𝐹$%& ) 𝑍 𝑖𝑠 𝑑𝑒𝑓𝑖𝑛𝑒𝑑 𝑎𝑠 𝑡ℎ𝑒 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡 𝑖𝑛 𝑞#$ 𝑍 = M '(/ (1 + 𝑦' − 𝑦/ &)-.
  15. CompML attractive forces 点iに近い点のみ確率を計算し,遠い点は確率を0にする. ⇨ 最近傍探索にFAISSを使⽤. 1. FAISSを使⽤し,K-Nearest Neighbor(K-NN)を計算(直積量⼦化により近似最近傍探索) 2.

    K-NNにより疎⾏列化した𝑃#$ ,⾏列𝑄#$ ,N×2の⾏列𝑌,全要素1のN×2の⾏列𝑂を⽤いて attractive forcesを計算.⾏列積にはcuSPARSEを使⽤. 14 𝐹1002 = 4𝑁𝑦# M $ 𝑝#$𝑞#$ − 4𝑁 M $ 𝑝#$𝑞#$𝑦$ 𝐹1002 = 4𝑁 𝑃#$ ⨀𝑄#$ 𝑂⨀𝑌 − 𝑃#$ ⨀𝑄#$ 𝑌
  16. CompML repulsive forces Barnes-Hut treeアルゴリズムにより,空間を4分⽊で分割し,深さ優先探索により,あるセ ルが、そのセル内の全ての点のまとまりとして使⽤できるか確認. 以下を満たす場合は,そのセルはセル内の全ての点の⼒のまとまりとして使⽤するのに⼗分 な距離であると判断され,再帰が終了する. 15 𝑟34//

    𝑦# − 𝑦34// < 𝜃 𝑦'%(( : セルの中⼼ 𝑟'%(( : セルの半径 𝜃: 近似精度を調整するパラメータ L. v. d. Maaten and G. Hinton. Visualizing data using t-sne.Journal ofmachine learning research, 9(Nov):2579–2605, 2008.
  17. CompML repulsive forces セルが⼗分遠くにあるとみなされると,データ点𝑦# にかかる⼒は以下で近似される. 16 𝑁34//(𝑦# − 𝑦34//) (1

    + 𝑦# − 𝑦34// &)& ≈ M $∈34// 𝑞#$ &𝑍 𝑦# − 𝑦$ M. Burtscher and K. Pingali.An Efficient CUDA Implementation of the Tree-Based Barnes Hut n-Body Algorithm. 2011.
  18. CompML t-SNE-CUDA Algorithm 17

  19. CompML 実験結果 Synthetic data 18

  20. CompML 実験結果 MNIST 19

  21. CompML 実験結果 CIFAR-10 20

  22. CompML Reference

  23. CompML 22 [1] L. v. d. Maaten and G. Hinton.

    Visualizing data using t-sne.Journal ofmachine learning research, 9(Nov):2579–2605, 2008. [2] J. Johnson, M. Douze and H. Jégou, "Billion-Scale Similarity Search with GPUs," in IEEE Transactions on Big Data, vol. 7, no. 3, pp. 535-547, 1 July 2021, doi: 10.1109/TBDATA.2019.2921572. [3] M. Burtscher and K. Pingali.An Efficient CUDA Implementation of the Tree-Based Barnes Hut n-Body Algorithm. 2011. [4] “How t-SNE works”. openTSNE. 2020. https://opentsne.readthedocs.io/en/latest/tsne_algorithm.html, (20 Sep 2021)