寫給人類的機器學習 三、無監督學習

三、無監督學習

原文:
Machine Learning for Humans, Part 3: Unsupervised Learning

作者:Vishal Maini

譯者:機器之心

聚類和降維:K-Means 聚類,層次聚類,主成分分析(PCA),奇異值分解(SVD)。

我們可以怎樣發現一個數據集的底層結構?我們可以怎樣最有用地對其進行歸納和分組?我們可以怎樣以一種壓縮格式有效地表征數據?這都是無監督學習的目標,之所以稱之為「無監督」,是因為這是從無標簽的數據開始學習的。

我們將在這里探索的兩種無監督學習任務是:1)將數據按相似度聚類(clustering)成不同的分組;2)降維(reducing dimensionality),以便在保留數據結構和有用性的同時對數據進行壓縮。

無監督學習方法可能有用的案例:

  • 一家廣告平臺需要根據相似的人口學特征和購買習慣將美國人口分成不同的小組,以便廣告客戶可以通過有關聯的廣告接觸到他們的目標客戶。
  • Airbnb 需要將自己的房屋清單分組成不同的社區,以便用戶能更輕松地查閱這些清單。
  • 一個數據科學團隊需要降低一個大型數據集的維度的數量,以便簡化建模和降低文件大小。

和監督學習不同,要找到評價無監督學習算法優劣的指標可并不輕松。「表現水平」往往是主觀的,而且因領域不同而各不相同。

聚類

聚類的一個有趣的真實應用案例是營銷數據提供商 Acxiom 的人生階段聚類系統 Personicx。這項服務將美國家庭分成了 70 個不同的聚類,它們分屬于 21 個人生階段分組,可以被廣告主用于投放定向 Facebook 廣告、陳列式廣告和直郵廣告等。

Personix 人口學特征聚類的一部分

他們的白皮書表明他們使用了重心聚類(centroid clustering)和主成分分析,這兩種技術在這一節都有覆蓋。

你可以想象,如果廣告主想(1)理解他們已有的客戶群,(2)通過相關的人口學特征、興趣和生活習慣向潛在新客戶投放定向廣告以便高效利用廣告開支,那么這些聚類將對他們非常有用。

實際上,你只需要在 Acxiom 的「我屬于哪個聚類?」工具中回答幾個簡單問題,你就能知道你個人屬于哪個聚類。

讓我們了解幾種聚類方法,看看這樣的任務是如何完成的。

K 均值聚類

「重心之賽有 k 個魔戒,在那之上,是希望的力量。」

聚類的目標是為數據點分組,使得不同聚類中的數據點是不相似的,同一聚類中的數據點則是類似的。

使用 K 均值聚類,我們希望將我們的數據點聚類為 K 組。K 更大時,創造的分組就更小,就有更多粒度;K 更小時,則分組就更大,粒度更少。

該算法的輸出是一組「標簽」,這些標簽將每個數據點都分配到了 K 組中的一組。在 K 均值聚類中,這些組的定義方式是為每個組創造一個重心(centroid)。這些重心就像是聚類的心臟,它們可以「捕獲」離自己最近的點并將其加入到自己的聚類中。

你可以把這些重心看作是派對上成為關注焦點的人,他們就像是有磁性一樣。如果只有一個這樣的人,每個人都會圍繞在他周圍;如果有很多這樣的人,就會形成很多更小一點的活動中心。

K 均值聚類的步驟如下:

  1. 定義 K 個重心。一開始這些重心是隨機的(也有一些更加有效的用于初始化重心的算法)
  1. 尋找最近的重心并且更新聚類分配。將每個數據點都分配給這 K 個聚類中的一個。每個數據點都被分配給離它們最近的重心的聚類。這里的「接近程度」的度量是一個超參數——通常是歐幾里得距離(Euclidean distance)。
  1. 將重心移動到它們的聚類的中心。每個聚類的重心的新位置是通過計算該聚類中所有數據點的平均位置得到的。

重復第 2 和 3 步,直到每次迭代時重心的位置不再顯著變化(即直到該算法收斂)。

這就是 K 均值聚類工作方式的精簡版!該算法的可視化演示可在這里查看,你可以像讀漫畫一樣理解。平面上的每個數據點都根據離自己最近的重心加了顏色。你可以看到這些重心(更大一點的藍點、紅點和綠點)一開始是隨機的,然后很快進行了調整,得到了它們各自的聚類。

K 均值聚類的另一個真實應用是分類手寫數字。假設我們有用像素亮度的長向量表示的數字的圖像。假設這些圖像是黑白兩色的,大小為64×64像素。每個像素代表一個維度。那么這些圖像就生活在一個有64×64=4096個維度的世界里。在這個 4096 維的世界里,K 均值聚類讓我們可以按接近程度對這些圖像分組,并且假設這些靠得很近的圖像都是同一個數字。這種算法可以在數字識別上得到相當好的結果

層次聚類

「讓我們把 100 萬個選項變成 7 個選項。或者 5 個。或者 20 個?呃,我們可以過會兒決定。」

層次聚類類似于常規的聚類,只是你的目標是構建一個聚類的層次。如果你最終的聚類數量不確定,那這種方法會非常有用。比如說,假設要給 Etsy 或亞馬遜等網絡市場上的項目分組。在主頁上,你只需要少量大組方便導航,但隨著你的分類越來越特定,你需要的粒度水平也越來越大,即區別更加明顯的項聚類。

在算法的輸出方面,除了聚類分配,你也需要構建一個很好的樹結構,以幫助你了解這些聚類之間的層次結構。然后你可以從這個樹中選擇你希望得到的聚類數量。

層次聚類的步驟如下:

  1. 首先從N個聚類開始,每個數據點一個聚類。
  1. 將彼此靠得最近的兩個聚類融合為一個。現在你有N-1個聚類。
  1. 重新計算這些聚類之間的距離。有很多可以辦到這件事的方法(參見這個教程了解更多細節)。其中一種方法(平均連接聚類,average-linkage clustering)是將兩個聚類之間的距離看作是它們各自元素之間所有距離的平均。
  1. 重復第 2 和 3 步,直到你得到包含 N 個數據點的一個聚類。你就會得到如下圖所示的樹(也被稱為樹狀圖))。
  1. 選擇一個聚類數量,然后在這個樹狀圖中劃一條水平線。比如說,如果你想要K=2個聚類,你應該在距離大約為 20000 的位置畫一條水平線,你會得到一個包含數據點 8、9、11、16 的聚類和包含其它數據點的另一個聚類。一般而言,你得到的聚類的數量就是水平線與樹狀圖中的豎直線的交叉點的數量。

來源:Solver.com。更多有關層次聚類的詳細信息,可參閱這個視頻

降維

「對于那些該砍去的非精髓部分的態度,并不是每天增加吸收,而是每日盡量排減。」——李小龍

降維看上去很像壓縮。這是為了在盡可能保存相關的結構的同時降低數據的復雜度。如果你有一張簡單的128×128×3像素的圖像(長×寬×RGB 值),那么數據就有 49152 維。如果你可以給這個圖像空間降維,同時又不毀掉圖像中太多有意義的內容,那么你就很好地執行了降維。

我們將了解兩種實際中很常用的降維技術:主成分分析和奇異值分解。

主成分分析(PCA)

首先,了解一點線性代數知識——看看空間(space)和基(base)。

你應該知道由原點O(0,0)和基向量i(1,0)j(0,1)定義的坐標平面。事實上,你也可以選擇一個完全不同的基礎,其中的數學仍然有效。比如說,你可以保持原點仍然為 O,但選擇i'=(2,1)j'=(1,2)作為基向量。如果你有耐心計算一下,你會發現在i', j'坐標系統中標記為(2,2)的點在i, j系統標記為(6, 6)

使用 Mathisfun 的「交互式笛卡爾坐標」繪制

這意味著我們可以修改空間的基礎。現在想象有更高維度的空間,比如有 5 萬維。你可以為這個空間選擇一個基礎,然后根據這個基礎僅選擇 200 個最重要的向量。這些基向量被稱為主成分,而且你可以選擇其中一個子集構成一個新空間,它的維度比原來的空間少,但又保留了盡可能多的數據復雜度。

要選擇出最重要的主成分,我們需要檢查這些數據的方差,并按這個指標給它們排序。

理解 PCA 的另一個思路是 PCA 將我們數據中存在的空間重映射成了一個更加緊湊的空間。這種變換后的維度比原來的維度更小。

僅需使用重映射空間的前幾個維度,我們就可以開始理解這個數據集的組織結構。這就是降維的目的:減少復雜度(即這里的維度),同時保留結構(方差)。這里有篇 Samer 寫的論文,介紹了使用 PCA(以及擴散映射等技術)試圖理解維基解密披露的電報。

奇異值分解(SVD)

假設我們將我們的數據表示成一個A=m×n的大型矩陣。SVD 讓我們可以將這個大型矩陣分解成 3 個較小的矩陣的乘積;這 3 個矩陣分別是U=m x r、對角矩陣Σ=r x rV=r x n,其中r是一個很小的值。

在這個r×r的對角矩陣Σ中的值被稱為奇異值。這些值的奇妙之處是可以被用于壓縮原來的矩陣,如果你丟棄奇異值中最小的 20% 以及矩陣UV中相關的列,你就可以節省大量空間,同時仍然能很好地表征原來的矩陣。

為了更準確地了解其中的含義,我們來看看一張小狗的圖片:

我們將使用 Andrew Gibiansky 寫的關于 SVD 的文章中的代碼。首先,我們發現如果我們根據大小排序這些奇異值(矩陣Σ的值),那么前 50 個奇異值將包含整個矩陣Σ的大小的 85%。

根據這個事實,我們可以丟棄后面的 250 個值(即將它們設為 0),僅保留這張小狗圖像的「rank(秩)50」版本。這里,我們創建了秩為 200、100、50、30、20、10 和 3 的小狗照片。顯然,照片變小了。但假設我們認為秩為 30 的小狗仍然很好,現在讓我們看看我們實現了多少壓縮。原先的圖像矩陣有305*275 = 83,875個值,秩為 30 的圖像則有305*30+30+30*275=17,430個值。值的數量差不多少了 5 倍,但質量卻下降很少。上述計算的原因是當我們執行UΣ'V運算時,UV矩陣中的一部分因為乘 0 也被丟棄(其中Σ'Σ的修改后版本,其中僅包含了前面的 30 個值)。

無監督學習常常被用于數據預處理。一般而言,這意味著以某種平均-保留的方式壓縮數據,比如 PCA 或 SVD;之后,這些數據可被用于深度神經網絡或其它監督式學習算法。

請繼續!

既然你完成了這一章,你已經得到了一個糟糕的、永遠不會再次提及的無監督學習的笑話。這就是:

Person-in-joke-#1: Y would u ever need to use unsupervised tho?

Person-in-joke-#2: Y? there’s no Y.

下面是第四章:神經網絡和深度學習。

實踐材料和擴展閱讀

3a K-Means 聚類

玩一玩這個聚類的演示,來構建算法工作原理的直覺。之后,看一看這個手寫數字的 K-Means 聚類的實現,以及相關教程。

3b SVD

對于 SVD 的不錯的參考,沒有東西比 Andrew Gibiansky 的文章更好了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容