0
本文作者: 叢末 | 2018-09-14 09:58 |
相信大多數(shù)人都已經(jīng)接觸過(guò)數(shù)據(jù)可視化——Excel 隨便畫(huà)一張表就是了。眾所周知,二維數(shù)據(jù)可視化很容易,條形圖、餅狀圖等等,我們?cè)诔踔芯鸵呀?jīng)學(xué)過(guò)了。那么三維數(shù)據(jù)呢?可能有些接觸到音頻產(chǎn)品的朋友會(huì)說(shuō)瀑布圖,很好。而 N 維數(shù)據(jù)呢?物理學(xué)告訴我們:低維空間只能觀察到高維空間在本維度的投影。既然我們本身的維度無(wú)法增加,那么就只能想辦法把數(shù)據(jù)的維度降低了。
數(shù)據(jù)降維的基本原理是將樣本點(diǎn)從輸入空間通過(guò)線性或非線性變換映射到一個(gè)低維空間,從而獲得一個(gè)關(guān)于原數(shù)據(jù)集緊致的低維表示。它一方面可以解決“維數(shù)災(zāi)難”,緩解“信息豐富、知識(shí)貧乏”現(xiàn)狀,降低復(fù)雜度;另一方面可以更好地認(rèn)識(shí)和理解數(shù)據(jù)。
截止到目前,數(shù)據(jù)降維的方法很多。我們可以從不同的角度入手進(jìn)行不同的分類,主要分類方法有:根據(jù)數(shù)據(jù)的特性可以劃分為線性降維和非線性降維;根據(jù)是否考慮和利用數(shù)據(jù)的監(jiān)督信息可以劃分為無(wú)監(jiān)督降維、有監(jiān)督降維和半監(jiān)督降維;根據(jù)保持?jǐn)?shù)據(jù)的結(jié)構(gòu)可以劃分為全局保持降維、局部保持降維和全局與局部保持一致降維等等。
近日,在雷鋒網(wǎng) AI 研習(xí)社公開(kāi)課上,澳大利亞國(guó)立大學(xué)信息技術(shù)專業(yè)學(xué)生陳陟原就分享了數(shù)據(jù)降維與可視化的相關(guān)內(nèi)容。公開(kāi)課回放視頻網(wǎng)址:http://www.mooc.ai/open/course/526
陳陟原:澳大利亞國(guó)立大學(xué)信息技術(shù)專業(yè)學(xué)生。現(xiàn)在在北京大學(xué)做國(guó)際暑期教學(xué)助理。曾加入雷鋒字幕組翻譯過(guò) CS231n 斯坦福李飛飛計(jì)算機(jī)視覺(jué)課程和 CS224n 自然語(yǔ)言處理。
分享主題:數(shù)據(jù)降維與可視化
分享大綱:
? 高維數(shù)據(jù)實(shí)例&高緯度空間模型
? 維數(shù)災(zāi)難&降維為什么如此重要
? 常用的線性和非線性降維方法
雷鋒網(wǎng) AI 研習(xí)社將其分享內(nèi)容整理如下:
我是陳陟原,澳大利亞國(guó)立大學(xué)信息技術(shù)專業(yè),目前方向是高性能計(jì)算,現(xiàn)在在北京大學(xué)做國(guó)際暑期教學(xué)助理。曾加入雷鋒字幕組翻譯過(guò) CS231n 斯坦福李飛飛計(jì)算機(jī)視覺(jué)課程和 CS224n 自然語(yǔ)言處理。今天要跟大家分享的是流行學(xué)習(xí):數(shù)據(jù)降維與可視化。
我前段時(shí)間去了一次上海,見(jiàn)了一下之前關(guān)系很好的學(xué)長(zhǎng)以及一些澳國(guó)立的校友。
在和他們吃飯的時(shí)候我們討論了很多工作方面的問(wèn)題。其中有一個(gè)在銀行工作的學(xué)長(zhǎng)就跟我說(shuō)起現(xiàn)在 BI 如何如何啊,數(shù)據(jù)可視化怎樣怎樣啊。
這也是為什么今天我想跟大家聊聊數(shù)據(jù)可視化。這里雖然我已經(jīng)假設(shè)大家都有機(jī)器學(xué)習(xí)背景,但考慮到現(xiàn)在全民機(jī)器學(xué)習(xí),這里應(yīng)該也還有非計(jì)算機(jī)、數(shù)學(xué)專業(yè)的聽(tīng)眾,他們沒(méi)有足夠的基礎(chǔ),因此今天的講座不會(huì)很深,我只是跟大家淺顯的介紹一下。有什么問(wèn)題也歡迎大家課后與我聯(lián)系,也可以在網(wǎng)上找一些更深入的資料。
我在這里用了網(wǎng)上找的一張圖,題目是大家可能都會(huì)比較感興趣的——智能手機(jī)出貨量。
在這張圖當(dāng)中,橫軸是月份(時(shí)間),縱軸就是出貨量。它是一個(gè)十分完美的數(shù)據(jù)可視化例子,這樣的圖相信大家兩分鐘能做一堆。
所以,我想也沒(méi)什么要跟大家分享得了,本次講座到此圓滿結(jié)束,感謝大家的參與。希望大家能繼續(xù)支持雷鋒,繼續(xù)支持 AI 研習(xí)社。
--當(dāng)然,這是不可能的。
子曰:「一個(gè)好的講座,應(yīng)該從視頻開(kāi)始」。雖然說(shuō)現(xiàn)在講座已經(jīng)開(kāi)始 2 分鐘了,但也不算太晚。
這個(gè)視頻其實(shí)有五年的歷史了,是當(dāng)時(shí) IBM 為了宣傳智慧星球制作的,可見(jiàn)他們這種全民機(jī)器學(xué)習(xí)開(kāi)始的時(shí)間有多早。我很希望大家都聽(tīng)懂了這個(gè)視頻,因?yàn)槲乙矝](méi)有找到字幕。
該視頻主要介紹了 IBM 的機(jī)器學(xué)習(xí)如何提高這家面包店的銷量——重點(diǎn)是,數(shù)據(jù)。
對(duì)于面包店來(lái)說(shuō),影響銷量的因素有很多。比如說(shuō),外面的溫度、濕度、降雨量——僅僅是天氣就已經(jīng)不止三個(gè)維度了,還有堵車情況(出門(mén)晚了來(lái)不及吃早飯),甚至世界杯的成績(jī)都會(huì)對(duì)它產(chǎn)生影響。所以,我們要畫(huà)一張?jiān)趺礃拥膱D來(lái)把這么多維度的東西都扔進(jìn)去呢?
上面這張圖最左邊是零維,點(diǎn)。后面依次為:一維,線;二維,面;三維,體。而最后的這個(gè)四維,叫正方……正方什么來(lái)著?反正,它叫什么不重要,重要的是它是四維的。我不知道有沒(méi)有人看過(guò)《三體》,它最后一本書(shū)中對(duì)四維有一些描述。這是個(gè)不存在于三維空間的角度,既然不存在,我們也不可能看得到而只能去想象。
大家記住這點(diǎn)就夠了,有人讓你做個(gè)面包店銷量的可視化,你就甩他一臉這種圖,說(shuō):你自個(gè)兒去想象吧。
說(shuō)正經(jīng)的,就為了畫(huà)張表就搞一堆機(jī)器學(xué)習(xí)算法?北京六院要不要了解一下?
這里雖然我已經(jīng)假設(shè)大家都有機(jī)器學(xué)習(xí)背景,但考慮到現(xiàn)在全民機(jī)器學(xué)習(xí),這里應(yīng)該也還有非計(jì)算機(jī)、數(shù)學(xué)專業(yè)的聽(tīng)眾,他們沒(méi)有足夠的基礎(chǔ),所以我還是要簡(jiǎn)單介紹一下維數(shù)災(zāi)難,想要更深入地學(xué)習(xí)的同學(xué),也可以進(jìn)一步在網(wǎng)上搜尋相關(guān)資料。
我們知道維數(shù)越高精確度越高,比如天氣預(yù)報(bào)會(huì)包括溫度、濕度以及風(fēng)向、風(fēng)力、降雨量……至少經(jīng)驗(yàn)告訴我們,這樣的天氣預(yù)報(bào)精度是會(huì)更高的。那么是不是可以進(jìn)行延展,認(rèn)為對(duì)于所有情況來(lái)說(shuō),維數(shù)都越高越好呢?
首先我們看一下圖,圖上是一堆汪和喵,我們?cè)撛趺窗阉鼈兎诸惓鰜?lái)呢?看上去不太好分類。
那我們稍稍做一下擴(kuò)展,多加一個(gè)維度,圖就有了兩個(gè)特征,即兩個(gè)維度。
?
雖然這樣看起來(lái)分類效果也算不錯(cuò)了,但還可以更好嗎?
那么再多加一個(gè)特征呢?
嗯,完美。雖然可能看上去有些不是很直觀哈。聽(tīng)我口令,變
嗯,非常不錯(cuò),完美的將喵和汪們分開(kāi)了。
看到上面這張圖,Hmmmm 這似乎有些不對(duì)啊。嗯你沒(méi)猜錯(cuò),過(guò)擬合了。我相信大家都知道什么是過(guò)擬合,也都清楚為什么我們那么討厭過(guò)擬合,這里不再贅述。
而除此之外,我們還有一個(gè)更加令人難受的東西,如果你學(xué)過(guò) kNN 的話那你肯定知道——維度災(zāi)難。
很多算法都基于一個(gè)重要的基本假設(shè):任意樣本附近任意小的距離內(nèi)總能找到一個(gè)訓(xùn)練樣本,即訓(xùn)練樣本的采樣密度足夠大,也稱為「密采樣」,才能保證分類性。
我們知道,維度增長(zhǎng)是指數(shù)級(jí)的。10x10 的正方形用一百個(gè)樣本就能填滿,10x10x10x10 的四維體就需要一萬(wàn)個(gè)。2009 年的 KDD Challenge 就找了 15000 個(gè)維度,你有再大的樣本量也是十分稀疏的。
除了上面兩點(diǎn)之外,還有一點(diǎn)極其重要,那么就是距離。我們知道,在高維空間下不同樣本對(duì)之間的距離的差別與我們熟知的三維空間有很大的不同。這里我們做一個(gè)簡(jiǎn)單的證明:
在一個(gè) d 維空間當(dāng)中,超球體的體積是這樣的: ,超正方體的體積則是這樣的:
。當(dāng)我們有無(wú)窮多個(gè)維度時(shí),也即 d 趨近于無(wú)窮時(shí),超球體與超正方體的體積比會(huì)很不幸:
。
這個(gè)故事告訴我們,高維空間當(dāng)中幾乎所有數(shù)據(jù)都會(huì)遠(yuǎn)離中心,兩個(gè)關(guān)聯(lián)很強(qiáng)的數(shù)據(jù)對(duì)之間的距離可能比你想象當(dāng)中要大很多,在此情況之下,距離函數(shù)失去了意義。
所以,我們的目標(biāo)是—降低維度。
該怎么降低維度呢?
相信看過(guò)《三體》的人都清楚:流形學(xué)習(xí)。在繼續(xù)進(jìn)行到數(shù)據(jù)降維的操作之前,這里我先簡(jiǎn)單介紹一下流行。
這張圖上,有一個(gè)碗、一個(gè)杯子和一個(gè)甜甜圈。
我們首先引入一個(gè)「同胚」的概念。什么樣的東西是同胚的呢?
通過(guò)連續(xù)變換(拉伸、彎曲、撕裂或者粘合)之后能變成一樣的兩個(gè)或多個(gè)物體,這些物體就是同胚的。在這個(gè)例子當(dāng)中,杯子和甜甜圈中間都有一個(gè)圈,所以它們是同胚的。
然后我們?cè)僖胍粋€(gè)「虧格」的概念,以實(shí)的閉曲面為例,虧格 g 就是曲面上洞眼的個(gè)數(shù),虧格數(shù)相同的物體就是同胚的。在這個(gè)例子中,碗的虧格為 0,而杯子和甜甜圈的虧格都為 1,所以杯子和甜甜圈是同胚的。
這里我們?yōu)槭裁刺岬搅餍文??它是指我們可以假設(shè)這些東西都是隨意變化的。比如說(shuō),要把玻璃、塑料碗揉成一個(gè)杯子的形狀,也是有困難的。
所以說(shuō)這跟降維有什么關(guān)系?我們?cè)賮?lái)看一張圖。
這個(gè)是地球。而我們都知道一個(gè)歐式空間當(dāng)中的球體,是三維的。
這個(gè)則是地圖,就是把球體鋪平后的樣子。
所以說(shuō),球面是幾維的呢?看這個(gè)圖就知道——二維。原本表達(dá)我們的位置需要三個(gè)變量,這么一來(lái)就只需要兩個(gè)了,即我們成功將維度降低為兩個(gè)。
所謂流形學(xué)習(xí),就是假設(shè)在歐式空間當(dāng)中存在這樣一個(gè)流形,它可以把維度降低下來(lái)。這里再提一下,一個(gè) d 維的流形,即任意點(diǎn)處局部同胚于歐氏空間,對(duì)于地球上的任意一點(diǎn),我們?cè)诘孛婵吹降亩际瞧降?,我們就可以認(rèn)為它局部同胚于歐式空間,這是一個(gè)二維的東西。
接下來(lái),我們正式討論流行學(xué)習(xí)算法。
首先是線性流行學(xué)習(xí)算法。這里我們一共會(huì)討論兩種算法:無(wú)監(jiān)督的 PCA,與監(jiān)督的 LDA。
第一種算法是 PCA,即主成分學(xué)習(xí)(Principal Component Analysis),它借助于一個(gè)正交變換,將其分量相關(guān)的原隨機(jī)向量轉(zhuǎn)化成其分量不相關(guān)的新隨機(jī)向量,這在代數(shù)上表現(xiàn)為將原隨機(jī)向量的協(xié)方差陣變換成對(duì)角形陣,在幾何上表現(xiàn)為將原坐標(biāo)系變換成新的正交坐標(biāo)系,使之指向樣本點(diǎn)散布最開(kāi)的 p 個(gè)正交方向,然后對(duì)多維變量系統(tǒng)進(jìn)行降維處理,使之能以一個(gè)較高的精度轉(zhuǎn)換成低維變量系統(tǒng),再通過(guò)構(gòu)造適當(dāng)?shù)膬r(jià)值函數(shù),進(jìn)一步把低維系統(tǒng)轉(zhuǎn)化成一維系統(tǒng)。
簡(jiǎn)單來(lái)說(shuō),就是通過(guò)正交變換將一組可能存在相關(guān)性的變量轉(zhuǎn)換為一組線性不相關(guān)的變量,轉(zhuǎn)換后的這組變量叫主成分。PCA 則是指找出數(shù)據(jù)里最主要的方面,用數(shù)據(jù)里最主要的方面來(lái)代替原始數(shù)據(jù)。而 PCA 算法則主要從線性的協(xié)方差角度去找較好的投影方式。
另外一個(gè)常用的算法是 LDA,即線性判別分析(Linear Discriminant Analysis)。和 PCA 不同,LDA 是根據(jù)類別的標(biāo)注關(guān)注分類能力。所以說(shuō) LDA 降維是直接和類別的個(gè)數(shù) k 相關(guān)的,也不保證投影到的坐標(biāo)系是正交的。
假設(shè)我們的原始數(shù)據(jù)是 d 維的,一共有 k 個(gè)類別。PCA 可以選擇的維度范圍是 1--d,而 LDA 跟維度關(guān)系不大,監(jiān)督學(xué)習(xí)主要關(guān)注標(biāo)簽,它可選擇降到的維度范圍是 1--k-1(類別數(shù)-1)。這給 LDA 造成了使用方面的限制,比如說(shuō)類別為 3,那就無(wú)法讓它降到 3 維,類比為 10,最多是能讓它降到 9 維。但是在大多數(shù)情況下,LDA 的降維效率要比 PCA 稍微高一些。
剛剛講到維數(shù)災(zāi)難的時(shí)候,第三點(diǎn)(距離問(wèn)題)沒(méi)有仔細(xì)提。
在降維的時(shí)候,我們通常通過(guò)投影方式降維,然而很多數(shù)據(jù)在獲取低維度的投影過(guò)程中,會(huì)丟失很多數(shù)據(jù),尤其是距離信息,即原始距離的數(shù)據(jù),在降維以后會(huì)產(chǎn)生新的變化。比如歐氏空間的原本距離為 10,降維之后,就變成 8 了,而在另一個(gè)維數(shù)中的數(shù)據(jù)還可能變成 2 了,這就會(huì)導(dǎo)致降維后的結(jié)果不夠收斂,因而分類效果也降低——這是由于線性降維的線性原理所導(dǎo)致的。
因此我們就只能通過(guò)非線性流形學(xué)習(xí)來(lái)解決這個(gè)問(wèn)題。關(guān)于非線性流形學(xué)習(xí),我只會(huì)簡(jiǎn)要介紹 T-SNE(t-distributed Stochastic Neighbor Embedding)算法。
T-SNE 算法將數(shù)據(jù)點(diǎn)之間的相似度轉(zhuǎn)換為概率,它通過(guò)原始空間和嵌入空間的聯(lián)合概率的 Kullback-Leibler(KL)散度來(lái)評(píng)估可視化效果的好壞,也就是說(shuō)用有關(guān) KL 散度的函數(shù)作為 loss 函數(shù),然后通過(guò)梯度下降最小化 loss 函數(shù),最終獲得收斂結(jié)果。
簡(jiǎn)單來(lái)說(shuō),就是原始空間中的相似度由高斯聯(lián)合概率表示,嵌入空間的相似度由「學(xué)生 t 分布」表示。至于為什么我們?cè)敢馐褂?T-SNE?就是因?yàn)樗谋憩F(xiàn)效果特別好——它主要關(guān)注數(shù)據(jù)的局部結(jié)構(gòu),同時(shí),這也會(huì)導(dǎo)致它的時(shí)間和空間復(fù)雜度都非常高。
接下來(lái),我們對(duì)線性降維和非線性降維做一個(gè)簡(jiǎn)要的對(duì)比。
上圖為四種算法降維出來(lái)的效果。右下角這個(gè) fa,是因子分析(剛剛我們沒(méi)有講到),它也是一種線性降維。
從整張對(duì)比圖,我們可以看到,線性降維和非線性降維的區(qū)別是非常大的,其中,T-SNE 的降維效果要好很多。
一般我們都會(huì)先通過(guò)線性降維(如 PCA)降一下,降完以后再用 T-SNE,這樣就能平衡一下時(shí)間、空間復(fù)雜度的消耗以及降維效果。
使用 LDA 降維實(shí)際上也是這樣,先使用 PCA 降維,再使用 LDA 降維,因?yàn)椋ㄎ覀冞@里也可以看到)LDA 的降維效果確實(shí)要比 PCA 好一些。
今天的知識(shí)點(diǎn)就講到這里,以后我還會(huì)就這個(gè)話題與大家展開(kāi)更加深入的分享,歡迎大家繼續(xù)關(guān)注。
以上就是本期嘉賓的全部分享內(nèi)容。更多公開(kāi)課視頻請(qǐng)到雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng)) AI 研習(xí)社社區(qū)觀看。關(guān)注微信公眾號(hào):AI 研習(xí)社(okweiwu),可獲取最新公開(kāi)課直播時(shí)間預(yù)告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。