t-sne數據可視化演算法的作用是啥?為了降維還是認識數據?
進廠看到用t-sne做數據可視化,比如下面這張圖,這有什麼用作呢?是為了認識數據之間的關聯性?還是有什麼關係?得到了這張圖之後,可以做什麼呢?還有看到t-sne用來降維,那如何評價效果的好壞?@我愛機器學習
主要是為了可視化,以直觀地了解數據的結構,比如數據大致聚成幾團,哪些數據聚成一團,哪些團比較近,等等。
降維最常用的演算法是PCA(無監督)或LDA(有監督),它們都是線性的。t-SNE可以看成是一種非線性的降維演算法,不過我還真沒見過有哪裡這麼用……為了降維還是認識數據?
降維是手段,認識數據是目的。
-
最近兩年 t-SNE 在生物行為學有一些優秀的應用。我認為類似的分析思想和技術將在動物行為的神經基礎這一領域起到革命性的作用。
-
對動物行為的研究,歷史上一直局限於兩類:
精確測量的簡(wu)單(liao)行為。
例如小鼠研究中常用的刺激-反應延時,和左/右選擇等。這些研究所測量的行為可以很精確也很穩定,但總是比較沒意思。(除了無聊之外這實際上也極大的限制了我們對神經系統的理解)此類測量的另一個問題是時間上非常粗粒:難以獲得高解析度的行為時間序列。無法精確測量的有趣行為。
常見的ethogram/行為譜即是如此。通常我們拍一段動物在做各種事情的小視頻,然後人工去標記不同的階段(Masters" style :P)。這類測量只能給出描述性的標籤,而且不同的實驗者之間往往難以對標籤的定義達成完全的共識。
-
一個例外是鳴禽的唱歌行為。特別是斑胸草雀的歌聲極為刻板 / stereotyped,是少見的天然可精確測量的行為。這也是為什麼我們用斑胸草雀做為運動學習的模型動物的原因之一。
-
那麼如何實現對有趣行為的精確測量呢?或者用可操作的語言來說,如何將動物的行為轉換成精確、可重複、高解析度的時間序列?
Gordon Berman 是將數據降維運用到行為測量的先驅。他在2014年的論文《測量自由運動果蠅的可重複行為》[1] 中使用 t-SNE 對果蠅在二維表面自由運動(即除了飛行)的錄像進行降維打擊,並得到了如下圖譜:
通過自動化的降維和聚類,將果蠅的行為轉換成2維圖譜上的軌跡。當研究者們分析降維後得到的圖譜,其中一個意外的發現就是,當作者們比較男果蠅和女果蠅在圖譜的密度分布,發現兩性在清潔左翅時的動作有微妙的差別。這一性別差異以前沒有人知道,是通過比較圖譜再回去看視頻才發現的。所以這有什麼用呢?
當然,這一範式的作用遠不止於發現以前沒有發現的行為差異。最重要的是,通過自動化的數據降維,我們終於可以精確測量並用無岐義的語言描述動物的行為。而這對研究行為的神經學基礎有著顯而易見的重大意義。
-
動物行為中一個關鍵而難以觀測的變數是內隱變數,或者說系統的內部狀態。
今年5月,Gordon 發表了對果蠅行為的進一步分析 [2],發現果蠅的運動模式具有層級/hierarchy:
即,果蠅在行為圖譜中的運動在不同的時間尺度可以被描述為一系列層級。這個概念本身沒什麼稀奇:誰都知道動物的行動有層級性。但是如何理解不同層級之間的關係呢?這一分析方法首次給出了關於什麼是層級的可靠的定義。[1] http://rsif.royalsocietypublishing.org/content/11/99/20140672
[2] http://biorxiv.org/content/early/2016/05/12/052928t-sne是流行學習的一種,屬於非線性降維的一種,主要是保證高維空間中相似的數據點在低維空間中盡量挨得近。是從sne演化而來,sne中用高斯分布衡量高維和地位空間數據點之間的相似性,t-sne主要是為了解決sne中的「擁擠問題」,用t分布定義低維空間低維空間中點的相似性。但是t-sne不能算是一種通用的降維方法吧,時間複雜度也挺高的。
謝邀,t-sne本身可以用於降維,但是主要被用於可視化,而且可視化效果非常好。
有人用t-sne看CNN中全連接層的數據,發現相似的會聚在一起。
主要還是用於認識數據,降維也是為認識數據服務。因為要投影到2D空間。如果是降維有很多方法,例如PCA或者譜聚類。
這個圖應該是數字手寫體降維之後的圖,在此我們可以看到其數字手寫體在低維中的分部,以此來分析數據在高維空間中的分部。
t-SNE演算法主要用於可視化、分析數據,在降維之後可以直接看到可視化圖,從而得到高維空間中數據的特徵分布。
t-SNE主要用於做高維數據的可視化,用以分析數據在高維空間中的分布,當然也可以用於降維的用途。
推薦閱讀:
※隨機過程、機器學習和蒙特卡洛在金融應用中都有哪些關係?
※張量分解如何應用於數據挖掘?求詳細說明,最好有例子!?
※如何優化正交矩陣?
※有沒有將深度學習融入機器人領域的嘗試?有哪些難點?
※技術上講,王樹森和吳佳俊誰更牛逼?