Table of Contents
無監督式學習Unsupervised Learning- Introduction
今日的課程來自於: https://youtu.be/CXgbekl66jc
在實務上,我們都沒有完整的資料,接下來的內容都是無監督式學習
本篇為無監督式學習的介紹
無監督式學習可以分成兩種 ,通常我們沒有完整label的資料
- 化繁為簡 : Clustering(聚類) /Dimension Reduction(降維)
將複雜的input 變成簡單的output,比如把一大堆沒有打上label的樹圖片轉變為一棵抽象的樹,此時training data只有input,而沒有output - 無中生有(Generation)
無中生有就是隨機給function一個數字,它就會生成不同的圖像,此時training data沒有input,而只有output
Clustering
clustering,顧名思義,就是把相近的樣本分成同一類,比如將沒有label的影像分類,手動標上標籤,這分類過程就是化繁為簡的過程
那…我們要分幾組呢?
選擇適當的cluster,要empirical的來決定它
K-means
最常用的就是K-means :
- 將一堆沒有標籤的資料,將他們分成K個cluster
- 每一個cluster都要找一個center,初始值可以從training data 裡隨機挑K個object X^n出來做K個center c^i 的初始值
- 之後的值找出最靠近的cluster,將他分類
- 更新center: 把每個cluster裡的所有object取平均值作為新的center值
- 反覆以上動作
如果不是從原先的data set 裡取center 的初始值,可能會導致部分cluster沒有樣本點
HAC (Hierarchical Agglomerative Clustering)層次聚類
假設我們現在有五個樣本點,想要做clustering:
- bulid a tree:
建立類似Huffman Tree,只不過huffman 是依據詞頻,而HAC是依據相似度建樹
將五個樣本點兩兩計算相似度,挑出最相似的一對,重複以上動作,直到只剩下一個root 節點 - pick a threshold
選threshold,就是在構造好的tree上橫著切一刀,相連的結點屬於同一個cluster,下圖中,不同顏色的橫線和葉結點上不同顏色的方框對應著切法與cluster的分法

HAC和K-means最大的區別在於如何決定cluster的數量,在K-means裡,K的值是要你直接決定的;而
在HAC裡,你並不需要直接決定分多少cluster,而是去決定這一刀切在樹的哪裡
Dimension Reduction
clustering的缺點就是每一個object都要屬於一個類別,一定要分類一個類別但是物件可能有多種屬性,如果硬分類,就會失去很多信息;我們應該用一個vector來描述該object,這個vector的每一維都代表object的某種屬
性,這種做法就叫做Distributed Representation,或者說,Dimension Reduction
Why Dimension Reduction Help?
接下來要來看為什麼Dimension Reduction 可能是有用的
假設data為下圖左側中的3D螺旋式分布,你會發現用3D的空間來描述這些data很浪費空間,因為我們可以完全把它攤平,此時只需要用2D的空間可以描述這個3D信息

舉一個極端的例子,下面這幾張表示“3”的image,我們完全可以用中間這張image旋轉角度來描述,也就是說,我們只需要用這一個dimension就可以描述原先28*28 dimension的圖像
你只要抓住角度的變化就可以知道28維空間中的變化,只要用一維就可以描述這個image

How to do Dimension Reduction?
在Dimension Reduction裡,我們要找一個function,這個function的input是原始的x,output是經過降維之後的z。dim(z)<dim(x)
最簡單的方法是Feature Selection,即直接從原有的dimension裡拿掉一些直觀上就對結果沒有影響的dimension,就做到了降維。
最常見的方法叫做PCA(Principe Component Analysis),下一篇會提到