tSNE是目前最為流行的一種高維數據降維的算法。在大數據時代,數據不僅越來越多,而且變得越來越復雜,數據維度的轉化也在驚人地增加。對于計算機而言,處理高位數據是沒問題的,但是人類能感知到的只有三個維度,因此很有必要將高維數據進行可視化,tSNE就是講數據集從任意維度降到二維或三維的算法。谷歌的一名實習員工最近提出了一種方法,可以讓tSNE在大型、高維數據庫上實時進行可視化,而且還開源了。以下是論智為大家帶來的編譯。
最近幾年,t分布隨機鄰近嵌入(tSNE)算法已經成為最常用的高維數據分析工具,它經常能提供有深度的見解。在TensorFlow嵌入項目和TensorBoard中用tSNE解釋深度神經網絡的輸出時,其中一個強大的特征是,tSNE在使用時只需要稍微調整參數,就能在不同規模下展現高維數據點的聚類。盡管有這個優點,tSNE算法計算時候的復雜程度也限制了它在很多小數據集上的應用。雖然已經有一些針對這個問題的解決方法(主要關注點在數據點之間相似度計算的可擴展性上),但目前為止當可視化大數據及使用tSNE嵌入時,它們還不能提供真正的互動體驗。
在Linear tSNE Optimization for the Web一文中,我們提出了一種解決tSNE高度依賴現代圖形硬件問題的方法。我們的方法比其他類似技術能更快地生成嵌入,甚至可以利用GPU在客戶端的網頁瀏覽器上執行。二者的結合讓大型、高維的數據庫實時可視化成為了可能。另外,我們還在TensorFlow.js中開源了這項成果,希望能帶來更多貢獻。
用我們的方法為全部MNIST數據集進行實時tSNE嵌入演化。該數據集包含60000張手寫數字的圖片
tSNE的目標是聚合相似數據點之間的小“鄰居”,同時降低整體數據的維度使之更加便于可視化。換句話說,tSNE目標函數計算的是在二維或三維空間中這些相似數據的“鄰居”是如何分布的,然后根據此將它們映射到聚類之中。
在之前的研究中,tSNE的目標最小化是作為N-body模擬問題進行的,其中點在嵌入空間中隨機分布,每個點都受到兩種不同類型的力的作用。吸引力會將點與其在高維空間中最相似的點之間的距離越拉越近,同時排斥力使得它們與嵌入中的其他鄰近點越來越遠。
吸引力只作用于一小部分點(也就是有相同近鄰的點),而排斥力在所有成對的點上都有作用。由于這個原因,tSNE需要強大的計算力和多次的目標函數迭代,這就限制了數據庫的尺寸。為了改善這一問題,Barnes-Hut算法就用來近似估算排斥力和目標函數的梯度。這就可以將計算擴展到成千上萬個數據點,但是仍然需要15分鐘以上計算MNIST嵌入。
在我們的論文中,我們提出了解決上述問題的方法,通過利用在WebGL上生成的紋理計算目標函數的梯度近似值。我們的技術利用一個三通道的圖案在每次最小化迭代時都繪制一個“排斥域(repulsive field)”,其中的三個組成元素作為RGB通道中的顏色和形狀。每個點都會得到一個排斥域,用來表示點上水平和豎直方向的排斥力,第三個元素用作歸一化。歸一化要保證轉換過程中的量值對應高維空間的相似度測量方法。除此之外,圖案的分辨率也會根據不同情況調整,以保證像素的數量是不變的。
渲染三個用來計算單個點產生的排斥力。上圖顯示了藍色區域中的點被推到了左側和底部,而紅色區域中的點被推倒右側和頂部,而白色區域中的點不會移動
之后每個點的作用都被添加到GPU中,生成與排斥域相似的圖形(如下面的動圖所示)。這種方法比計算點和點之間的作用的方法對GPU更友好。這是因為多個點的排斥力可以在GPU中快速地同時計算。另外,我們在GPU中也計算了點之間的吸引力。
tSNE嵌入的演變動畫(左上);用來計算梯度的標量場(右上);水平變換(左下);豎直變換(右下)
我們還將嵌入更新從點對點實現修改為在TensorFlow.js中計算的一系列標準張量操作,這是一個JavaScript庫,用于在Web瀏覽器中執行張量計算。我們已經開源的方法能完全在GPU上實現tSNE嵌入的變換,同時計算復雜性也得以改善。
有了這種只需15分鐘就能在MNIST數據集上完成計算的方法,我們現在可以實時在網頁中進行可視化。另外,這種可視化還能在更大的數據集上實現。但是我們這項成果的主要缺陷就是目前只能在二維嵌入上工作。然而二維可視化卻經常比三維可視化更受歡迎,應為三維可視化需要更多交互才能理解聚類的結果。
未來的工作
我們相信,更快、更易交互的tSNE將大大提高數據分析系統的發展。我們很期待將這項成果用于深度神經網絡。除此之外,我們的實驗表明,在使用GPU計算時的橫向思維(即用RGB圖像計算梯度)可以加速計算。在未來我們將開發更多這類的梯度計算,不僅將其應用于降維算法上,還可以用到其他瀏覽器的N-body模擬中。
-
gpu
+關注
關注
28文章
4876瀏覽量
130325 -
算法
+關注
關注
23文章
4677瀏覽量
94271 -
數據庫
+關注
關注
7文章
3879瀏覽量
65516 -
數據集
+關注
關注
4文章
1219瀏覽量
25181
原文標題:谷歌實習生提出tSNE在大型高維數據集上實時可視化的方法(附代碼)
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
光學系統的3D可視化
什么是大屏數據可視化?特點有哪些?
智慧樓宇可視化的優點
三維可視化運用的主要技術
三維可視化數據大屏的設計原理和技巧
大屏數據可視化是什么?運用了什么技術
智慧園區三維可視化的重要性!
智慧交通三維可視化,讓數據場景融合

訊維智能可視化綜合平臺在智慧城市建設中的關鍵作用
三維可視化是怎么做的?特點有哪些?

評論